io.github.chrismcdermut/proletariat-cli
效率与工作流by chrismcdermut
Agent orchestration platform - multi-agent spawning, tickets, boards, and workflows
什么是 io.github.chrismcdermut/proletariat-cli?
Agent orchestration platform - multi-agent spawning, tickets, boards, and workflows
README
██████╗ ██████╗ ██████╗ ██╗ ███████╗████████╗ █████╗ ██████╗ ██╗ █████╗ ████████╗
██╔══██╗██╔══██╗██╔═══██╗██║ ██╔════╝╚══██╔══╝██╔══██╗██╔══██╗██║██╔══██╗╚══██╔══╝
██████╔╝██████╔╝██║ ██║██║ █████╗ ██║ ███████║██████╔╝██║███████║ ██║
██╔═══╝ ██╔══██╗██║ ██║██║ ██╔══╝ ██║ ██╔══██║██╔══██╗██║██╔══██║ ██║
██║ ██║ ██║╚██████╔╝███████╗███████╗ ██║ ██║ ██║██║ ██║██║██║ ██║ ██║
╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝ ╚═╝
Seize the means of production - Ship 100x.
Agent orchestration platform for AI labor. Spin up workers for all work, on demand.
Themed agents, including billionaires - Finally, they work for us.
⚠️ Beta Software — Under active development. Commands and APIs may change between versions, and bugs are actively being squashed.
Let's get you shipping Book a call - I'm happy to help you get prlt running or chat feedback, ideas, multi-agent workflows, and the future of work/labor (and economic labor theory..)
TLDR
prlt is an agent orchestration platform for AI labor. Spin up workers on demand, coordinate multi-agent development from one CLI. Isolated workspaces, secure containers, persistent state.
brew install chrismcdermut/proletariat/prlt # macOS (Homebrew)
# or
npm install -g @proletariat/cli # any platform (npm)
prlt new
prlt ticket create --title "Add OAuth" --category feature
prlt work spawn # Interactive: select tickets, environment, action
Agent spawns in its own branch, writes code, opens PR. You review and merge.
Why prlt?
- Isolated - Each agent gets its own git branch. No conflicts.
- Secure - Docker containers, sandboxed from your host.
- Durable - Tmux sessions persist. Close window, agent keeps working.
- Trackable - One database, one CLI, all your agents.
- Ephemeral - Spawn agents on demand. They work, they PR, they're done.
- Structured - Tickets provide structured context, not freeform chat.
- Persistent - Tickets accumulate context over time. Hand off between agents.
- Agent-native -
--jsonmode lets AI agents drive the CLI programmatically.
Quick Start
brew install chrismcdermut/proletariat/prlt # Install (Homebrew, recommended)
# or
npm install -g @proletariat/cli # Install (npm, all platforms)
prlt new # Create HQ, add repos, choose theme
prlt ticket create --title "Add OAuth" --category feature
prlt work spawn # Interactive: select tickets, environment, action
# Agent creates PR → You review → Merge → Done
sequenceDiagram
participant You
participant prlt
participant Agent
participant GitHub
You->>prlt: prlt ticket create
You->>prlt: prlt work spawn
prlt->>prlt: Create branch
prlt->>prlt: Create workspace
prlt->>Agent: Spawn agent
Agent->>Agent: Read ticket
Agent->>Agent: Write code
Agent->>GitHub: Commit
Agent->>GitHub: Open PR
Agent->>prlt: Update status
prlt->>You: PR ready
You->>GitHub: Review & approve
Spawn agents to implement, groom, or review—not just write code.
Interactive Menus
prlt work guides you through project and ticket selection:
Choose your operation—start a single agent, batch spawn, or watch a column:
<p align="center"> <img src="https://raw.githubusercontent.com/chrismcdermut/proletariat/main/apps/cli/images/work/work-operations-menu.png" alt="Work Operations Menu" width="600"> </p>Select tickets to spawn, grouped by priority:
<p align="center"> <img src="https://raw.githubusercontent.com/chrismcdermut/proletariat/main/apps/cli/images/work/work-ticket-select.png" alt="Ticket Selection" width="800"> </p>Deep Dive
| Problem | Solution |
|---|---|
| Agents conflict with each other's changes | Isolated - Each agent gets its own git branch and worktree |
| Agents run unsandboxed on your machine | Secure - Docker containers, sandboxed from your host (looking into host sandbox options) |
| You lose track of who's doing what | Trackable - All state in one SQLite database, one CLI |
| Sessions die when you close a window | Durable - Tmux sessions persist, detach/reattach anytime |
| Context scattered across chat windows | Structured - Tickets with requirements, acceptance criteria |
| Starting agents is heavyweight | Ephemeral - Spawn on demand, they work, they PR, they're done |
| Context lost between agent runs | Persistent - Tickets accumulate context, hand off between agents |
Installation
Homebrew (recommended)
brew install chrismcdermut/proletariat/prlt
Works on both Apple Silicon (arm64) and Intel (x86_64) Macs. No compiler needed.
Upgrade:
brew update
brew upgrade prlt
npm / pnpm (all platforms)
npm install -g @proletariat/cli
# or
pnpm install -g @proletariat/cli
pnpm 10+ note: pnpm 10 blocks native addon build scripts by default. If
prltfails with a native module error after install, runpnpm approve-buildsin the global store and reinstall, or usenpm/brewinstead.
Verify:
prlt --version
MCP Server
prlt includes a built-in MCP server with 100+ tools. Add it to your AI client:
Claude Code (~/.claude.json):
{
"mcpServers": {
"prlt": { "command": "prlt", "args": ["mcp-server"] }
}
}
Cursor / Other clients (via npx):
{
"mcpServers": {
"prlt": { "command": "npx", "args": ["-y", "@proletariat/cli", "mcp-server"] }
}
}
Listed on: MCP Registry | npm
Data Model
Workspace (HQ)
├── Projects
│ ├── Epics → Tickets
│ └── (references a Workflow)
├── Workflows → Phases → Statuses (can be shared across projects)
├── Specs (can span projects)
├── Actions (reusable templates)
├── Agents
│ ├── Staff (persistent, named)
│ └── Temp (ephemeral, per-ticket)
└── Executions (running sessions)
├── Docker
│ ├── Tmux session
│ ├── Terminal or Background display
│ └── Safe or YOLO permissions
└── Host
├── Tmux session
├── Terminal or Background display
└── Safe or YOLO permissions
| Entity | Description |
|---|---|
| Project | Groups tickets and epics, references a workflow |
| Epic | Work container with lifecycle (draft → active → complete) |
| Ticket | Individual work item with requirements and acceptance criteria |
| Spec | Static documentation (can span projects, linked to epics) |
| Workflow | Status flow configuration (can be shared across projects) |
| Phase | Stage in a workflow |
| Status | Ticket state within a phase |
| Action | Reusable prompt/action templates |
| Agent (Staff) | Persistent named agent with dedicated workspace |
| Agent (Temp) | Ephemeral agent spawned for a single ticket |
| Execution | Running agent session on a ticket |
| Display | Terminal (new tab) or Background (detached) |
Example Workflow
A workflow defines how tickets move through your process. Projects reference a workflow, and multiple projects can share the same one.
Kanban Workflow
├── Backlog # New tickets land here
├── In Progress # Agent working (prlt work spawn)
├── Review # PR ready (prlt work ready)
└── Done # Merged (prlt work complete)
Scrum Workflow
├── Backlog
├── Sprint
│ ├── To Do
│ ├── In Progress
│ └── In Review
└── Done
Tickets flow through statuses as work progresses. Agents automatically move tickets when they start work, open PRs, or complete tasks.
Workspace Structure
Each agent gets a copy of all repos (repo scoping coming soon). Work happens on isolated branches.
my-project/
├── .proletariat/
│ └── workspace.db # Tickets, executions, state
├── repos/
│ ├── frontend/ # Your repos
│ ├── backend/
│ └── infra/
└── agents/
├── staff/
│ └── alice/ # Named agent with persistent workspace
│ ├── frontend/
│ ├── backend/
│ └── infra/
└── temp/
├── agent-abc123/ # Ephemeral: Working on TKT-042 (OAuth)
│ ├── frontend/ # All repos on branch: feat/TKT-042-oauth
│ ├── backend/
│ └── infra/
└── agent-def456/ # Ephemeral: Working on TKT-043 (API)
├── frontend/ # All repos on branch: feat/TKT-043-api
├── backend/
└── infra/
Agent Naming Themes
Themes control how agents are named. Staff agents use theme names directly (e.g., bezos, camry). Ephemeral agents add an adjective prefix (e.g., bold-bezos, keen-camry). Currently ephemeral names also include a number suffix (bold-bezos-1), but this will be removed soon.
Built-in Themes:
| Theme | Description | Example Names |
|---|---|---|
billionaires | Tech founders & executives (default) | musk, gates, bezos |
toyotas | Toyota vehicle models | camry, supra, tacoma |
companies | Major tech companies | stripe, vercel, linear |
billionaires — Finally, they work for us.
Theme Commands:
prlt agent themes list # List available themes
prlt agent themes set billionaires # Set active theme
prlt agent themes create mytheme # Create custom theme
prlt agent themes add-names mytheme # Add names to custom theme
Themes are selected during prlt new.
Three Ways to Use Commands
1. Interactive (Humans)
Run without flags—get guided prompts:
$ prlt ticket create
? Title: Add password reset
? Description: Email-based password reset flow
? Priority: P1
? Category: feature
✓ Created TKT-043
View ticket details with prlt ticket:
2. JSON Mode (AI Agents)
Add --json for machine-readable output:
$ prlt work start --json
{
"prompt": {
"type": "list",
"message": "Select ticket to work on:",
"choices": [
{
"name": "[P1] TKT-042 - Add user authentication",
"value": "TKT-042",
"command": "prlt work start TKT-042 --json"
}
]
}
}
AI agents parse this, make selections, call the next command.
3. Flags (Scripts/CI)
Pass everything directly:
prlt ticket create \
--title "Add OAuth" \
--description "Google and GitHub OAuth" \
--priority P1 \
--category feature
Execution Modes
Environment - where the agent runs:
| Environment | Flag | Best For |
|---|---|---|
| 🐳 Docker | (default if devcontainer exists) | Safety—fully isolated container |
| 🏃 Host | --run-on-host | Speed—no container overhead |
Display - how you see it:
| Display | Flag | Best For |
|---|---|---|
| 📺 Terminal | --display terminal | Watch in new terminal tab |
| 🔇 Background | --display background | Detached, reattach later |
Permissions - agent access level:
| Mode | Flag | Description |
|---|---|---|
| 🔒 Safe | (default) | Agent prompts for permissions |
| 🕺 YOLO | --skip-permissions | No prompts, full access. Use with Docker for safe autonomy. |
All sessions run in tmux under the hood—close the window, agent keeps working.
# Default: Docker + terminal (if devcontainer exists)
prlt work start TKT-042
# Docker + background
prlt work start TKT-042 --display background
# Host + background (fast, no container)
prlt work start TKT-042 --run-on-host --display background
# Docker + YOLO (full autonomy, safely sandboxed)
prlt work start TKT-042 --skip-permissions
Parallel Agents
Work on multiple tickets simultaneously.
Interactive (humans):
$ prlt work spawn
? Spawn mode: Select specific tickets
? Select tickets:
◉ [P1] TKT-042 - Add user authentication
◉ [P1] TKT-043 - Add API rate limiting
◯ [P2] TKT-044 - Add email notifications
? Action: implement
? Environment: docker
Spawning 2 tickets...
JSON mode (AI agents): (multi-select WIP)
$ prlt work spawn --json --many
{
"prompt": {
"type": "checkbox",
"message": "Select tickets to spawn:",
"choices": [
{"name": "[P1] TKT-042 - Add user authentication", "value": "TKT-042"},
{"name": "[P1] TKT-043 - Add API rate limiting", "value": "TKT-043"}
]
}
}
Flags (scripts/CI):
prlt work spawn TKT-042 TKT-043 --action implement --mode docker
Each agent works in its own branch. No conflicts.
Scaling: The main limit is your machine. 50+ concurrent agents is achievable—depends on CPU, RAM, and whether you're running Docker or host mode.
Monitor running agents with prlt execution:
flowchart LR
subgraph You
spawn[prlt work spawn]
end
subgraph Agents
A1[Agent 1<br/>TKT-042 OAuth]
A2[Agent 2<br/>TKT-043 Rate Limit]
A3[Agent 3<br/>TKT-044 Notifications]
end
subgraph GitHub
PR1[PR #101<br/>feat/TKT-042-oauth]
PR2[PR #102<br/>feat/TKT-043-rate-limit]
PR3[PR #103<br/>feat/TKT-044-notifications]
end
spawn --> A1
spawn --> A2
spawn --> A3
A1 --> PR1
A2 --> PR2
A3 --> PR3
Agent-created PRs ready for review:
<p align="center"> <img src="https://raw.githubusercontent.com/chrismcdermut/proletariat/main/apps/cli/images/execution/github-prs.png" alt="GitHub Pull Requests" width="800"> </p>Command Reference
<details> <summary><b>Full Command Reference</b> (click to expand)</summary> <table> <tr><th>Namespace</th><th>Command</th><th>Description</th></tr> <!-- ticket --> <tr><td rowspan="10"><b>ticket</b></td><td><code>prlt ticket create</code></td><td>Create new ticket</td></tr> <tr><td><code>prlt ticket list</code></td><td>List all tickets</td></tr> <tr><td><code>prlt ticket view <id></code></td><td>View ticket details</td></tr> <tr><td><code>prlt ticket edit <id></code></td><td>Edit ticket</td></tr> <tr><td><code>prlt ticket move <id> <status></code></td><td>Change status</td></tr> <tr><td><code>prlt ticket delete <id></code></td><td>Delete ticket</td></tr> <tr><td><code>prlt ticket complete <id></code></td><td>Mark ticket complete</td></tr> <tr><td><code>prlt ticket bulk</code></td><td>Bulk ticket operations</td></tr> <tr><td><code>prlt ticket link block <id></code></td><td>Link blocking ticket</td></tr> <tr><td><code>prlt ticket link relates <id></code></td><td>Link related ticket</td></tr> <!-- work --> <tr><td rowspan="6"><b>work</b></td><td><code>prlt work start <id></code></td><td>Spawn agent on ticket</td></tr> <tr><td><code>prlt work spawn</code></td><td>Batch spawn tickets</td></tr> <tr><td><code>prlt work complete <id></code></td><td>Mark work done</td></tr> <tr><td><code>prlt work ready <id></code></td><td>Mark ready for review</td></tr> <tr><td><code>prlt work revise <id></code></td><td>Request revision</td></tr> <tr><td><code>prlt work watch</code></td><td>Watch work progress</td></tr> <!-- execution --> <tr><td rowspan="3"><b>execution</b></td><td><code>prlt execution list</code></td><td>List running agents</td></tr> <tr><td><code>prlt execution logs <id></code></td><td>View agent output</td></tr> <tr><td><code>prlt execution stop <id></code></td><td>Stop an agent</td></tr> <!-- agent --> <tr><td rowspan="11"><b>agent</b></td><td><code>prlt agent list</code></td><td>List all agents</td></tr> <tr><td><code>prlt agent status <name></code></td><td>Check agent status</td></tr> <tr><td><code>prlt agent shell <name></code></td><td>Shell into agent workspace</td></tr> <tr><td><code>prlt agent visit <name></code></td><td>Navigate to workspace</td></tr> <tr><td><code>prlt agent login <name></code></td><td>Auth Claude in container</td></tr> <tr><td><code>prlt agent rebuild <name></code></td><td>Rebuild agent workspace</td></tr> <tr><td><code>prlt agent restart <name></code></td><td>Restart agent</td></tr> <tr><td><code>prlt agent staff add <names></code></td><td>Add named agents</td></tr> <tr><td><code>prlt agent staff list</code></td><td>List staff agents</td></tr> <tr><td><code>prlt agent temp list</code></td><td>List ephemeral agents</td></tr> <tr><td><code>prlt agent temp cleanup</code></td><td>Remove ephemeral agents</td></tr> <!-- agent themes --> <tr><td rowspan="4"><b>agent themes</b></td><td><code>prlt agent themes list</code></td><td>List available themes</td></tr> <tr><td><code>prlt agent themes set <name></code></td><td>Set active theme</td></tr> <tr><td><code>prlt agent themes create <name></code></td><td>Create custom theme</td></tr> <tr><td><code>prlt agent themes add-names</code></td><td>Add names to theme</td></tr> <!-- board --> <tr><td rowspan="2"><b>board</b></td><td><code>prlt board</code></td><td>View kanban board</td></tr> <tr><td><code>prlt board watch</code></td><td>Real-time updates</td></tr> <!-- project --> <tr><td rowspan="6"><b>project</b></td><td><code>prlt project create</code></td><td>Create project</td></tr> <tr><td><code>prlt project list</code></td><td>List projects</td></tr> <tr><td><code>prlt project view <id></code></td><td>View project details</td></tr> <tr><td><code>prlt project archive <id></code></td><td>Archive project</td></tr> <tr><td><code>prlt project unarchive <id></code></td><td>Unarchive project</td></tr> <tr><td><code>prlt project delete <id></code></td><td>Delete project</td></tr> <!-- action --> <tr><td rowspan="6"><b>action</b></td><td><code>prlt action create</code></td><td>Create action template</td></tr> <tr><td><code>prlt action list</code></td><td>List actions</td></tr> <tr><td><code>prlt action show <id></code></td><td>Show action details</td></tr> <tr><td><code>prlt action run <id></code></td><td>Run action</td></tr> <tr><td><code>prlt action update <id></code></td><td>Update action</td></tr> <tr><td><code>prlt action delete <id></code></td><td>Delete action</td></tr> <!-- branch --> <tr><td rowspan="3"><b>branch</b></td><td><code>prlt branch create</code></td><td>Create branch</td></tr> <tr><td><code>prlt branch list</code></td><td>List branches</td></tr> <tr><td><code>prlt branch validate</code></td><td>Validate branch name</td></tr> <!-- pr --> <tr><td rowspan="3"><b>pr</b></td><td><code>prlt pr create</code></td><td>Create pull request</td></tr> <tr><td><code>prlt pr status <id></code></td><td>Check PR status</td></tr> <tr><td><code>prlt pr link <id> <url></code></td><td>Link PR to ticket</td></tr> <!-- gh --> <tr><td rowspan="3"><b>gh</b></td><td><code>prlt gh login</code></td><td>Login to GitHub</td></tr> <tr><td><code>prlt gh status</code></td><td>Check auth status</td></tr> <tr><td><code>prlt gh token</code></td><td>Get GitHub token</td></tr> <!-- repo --> <tr><td rowspan="4"><b>repo</b></td><td><code>prlt repo add <url></code></td><td>Add repository</td></tr> <tr><td><code>prlt repo list</code></td><td>List repositories</td></tr> <tr><td><code>prlt repo view <name></code></td><td>View repository details</td></tr> <tr><td><code>prlt repo remove <name></code></td><td>Remove repository</td></tr> <!-- docker --> <tr><td rowspan="10"><b>docker</b></td><td><code>prlt docker list</code></td><td>List containers</td></tr> <tr><td><code>prlt docker status</code></td><td>Check Docker status</td></tr> <tr><td><code>prlt docker start <name></code></td><td>Start container</td></tr> <tr><td><code>prlt docker stop <name></code></td><td>Stop container</td></tr> <tr><td><code>prlt docker restart <name></code></td><td>Restart container</td></tr> <tr><td><code>prlt docker logs <name></code></td><td>View container logs</td></tr> <tr><td><code>prlt docker shell <name></code></td><td>Shell into container</td></tr> <tr><td><code>prlt docker sync <name></code></td><td>Sync container files</td></tr> <tr><td><code>prlt docker clean</code></td><td>Remove stopped containers</td></tr> <tr><td><code>prlt docker prune</code></td><td>Remove unused resources</td></tr> <!-- session --> <tr><td rowspan="2"><b>session</b></td><td><code>prlt session list</code></td><td>List active tmux sessions</td></tr> <tr><td><code>prlt session attach <name></code></td><td>Attach to tmux session</td></tr> <!-- workspace --> <tr><td rowspan="5"><b>workspace</b></td><td><code>prlt init</code></td><td>Initialize machine config</td></tr> <tr><td><code>prlt new</code></td><td>Create new HQ workspace</td></tr> <tr><td><code>prlt workspace list</code></td><td>List workspaces</td></tr> <tr><td><code>prlt workspace add</code></td><td>Add workspace</td></tr> <tr><td><code>prlt workspace use <name></code></td><td>Switch workspace</td></tr> <!-- utility --> <tr><td rowspan="4"><b>utility</b></td><td><code>prlt whoami</code></td><td>Show current context</td></tr> <tr><td><code>prlt claude</code></td><td>Quick ad-hoc Claude session</td></tr> <tr><td><code>prlt commit</code></td><td>Conventional commit</td></tr> <tr><td><code>prlt autocomplete setup</code></td><td>Setup shell autocomplete</td></tr> </table> </details>Run prlt <command> --help for flags and options.
Use Cases
Parallel Feature Development
# Create tickets for each feature
prlt ticket create --title "Add OAuth" --category feature
prlt ticket create --title "Add API rate limiting" --category feature
prlt ticket create --title "Add email notifications" --category feature
# Spawn all three in parallel (Docker for isolation)
prlt work spawn TKT-001 TKT-002 TKT-003 --mode docker
# Watch the board as they work
prlt board watch
Three agents, three branches, three PRs. You review and merge.
Bug Bash
# Spawn all bugs at once
prlt work spawn --all --column Backlog --category bug
# Or pick specific ones
prlt work spawn TKT-010 TKT-011 TKT-012
Grooming Session
Have an agent refine ticket requirements:
prlt work groom TKT-042
Agent adds acceptance criteria, subtasks, estimates.
Environment Variables
| Variable | Purpose |
|---|---|
GITHUB_TOKEN | GitHub operations (PRs, etc.) |
Claude Code handles its own authentication via claude login.
Requirements
- Node.js 20+ (22 LTS recommended)
- Git
- Claude Code (
claude loginto authenticate) - SQLite
- Tmux (session persistence)
- Docker (optional—for isolated execution)
Troubleshooting Installation
bun install fails on better-sqlite3
Symptom: bun install -g @proletariat/cli fails with isexe or node-gyp errors during the better-sqlite3 native module build.
Cause: Bun's node-gyp compatibility is limited. The which dependency inside node-gyp uses isexe, which is incompatible with Bun's runtime shims.
Fix: Use npm or Homebrew instead:
# Option 1: Homebrew (macOS, recommended)
brew install chrismcdermut/proletariat/prlt
# Option 2: npm (all platforms)
npm install -g @proletariat/cli
# Option 3: pnpm
pnpm install -g @proletariat/cli
If you must use Bun, ensure Node.js 22 (LTS) is also installed and set better-sqlite3 to use its prebuilt binaries:
npm rebuild better-sqlite3
npm EACCES: permission denied
Symptom: npm install -g @proletariat/cli fails with EACCES: permission denied on /opt/homebrew/lib/node_modules or /usr/local/lib/node_modules.
Fix: Configure npm to use a user-writable directory:
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH="$HOME/.npm-global/bin:$PATH"
# Add the export line to your ~/.zshrc or ~/.bashrc
npm install -g @proletariat/cli
Or use Homebrew instead (macOS):
brew install chrismcdermut/proletariat/prlt
Native module errors after install
Symptom: prlt runs but crashes with better_sqlite3.node or ABI mismatch errors.
Fix:
# Rebuild for the current Node version
npm rebuild better-sqlite3
# Verify it works
node -e "require('better-sqlite3')"
# If still failing, reinstall
npm install -g @proletariat/cli --force
See the full troubleshooting guide for more details.
Support
- Discord: discord.gg/tmZyjNNSvw
- GitHub Issues: Report bugs or request features
- Setup Help: Book a call - I'll help you get things running
License
Apache 2.0
Star on GitHub | Install from NPM | Report Issues
Made with ⚒️ by the proletariat.
常见问题
io.github.chrismcdermut/proletariat-cli 是什么?
Agent orchestration platform - multi-agent spawning, tickets, boards, and workflows
相关 Skills
技能工坊
by anthropics
覆盖 Skill 从创建到迭代优化全流程:起草能力、补测试提示、跑评测与基准方差分析,并持续改写内容和描述,提升效果与触发准确率。
✎ 技能工坊把技能从创建、迭代到评测串成闭环,方差分析加描述优化,特别适合把触发准确率打磨得更稳。
PPT处理
by anthropics
处理 .pptx 全流程:创建演示文稿、提取和解析幻灯片内容、批量修改现有文件,支持模板套用、合并拆分、备注评论与版式调整。
✎ 涉及PPTX的创建、解析、修改到合并拆分都能一站搞定,连备注、模板和评论也能处理,做演示文稿特别省心。
PDF处理
by anthropics
遇到 PDF 读写、文本表格提取、合并拆分、旋转加水印、表单填写或加解密时直接用它,也能提取图片、生成新 PDF,并把扫描件通过 OCR 变成可搜索文档。
✎ PDF杂活别再来回切工具了,文本表格提取、合并拆分到OCR识别一次搞定,连扫描件也能变可搜索。
相关 MCP Server
文件系统
编辑精选by Anthropic
Filesystem 是 MCP 官方参考服务器,让 LLM 安全读写本地文件系统。
✎ 这个服务器解决了让 Claude 直接操作本地文件的痛点,比如自动整理文档或生成代码文件。适合需要自动化文件处理的开发者,但注意它只是参考实现,生产环境需自行加固安全。
by wonderwhy-er
Desktop Commander 是让 AI 直接执行终端命令、管理文件和进程的 MCP 服务器。
✎ 这工具解决了 AI 无法直接操作本地环境的痛点,适合需要自动化脚本调试或文件批量处理的开发者。它能让你用自然语言指挥终端,但权限控制需谨慎,毕竟让 AI 执行 rm -rf 可不是闹着玩的。
EdgarTools
编辑精选by dgunning
EdgarTools 是无需 API 密钥即可解析 SEC EDGAR 财报的开源 Python 库。
✎ 这个工具解决了金融数据获取的痛点——直接让 AI 读取结构化财报,比如让 Claude 分析苹果的 10-K 文件。适合量化分析师或金融开发者快速构建数据管道。但注意,它依赖 SEC 网站稳定性,高峰期可能延迟。