
Security News
/Company News
Securing the Financial Frontier: How Capital One Uses Socket for Open Source Security
Capital One is partnering with Socket to proactively secure its open source supply chain.
@deckflow/cli
Advanced tools
TypeScript/Node.js implementation of deckflow-cli - File processing and conversion tools
A powerful command-line tool for file processing, conversion, and task management. This is a complete TypeScript port of the Python deckflow-cli, maintaining 100% feature parity while leveraging Node.js ecosystem best practices.
npm install -g deckflow
Or use without installing:
npx deckflow <command>
# Set your authentication token
deckflow config set-token YOUR_TOKEN
# Set your workspace/space ID
deckflow config set-space YOUR_SPACE_ID
# Optional: Set custom API base URL
deckflow config set-api-base https://api.example.com
# View current configuration
deckflow config show
# Compress a file
deckflow compress presentation.pptx
# Extract text from image (OCR)
deckflow extract image.jpg --type ocr --language en
# Convert PowerPoint to PDF
deckflow render slides.pptx --format pdf
# Upload a file
deckflow file upload document.pdf
# List tasks
deckflow task list --limit 10
# Get task details
deckflow task get <task-id>
deckflow config set-token <token> # Set authentication token
deckflow config set-space <space-id> # Set workspace ID
deckflow config set-api-base <url> # Set API base URL
deckflow config show # Show current configuration
deckflow file upload <path> # Upload a file
--no-progress # Disable progress indicator
deckflow task list # List all tasks
--type <type> # Filter by task type
--limit <n> # Maximum results (default: 50)
--offset <n> # Pagination offset (default: 0)
deckflow task get <task-id> # Get task details
deckflow task delete <task-id> # Delete a task
deckflow compress <input-file> # Compress a file
--no-wait # Don't wait for completion
--timeout <seconds> # Timeout in seconds (default: 300)
Supported formats:
deckflow extract <input-file> # Extract information
--type <type> # Extract type: ocr, fonts, text-shapes
--language <lang> # OCR language (default: zh-hans)
--no-wait # Don't wait for completion
--timeout <seconds> # Timeout in seconds (default: 300)
Extract types:
ocr - Optical Character Recognition (images)fonts - Font information (PPTX)text-shapes - Text shapes (PPTX)OCR Languages:
zh-hans, zh-hant, en, ja, ko, ar, de, es, fr, it, pt, ru
deckflow render <input-file> # Convert file format
--format <format> # Required: output format
--no-wait # Don't wait for completion
--timeout <seconds> # Timeout in seconds (default: 300)
Output formats:
image - Convert to images (PPT, PPTX, PDF, KEY)pdf - Convert to PDF (PPT, PPTX, DOC, DOCX, KEY)video - Convert to video (PPT, PPTX)html - Convert to HTML (KEY)png - Convert to PNG (HTML, MD)pptx - Convert to PPTX (PPT, HTML)webp - Convert to WebP (JPG, JPEG, PNG)deckflow run <task-type> <input-files...> # Run task with explicit type
--param <key=value> # Task parameters (repeatable)
--no-wait # Don't wait for completion
--timeout <seconds> # Timeout in seconds (default: 300)
Example:
deckflow run convertor.ppt2pdf presentation.ppt --param quality=high
deckflow repl # Start interactive mode
# In REPL:
deckflow> config show
deckflow> file upload test.pdf
deckflow> task list
deckflow> exit
All commands support --json flag for machine-readable output:
# Get configuration as JSON
deckflow --json config show
# List tasks as JSON
deckflow --json task list | jq '.tasks[0].id'
# Compress and get result as JSON
deckflow --json compress file.zip
# Upload multiple files
for file in *.pdf; do
deckflow file upload "$file"
done
# Or use REPL mode
deckflow repl
# Upload with progress indicator
deckflow file upload large-file.mp4
# Disable progress
deckflow file upload large-file.mp4 --no-progress
# Start task without waiting
deckflow compress video.mp4 --no-wait
# Check task status later
deckflow task get <task-id>
# Clone repository
git clone <repository-url>
cd nodejs-deckflow-cli
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
# Run with coverage
npm run test:coverage
# Development mode
npm run dev
nodejs-deckflow-cli/
├── src/
│ ├── core/ # Core modules
│ │ ├── config.ts # Configuration management
│ │ ├── api-client.ts # API client with SSE
│ │ └── file-uploader.ts # File upload logic
│ ├── commands/ # CLI commands
│ ├── types/ # TypeScript types
│ ├── utils/ # Utilities
│ ├── context.ts # CLI context
│ └── cli.ts # Main entry
├── tests/
│ ├── unit/ # Unit tests
│ └── e2e/ # E2E tests
└── dist/ # Build output
# Run all tests
npm test
# Run unit tests only
npm run test:unit
# Run E2E tests only
npm run test:e2e
# Run with coverage
npm run test:coverage
Test Coverage:
Configuration is stored in ~/.tools-ui/config.json:
{
"token": "your-auth-token",
"spaceId": "your-space-id",
"apiBase": "https://api.example.com/v1"
}
Configuration options:
token - Authentication token (required)spaceId - Workspace/space ID (required)apiBase - API base URL (default: https://app.deckflow.com/v1)signURI - Sign-in URI (optional)Make sure you've set both token and space ID:
deckflow config set-token <your-token>
deckflow config set-space <your-space-id>
Check file exists and you have read permissions:
ls -l <file-path>
Increase timeout for large files:
deckflow compress large-file.mp4 --timeout 600
MIT
This is a TypeScript port of the Python deckflow-cli, maintaining 100% feature compatibility while leveraging the Node.js ecosystem.
FAQs
Deckflow CLI - File processing and conversion tools
The npm package @deckflow/cli receives a total of 3 weekly downloads. As such, @deckflow/cli popularity was classified as not popular.
We found that @deckflow/cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
/Company News
Capital One is partnering with Socket to proactively secure its open source supply chain.

Security News
Socket CTO Ahmad Nassri discusses how to keep AI agents from bypassing package blocks, limit credential access, and monitor their actions.

Security News
GPT-6 Astra tried to plant malicious code in simulated open source projects using fake GitHub accounts and deceptive PRs during an assigned CTF challenge.