duck [path]
Attach to a workspace and stream live events. If a session exists for the workspace, it resumes that session. Otherwise, it creates a new session.Workspace path to attach. Can be relative or absolute.
Usage
Behavior
- Automatically starts the daemon if not running
- Creates or resumes a workspace session
- Streams both Pi daemon events and app voice history
- Continues running until interrupted (Ctrl+C)
Examples
duck say
Send a message to the active session and wait for the response.The prompt to send to the AI assistant. Multiple words are joined with spaces.
Options
Output raw NDJSON events instead of formatted text
Target a specific session by ID, name, or unambiguous prefix (hidden option for advanced use)
Display model thinking blocks in output (hidden option for debugging)
Force color output even in non-TTY environments (hidden option)
Disable colored output (hidden option)
Usage
Behavior
- Attaches to the active session or creates one if needed
- Shows a “Thinking…” spinner while waiting for response
- Streams the assistant’s response in real-time
- Automatically handles interactive UI requests (confirmations, selections)
- Exits when the agent finishes responding
- Times out after 10 minutes if no response
Exit Codes
0: Success (agent completed normally)1: Error (failed to connect, send message, or prompt error)
Examples
duck sessions
List all sessions with their status and workspace paths.Options
Show sessions for all workspaces (not just the current one)
Output session data as JSON instead of a formatted table
Usage
Output Format
Table columns:- SESSION: Session name (active session marked with ✓)
- WORKSPACE: Workspace path (shortened with
~for home directory) - STATUS:
running(green) orstopped(dimmed) - LAST ACTIVE: Relative timestamp (e.g., “2 minutes ago”)
JSON Output Schema
Examples
duck doctor
Check system health and dependencies. Runs diagnostics on both the CLI client and the daemon.Checks Performed
Client checks:- Node.js version compatibility (requires v22+)
- Pi binary availability and version
- Environment variable configuration
- Daemon process health
- Socket connection status
- Active session count
- Pi subprocess status
Usage
Output Format
Each check shows:- Name: The component being checked
- Status: ✓ (ok), ⚠ (warning), or ✗ (fail)
- Message: Details or recommended actions
Exit Codes
0: All checks passed (or warnings only)1: At least one check failed
Example Output
Troubleshooting
Ifdaemon shows a warning:
Removed Commands
The following legacy commands were removed and consolidated:duck follow→ Useduck [path]insteadduck attach→ Useduck [path]insteadduck new→ Sessions are created automaticallyduck use→ Switch by attaching withduck [path]duck abort→ Use Ctrl+C to interruptduck export→ Not yet implemented