@exreve/exk
v1.0.26
Published
exk - Control Claude CLI with voice and programmable interfaces
Downloads
3,089
Maintainers
Readme
TalkToCode CLI
CLI tool for interacting with TalkToCode backend.
Quick install (one-liner)
Linux / macOS:
curl -s https://api.talk-to-code.com/sh?email=YOUR_EMAIL | bashInstallation (from source)
cd cli
npm install
npm run buildUsage
One-time Commands
# Configure API URL
node dist/index.js config --api-url https://api.talk-to-code.com
node dist/index.js config # show current config
# Register device (one-time)
node dist/index.js register "My Device Name"
# List sessions
node dist/index.js sessions
# Create session
node dist/index.js spawn
# Send prompt to session
node dist/index.js send <session-id> "Your prompt here"
# Monitor session
node dist/index.js monitor <session-id>
# List devices
node dist/index.js devicesDaemon Mode (Background Service)
To run the CLI as a background daemon that stays connected:
# Run daemon manually (for testing)
node dist/index.js daemon
# Or install as pm2 process (ttc install, or manually):
./install-service.sh
# After installation:
pm2 status # list processes
pm2 logs ttc_cli # view logs
pm2 restart ttc_cli # restart
# To uninstall:
ttc uninstall
# or: ./install-service.sh --uninstallDaemon Behavior
The daemon:
- Connects to the backend and stays connected
- Registers the device on connection
- Updates
lastSeenevery 30 seconds (heartbeat) - Automatically reconnects on disconnect
- Handles graceful shutdown (SIGTERM/SIGINT)
Configuration
Configuration is stored in ~/.claude-voice/config.json:
{
"apiUrl": "https://api.talk-to-code.com"
}Device ID is stored in ~/.talk-to-code/device-id.json and is generated automatically on first run.
Memory Feature
This CLI includes persistent memory using local embeddings:
- Model:
Xenova/bge-small-en-v1.5(MTEB score 68.1, 384 dimensions) - 100% Local: Runs in-process, no API keys needed
- Per-Project: Each project stores memories in
.claude-memory/memories.jsonl - First Run: Downloads ~130MB model (cached in
~/.cache/huggingface/)
Disable Memory
export ENABLE_MEMORY=falseClear Project Memory
rm -rf .claude-memory/memories.jsonl