Implements the `paseo agent run` command for creating and running agents:
- Creates agent with initial prompt
- `-d, --detach` flag for background execution
- `--name <name>` to assign a title
- `--provider <provider>` to select claude/codex/opencode
- `--mode <mode>` for provider-specific modes
- `--cwd <path>` for working directory
- Supports all output formats (table, json, yaml, quiet)
- Graceful error handling when daemon not running
Usage:
paseo agent run "Fix the failing tests"
paseo agent run -d --name "test-fixer" "Run the test suite"
paseo agent run --mode bypass "Refactor the auth module"
Phase 4 of CLI implementation (TDD checklist 4.1-4.6)
Implements the `paseo agent ps` command for listing agents:
- Lists running agents by default
- `-a, --all` flag to include archived agents
- `--status <status>` filter by agent status
- `--cwd <path>` filter by working directory
- Supports all output formats (table, json, yaml, quiet)
- Graceful error handling when daemon not running
Output format:
AGENT ID NAME PROVIDER STATUS CWD CREATED
a1b2c3d 🎭 Test fixer claude running ~/dev/paseo 2 minutes ago
Phase 3 of CLI implementation (TDD checklist 3.1-3.5)
Add tests for daemon commands (Phase 2 from TDD checklist):
- daemon --help shows subcommands
- daemon status fails gracefully when daemon not running
- daemon status --format json outputs JSON
- daemon stop handles daemon not running gracefully
- daemon restart fails when daemon not running
These tests focus on error cases and help output since daemon start
may not be fully implemented yet.
Design document for the CLI output abstraction layer that enables:
- Commands returning structured data instead of formatted strings
- Multiple output formats (table, json, yaml, quiet)
- Testable output without parsing strings
- Streaming support for logs/attach commands
Draws from patterns in Docker CLI, kubectl, and GitHub CLI.
- Install zx as devDependency for E2E testing
- Create tests/ directory with setup utilities
- Add setup.ts with test context helpers:
- Random port generation (never 6767)
- Temp directory creation for PASEO_HOME and workDir
- Daemon startup/waitForDaemon helper (WebSocket only)
- Cleanup function
- paseo() helper to run CLI commands against test daemon
- Add Phase 1 foundation tests (01-foundation.test.mts):
- Test paseo --version outputs version
- Test paseo --help shows commands
- Add test runner (run-all.mts) that discovers and runs all tests
- Add test:e2e script to package.json