| --- |
| title: Process Adapter |
| summary: Generic shell process adapter |
| --- |
| |
| The `process` adapter executes arbitrary shell commands. Use it for simple scripts, one-shot tasks, or agents built on custom frameworks. |
|
|
| ## When to Use |
|
|
| - Running a Python script that calls the Paperclip API |
| - Executing a custom agent loop |
| - Any runtime that can be invoked as a shell command |
|
|
| ## When Not to Use |
|
|
| - If you need session persistence across runs (use `claude_local` or `codex_local`) |
| - If the agent needs conversational context between heartbeats |
|
|
| ## Configuration |
|
|
| | Field | Type | Required | Description | |
| |-------|------|----------|-------------| |
| | `command` | string | Yes | Shell command to execute | |
| | `cwd` | string | No | Working directory | |
| | `env` | object | No | Environment variables | |
| | `timeoutSec` | number | No | Process timeout | |
|
|
| ## How It Works |
|
|
| 1. Paperclip spawns the configured command as a child process |
| 2. Standard Paperclip environment variables are injected (`PAPERCLIP_AGENT_ID`, `PAPERCLIP_API_KEY`, etc.) |
| 3. The process runs to completion |
| 4. Exit code determines success/failure |
|
|
| ## Example |
|
|
| An agent that runs a Python script: |
|
|
| ```json |
| { |
| "adapterType": "process", |
| "adapterConfig": { |
| "command": "python3 /path/to/agent.py", |
| "cwd": "/path/to/workspace", |
| "timeoutSec": 300 |
| } |
| } |
| ``` |
|
|
| The script can use the injected environment variables to authenticate with the Paperclip API and perform work. |
|
|