Skip to content

Support transient and config assistants with call-out functionality #8

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 22 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
eabbed2
Add support for calling out from the cli
lukatmyshu Jul 25, 2025
b7318e3
Support transient and config assistants
lukatmyshu Jul 25, 2025
26b7354
Fix audio quality by using 48kHz throughout pipeline
lukatmyshu Jul 26, 2025
a67b2fb
Nope we need this sample rate it turns out
lukatmyshu Jul 29, 2025
7e794e6
Try to clean up the stream properly
lukatmyshu Jul 29, 2025
483dab8
Fix audio issues and add proper call termination
lukatmyshu Jul 29, 2025
3272778
Fix lint issues
lukatmyshu Jul 29, 2025
745b3a9
Add audio debugging capability and fix lint issues
lukatmyshu Jul 29, 2025
2456edd
Echo cancellation plus more lint issues
lukatmyshu Jul 29, 2025
0bfdbf7
Add a jitter buffer implementation
lukatmyshu Jul 30, 2025
37bafc2
Add PortAudio dependency to CI workflow
lukatmyshu Jul 30, 2025
ca779ba
Add PortAudio dependency windows to CI workflow
lukatmyshu Jul 30, 2025
ad38cae
Add pkg-config for windows to CI workflow
lukatmyshu Jul 30, 2025
f1a2be4
Add DLL for windows to CI workflow
lukatmyshu Jul 30, 2025
1e223fa
chore: remove outdated models from comments and docs
goosewin Aug 11, 2025
fb71ec6
chore(docs): include `portaudio` as a dependency in the docs
goosewin Aug 11, 2025
1dcff8a
chore: remove hardcoded public key
goosewin Aug 11, 2025
57554d7
feat: add in-call interactive controls
goosewin Aug 11, 2025
c590e64
chore: remove accidentally committed vapi-cli binary from repo
goosewin Aug 11, 2025
a7663f2
chore: ignore stray vapi-cli binary
goosewin Aug 11, 2025
1ca2888
chore: add `fmt` command to `Makefile`
goosewin Aug 11, 2025
d20c8db
chore(docs): cleanup
goosewin Aug 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,24 @@ jobs:
restore-keys: |
${{ runner.os }}-go-

- name: Install PortAudio (Ubuntu)
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y portaudio19-dev

- name: Install PortAudio (macOS)
if: runner.os == 'macOS'
run: brew install portaudio

- name: Install PortAudio (Windows)
if: runner.os == 'Windows'
run: |
vcpkg install portaudio:x64-windows
echo "PKG_CONFIG_PATH=C:/vcpkg/installed/x64-windows/lib/pkgconfig" >> $env:GITHUB_ENV
echo "CGO_CFLAGS=-IC:/vcpkg/installed/x64-windows/include" >> $env:GITHUB_ENV
echo "CGO_LDFLAGS=-LC:/vcpkg/installed/x64-windows/lib -lportaudio" >> $env:GITHUB_ENV
# Add DLL directory to PATH so tests can find portaudio.dll at runtime
echo "C:/vcpkg/installed/x64-windows/bin" >> $env:GITHUB_PATH

- name: Download dependencies
run: go mod download

Expand Down Expand Up @@ -58,6 +76,9 @@ jobs:
with:
go-version: "1.24.4"

- name: Install PortAudio
run: sudo apt-get update && sudo apt-get install -y portaudio19-dev

- name: Run golangci-lint
uses: golangci/golangci-lint-action@v8
with:
Expand All @@ -76,6 +97,9 @@ jobs:
with:
go-version: "1.24.4"

- name: Install PortAudio
run: sudo apt-get update && sudo apt-get install -y portaudio19-dev

- name: Build
run: make build

Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,7 @@ Thumbs.db
npm-wrapper/bin/
npm-wrapper/node_modules/
npm-wrapper/*.tgz
**/node_modules/
**/node_modules/
# Ignore stray binaries
vapi-cli

12 changes: 11 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,15 @@ lint:
@echo "Running linters..."
golangci-lint run

# Format Go code
fmt:
@echo "Formatting Go code..."
@$(GOCMD) fmt ./...
@echo "✅ Go code formatted"

# Alias
format: fmt

# Run all linters (CLI + MCP server)
lint-all: lint lint-mcp

Expand Down Expand Up @@ -195,6 +204,7 @@ help:
@echo " man-pages Generate Unix manual pages"
@echo " install Install the CLI and manual pages to ~/.local/"
@echo " test Run CLI tests"
@echo " fmt Format Go code"
@echo " lint Run CLI linters"
@echo " clean Clean CLI build artifacts"
@echo ""
Expand Down Expand Up @@ -228,4 +238,4 @@ help:
@echo " make version-set VERSION=1.2.3"
@echo " make publish-mcp # Publish MCP server to npm"

.PHONY: all build build-mcp build-all test test-mcp test-all test-coverage clean clean-mcp clean-all tidy deps mcp-deps deps-all lint lint-mcp lint-all man-pages install install-mcp install-all run publish-mcp help
.PHONY: all build build-mcp build-all test test-mcp test-all test-coverage clean clean-mcp clean-all tidy deps mcp-deps deps-all lint lint-mcp lint-all fmt format man-pages install install-mcp install-all run publish-mcp help
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,18 @@ iex ((New-Object System.Net.WebClient).DownloadString('https://vapi.ai/install.p

Both scripts automatically detect your platform and install the latest version.

### Audio prerequisite (PortAudio)

For voice features (microphone and speaker I/O), the CLI relies on the PortAudio runtime. Install it with your OS package manager:

- macOS: `brew install portaudio`
- Debian/Ubuntu: `sudo apt-get update && sudo apt-get install -y libportaudio2 portaudio19-dev`
- Fedora/RHEL: `sudo dnf install -y portaudio portaudio-devel`
- Arch Linux: `sudo pacman -S portaudio`
- Windows: Install PortAudio and ensure `portaudio.dll` is on your PATH (e.g., via vcpkg: `vcpkg install portaudio`, or download the official binary and place the DLL alongside `vapi.exe`).

If PortAudio is not installed, commands that use voice I/O (like `vapi call voice`) will fail at runtime.

### Docker

```bash
Expand Down
Loading
Loading