The official command-line interface for Vapi - Voice AI for developers.
- π Browser-based Authentication - Secure OAuth-style login flow
- π€ Assistant Management - List, create, update, and delete voice assistants
- π Workflow Management - Manage visual conversation flows and branching logic
- π£ Campaign Management - Create and manage AI phone call campaigns at scale
- π Call Management - Monitor and control phone calls
- π§ Project Integration - Auto-detect and integrate with existing projects
- π Framework Support - React, Vue, Angular, Next.js, Node.js, Python, Go, and more
- π¦ SDK Installation - Automatic SDK setup for your project type
- π¨ Code Generation - Generate components, hooks, and examples
# Clone the repository
git clone https://github.com/VapiAI/cli.git
cd cli
# Install dependencies
make deps
# Build the CLI
make build
# Install to ~/.local/bin
make install
Coming soon: Pre-built binaries for macOS, Linux, and Windows.
-
Go 1.21+ - Install Go
-
golangci-lint - For code linting
# macOS brew install golangci-lint # Linux/Windows go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
First, authenticate with your Vapi account:
vapi login
This will open your browser for secure authentication. Your API key will be saved locally.
# List all assistants
vapi assistant list
# Get assistant details
vapi assistant get <assistant-id>
# Create a new assistant (interactive)
vapi assistant create
# Delete an assistant
vapi assistant delete <assistant-id>
# List all workflows
vapi workflow list
# Get workflow details
vapi workflow get <workflow-id>
# Create a new workflow (basic)
vapi workflow create
# Delete a workflow
vapi workflow delete <workflow-id>
Note: For visual workflow building with nodes and edges, use the Vapi Dashboard.
# List all campaigns
vapi campaign list
# Get campaign details
vapi campaign get <campaign-id>
# Create a new campaign
vapi campaign create
# Update/end a campaign
vapi campaign update <campaign-id>
# Delete a campaign
vapi campaign delete <campaign-id>
Note: For advanced campaign features (customer lists, scheduling), use the Vapi Dashboard.
Initialize Vapi in your existing project:
# Auto-detect project type and set up Vapi
vapi init
# Initialize in a specific directory
vapi init /path/to/project
The init
command will:
- Detect your project framework/language
- Install the appropriate Vapi SDK
- Generate example code and components
- Create environment configuration templates
# View current configuration
vapi config get
# Set configuration values
vapi config set <key> <value>
# List all configuration options
vapi config list
cli/
βββ cmd/ # Command implementations
β βββ root.go # Main CLI setup
β βββ assistant.go # Assistant commands
β βββ workflow.go # Workflow commands
β βββ campaign.go # Campaign commands
β βββ call.go # Call commands
β βββ config.go # Configuration commands
β βββ init.go # Project initialization
β βββ login.go # Authentication
βββ pkg/ # Core packages
β βββ auth/ # Authentication logic
β βββ client/ # Vapi API client
β βββ config/ # Configuration management
β βββ integrations/ # Framework integrations
β βββ output/ # Output formatting
βββ build/ # Build artifacts (git-ignored)
βββ main.go # Entry point
βββ Makefile # Build automation
βββ README.md # This file
# Build for current platform
make build
# Build for all platforms
make build-all
# Run without building
go run main.go
# Run all tests
make test
# Run tests with coverage
make test-coverage
# Run linters
make lint
# Format code
go fmt ./...
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
The CLI stores configuration in ~/.vapi-cli.yaml
. You can also use environment variables:
VAPI_API_KEY
- Your Vapi API keyVAPI_BASE_URL
- API base URL (for development)
- React (Create React App, Vite)
- Vue.js
- Angular
- Svelte
- Next.js
- Nuxt.js
- Remix
- Vanilla JavaScript
- React Native
- Flutter
- Node.js/TypeScript
- Python
- Go
- Ruby
- Java
- C#/.NET
MIT License - see LICENSE file for details.
- π Documentation
- π¬ Discord Community
- π Issue Tracker
Built with β€οΈ by the Vapi team