Command-line interface for the FreeClimb voice and SMS communications API. Built with oclif, designed for developers and AI agents.
- Node.js >= 18.0.0
- A FreeClimb account
npm install -g freeclimb-clifreeclimb login
freeclimb sms:send +1FROM +1TO "Hello from FreeClimb"
freeclimb calls:list --fields callId,status,from,to --jsonfreeclimb loginexport FREECLIMB_ACCOUNT_ID=your_account_id
export FREECLIMB_API_KEY=your_api_keyfreeclimb help # Show topics and commands
freeclimb [TOPIC] # Explore commands in a topic
freeclimb [COMMAND] --help # Command usage details
freeclimb describe [COMMAND] # Machine-readable schema (JSON)| Topic | Description |
|---|---|
accounts |
View and manage account settings |
applications |
CRUD for FreeClimb applications (webhook endpoints) |
available-numbers |
Search phone numbers available for purchase |
call-queues |
Create and manage call queues |
calls |
Make, list, get, and update voice calls |
conference-participants |
Manage conference participants |
conferences |
Create and manage conference calls |
incoming-numbers |
Manage purchased phone numbers |
logs |
Search and filter API logs |
queue-members |
Manage call queue members |
recordings |
Access and manage call recordings |
sms |
Send and manage SMS messages |
| Command | Description |
|---|---|
api |
Make authenticated raw API requests |
describe |
Machine-readable command schema introspection |
diagnose |
System diagnostics and connectivity check |
status |
Account status overview |
mcp:start |
Start MCP server for AI agent integration |
freeclimb calls:list --json # JSON output
freeclimb calls:list --fields callId,status,from,to # Limit fields
export FREECLIMB_OUTPUT_FORMAT=json # Global JSON modefreeclimb sms:send +1FROM +1TO "Hello" --dry-run # Preview without executing
freeclimb applications:delete APP_ID --dry-run # Validate before deletingfreeclimb describe # List all topics
freeclimb describe calls # Commands in a topic
freeclimb describe calls:list # Full flag/arg schema
freeclimb describe --all # Everythingfreeclimb api /Calls --fields callId,status
freeclimb api /Messages --method POST -d '{"to":"+15551234567","from":"+15559876543","text":"Hello"}'For AI agents that prefer structured JSON-RPC:
freeclimb mcp:start # Start MCP server (stdio)
freeclimb mcp:config # Print Claude Desktop configfreeclimb sms:send +15551234567 +15559876543 "Hello from FreeClimb" --dry-run
freeclimb sms:send +15551234567 +15559876543 "Hello from FreeClimb"freeclimb calls:make +15551234567 +15559876543 AP1234567890 --dry-run
freeclimb calls:make +15551234567 +15559876543 AP1234567890freeclimb applications:list --fields applicationId,alias --json
freeclimb applications:create --alias "MyApp" --voiceUrl "https://example.com/voice" --dry-runfreeclimb available-numbers:list --fields phoneNumber,region --json
freeclimb incoming-numbers:buy --phoneNumber "+15551234567" --dry-rungit clone https://github.com/FreeClimbAPI/freeclimb-cli.git
cd freeclimb-cli
npm run setup # Install, build, and verify (recommended)Or manually:
npm install --ignore-scripts
npx tsc --noEmit # Type check
npm test # Run tests
npm run lint-write # Lint and format
npm run prepack # Build for distributionMCP server configs are auto-discovered by Claude Code (.mcp.json), Cursor (.cursor/mcp.json), and VS Code Copilot (.vscode/mcp.json). After npm run setup, set FREECLIMB_ACCOUNT_ID and FREECLIMB_API_KEY in the config files or your environment. See AGENTS.md for details.
See CLAUDE.md for architecture details and development conventions.