TalkitoBLOCK
TalkiTo lets developers interact with AI systems through speech across multiple channels (terminal, API, phone). It can be used as both a command-line tool and a Python library.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://github.com/robdmac/talkito/stargazers) [](https://github.com/robdmac/talkito/network/members) [](https://github.com/robdmac/talkito/blob/main/LICENSE) [](https://discord.gg/WbP58Tym)
TalkiTo lets developers talk, slack and whatsapp with Claude Code and OpenAI Codex. It can be used as a command-line tool, a web extension, and as a Python library.
🚀 Quick Install
Option 1: One-liner Install Script (Recommended)
curl -sSL https://raw.githubusercontent.com/robdmac/talkito/main/install.sh | bash
Option 2: PyPI
pip install talkito
Then just run:
talkito claude
Install for End Users
From Source (Stable)
# Clone the repository git clone https://github.com/robdmac/talkito.git cd talkito # Create and activate virtual environment (recommended) python3 -m venv venv source venv/bin/activate # Install system dependencies (macOS) brew install portaudio # Install package (normal install - gets updates via git pull) pip install . # Run this in a directory you want to use claude with talkito claude
Install for Developers
Editable Install (Development)
# Clone the repository git clone https://github.com/robdmac/talkito.git cd talkito # Create and activate virtual environment (recommended) python3 -m venv venv source venv/bin/activate # Install system dependencies (macOS) brew install portaudio # Install in development mode (editable install) pip install -e . # Run this in a directory you want to use claude with talkito claude
or for the web extension run as
talkito --m
304e05cedea5OBSERVED · 2026-10-08Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add vite-react-typescript-starter --env ASSEMBLYAI_API_KEY=${ASSEMBLYAI_API_KEY} --env AZURE_SPEECH_KEY=${AZURE_SPEECH_KEY} --env BING_KEY=${BING_KEY} --env DEEPGRAM_API_KEY=${DEEPGRAM_API_KEY} -- npx -y [email protected]{
"mcpServers": {
"vite-react-typescript-starter": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"ASSEMBLYAI_API_KEY": "${ASSEMBLYAI_API_KEY}",
"AZURE_SPEECH_KEY": "${AZURE_SPEECH_KEY}",
"BING_KEY": "${BING_KEY}",
"DEEPGRAM_API_KEY": "${DEEPGRAM_API_KEY}"
}
}
}
}Exposed tools (36)
21 read · 15 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
change_asr | read | |
change_tts | read | |
configure_asr | read | |
configure_communication | read | |
configure_tts | read | |
cycle_tts_voice | read | |
disable_asr | write | |
disable_tts | write | |
enable_asr | write | |
enable_tts | write | |
get_communication_status | read | |
get_dictated_text | read | |
get_messages | read | |
get_slack_mode_status | read | |
get_speech_status | read | |
get_talkito_status | read | |
get_talkito_version | read | Get the current version of talkito |
get_whatsapp_mode_status | read | |
list_tts_voices | read | |
randomize_tts_voice | read | |
send_slack | write | |
send_whatsapp | write | |
set_asr_mode | write | |
set_tts_mode | write | Set TTS mode |
skip_current_speech | read | |
speak_text | read | |
start_notification_stream | write | |
start_slack_mode | write | |
start_whatsapp_mode | write | |
stop_all_speech | write | |
stop_slack_mode | write | |
stop_voice_input | write | |
stop_whatsapp_mode | write | |
turn_off | read | |
turn_on | read | |
wait_for_speech_completion | read |
Trust audit
BLOCKgrade F · trust 54/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (4 observation(s))
- Network
- declared (9 observation(s))
- Shell
- declared (1 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (18)
# SLACK_BOT_TOKEN=xoxb-your-slack-bot-token
# SLACK_BOT_TOKEN=xoxb-your-slack-bot-token
aws_note = "Requires AWS credentials (env vars, ~/.aws/credentials, or IAM role)"
polly_note = "Requires AWS credentials (env vars, ~/.aws/credentials, or IAM role)"
importlib.import_module(module_name.split('.')[0])curl_cmd = f'curl -s -X POST http://127.0.0.1:{webhook_port}/hook -H \'Content-Type: application/json\' -d \'{{\"hook_type\": \"{hook_type}\", \"timestamp\": \"\'$(date -u +%Y-%m-%dT%H:%M:%SZ)\'\"}}\'def init_claude(address="http://127.0.0.1", port=8001):
print("Install Claude CLI and run: claude mcp add --transport http talkito http://127.0.0.1:8000/mcp")def init_codex(transport="streamable-http", address="http://127.0.0.1", port=8001):
f'http://127.0.0.1:{check_port}/mcp',.gitmodules
return hashlib.md5(f"{time.time()}".encode()).hexdigest()[:8]return hashlib.md5(content.encode()).hexdigest()
serve
lucide-react, react, react-dom, @eslint/js, @types/react, @types/react-dom, @vitejs/plugin-react, autoprefixer
- Set webhook URL in Twilio Console to: `https://YOUR-TOKEN.share.zrok.io/whatsapp`
- `ZROK_RESERVED_TOKEN`: Your zrok reserved share token for webhook tunneling
curl -sSL https://raw.githubusercontent.com/robdmac/talkito/main/install.sh | bash
Gates applied: critical_finding, no_behavioural_pass.
304e05cedea5full audit observations/trust-audit/mcp-server/robdmac__talkito.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | 304e05cedea5 | BLOCK | F | 54 | first audit |
Questions
What is the Talkito MCP server?
TalkiTo lets developers interact with AI systems through speech across multiple channels (terminal, API, phone). It can be used as both a command-line tool and a Python library.
What tools does Talkito expose?
36 in total: 21 read-only, 15 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is Talkito safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (54/100) and found 4 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What credentials does Talkito need?
It reads ASSEMBLYAI_API_KEY, AZURE_SPEECH_KEY, BING_KEY, DEEPGRAM_API_KEY, ELEVENLABS_API_KEY, GOOGLE_APPLICATION_CREDENTIALS, HOUNDIFY_CLIENT_KEY, OPENAI_API_KEY, SLACK_APP_TOKEN, SLACK_BOT_TOKEN, TWILIO_AUTH_TOKEN and ZROK_RESERVED_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does Talkito run?
It speaks sse, stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as vite-react-typescript-starter at 0.0.0.
How current is this page?
The grade is for one exact copy of the source (304e05cedea5), read on 2026-10-08. The repository is watched and re-audited when it changes.