Codync
免费开源的 1:1 Grok Bot 与 Muse 替代方案。可在 iPhone、Mac 或 Linux 桌面上将 Claude 代码、Codex、Cursor 以及 40 多个编码代理作为持久机器人使用。支持群组聊天、线程、应用。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证A voice in front of your Claude Code sessions: talk, it answers, it hands work to your sessions.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗You talk. It answers in a sentence or two, or hands the work to one of your coding-agent sessions and tells you when that session is done, asks something, or needs a permission. It is not a reading bot: a separate small brain talks with you, decides whether you are discussing or asking for work, and narrates what your sessions report back in plain words.
uv tool install git+https://github.com/ActurialCapital/claudio
cd ~/code/myproject && claudio
The first run is a short setup: your Deepgram key, the session that is your orchestrator, a voice, the brain's model and effort. It installs the Claude Code hooks for you. claudio doctor checks everything afterwards. Your sessions live in cmux or bb: see Where it runs for the one step that depends on it.
Full documentation: claudio-vert.vercel.app/docs, from setup to every setting and what to do when something goes wrong.
flowchart LR
you(["🗣️ you"]) -->|speech| ears["👂 ears"]
ears -->|text| brain["🧠 brain"]
brain -->|text| mouth["👄 mouth"]
mouth -->|speech| you
brain <-->|"tasks · answers · questions"| s["💻 your sessions"]
The core above is the same everywhere. Around it you make two choices (platforms):
backend setting: bb, where a session is a bb thread running Claude Code, Codex, Cursor or another agent, or cmux, the default, where a session is a Claude Code session in a cmux pane.claudio from, or bb's panel, a claudio tab in every bb thread's right panel. Other front ends, such as an editor extension, can connect to the same ~/.config/claudio/view.sock; nothing in claudio is tied to one.| platform | what it is | the one extra step | docs |
|---|---|---|---|
| bb | sessions are bb threads; the panel is an optional front end | claudio set backend bb, then claudio setup; for the panel, cd plugins/bb && npm install && bb plugin install ., then reload bb's window (⌘R) | bb |
| cmux | sessions are cmux panes; claudio runs in a pane of its own | none: cmux is the default | cmux |
Run one claudio at a time: two, whatever their front ends, would fight over the mic. How the bb plugin starts claudio (its command setting) and how to work on it: plugins/bb.
| "what's the sequencer doing?" | reads that session, sums it up |
| "rebase 44 and run the tests" | asks, then hands it to the orchestrator |
| "open a session called Core" | a new session: a cmux workspace running claude, or a bb thread |
| "use Sonnet" · "the orchestrator is Core now" | changes a setting, kept for next time |
| "slash clear" · "slash status" · "slash help" | the slash commands, spoken |
| "slash quit" · "slash exit" | says bye and quits |
| "slash restart" · "restart yourself" | starts over, same conversation; new code restarts it on its own, once nothing is said |
| "slash voice a British woman" · "deep male" · "calm" | the one voice that fits, or a table of those that do: accent, age, gender, how it sounds; it sets the voice of the mouth that speaks, Aura, ElevenLabs or Kokoro |
| "slash style brief" · "caveman" · "plain" | how it talks: one sentence, caveman, or plain |
| "slash mute" · "slash unmute" | hears nothing until you unmute |
| "slash code colors off" | code blocks as plain text; "on" brings colours back |
| "slash name Roger" | it answers to Roger and calls itself that |
| "slash address me on" · "off" | only turns that start with its name count, for a room with other people |
| "slash barge in off" · "slash push to talk on" · "slash eot 0.8" | any setting, said as it reads; alone, one that is on or off flips |
| "what did we do today?" | reads today's transcript and tells you |
| "write a note: call Michael" | asks Desktop or Documents, then adds it to notes.md there, dated |
| "search what Aura-2 costs" | searches the web, says the answer, shows the links |
| "open issue 727 in the browser" | opens it, or a Google search, and says only "Opening it." |
| "yes", "always" or "no" (or press 1, 2, 3), when it asks to allow a command | yes runs it once; always also adds it to settings.json; the reply goes on |
| "yes", "always" or "no" (or 1, 2, 3), when a session asks for permission | answers the session's prompt with that option; no declines it; it never picks a mode switch |
Enter cuts a reply · Ctrl+C or /quit quits · typed /mute, /effort low, /clear work too
› rebase 44 on main and run the tests
◆ Sending that to Sequencer.
▸ Sequencer done · for "rebase 44 on main and run the tests"
◆ Rebased, tests pass, nothing to fix.
▃ listening · 1.1 s to first word · Sequencer idle
› you, ◆ claudio, ▸ a session reporting back with the request it was for, → what the brain is reading or running, ⚙ a setting you changed, · a note, ! a warning. Room noise and "mm-hm"s show dim.■ while muted, a mic level, then listening, thinking, speaking, paused, muted, how long the last reply took to its first word, and what the orchestrator is up to, glanced at every few seconds.code for key words.~/.config/claudio/transcripts/YYYY-MM-DD.md.learned.md for every future conversation.PERSONA.md and the brain restarts with it, memory kept; claudio's own rules come from the package, so updates still reach you.flowchart LR
mic["🎙️ mic"] --> aec["Apple voice-processing unit<br/><sub>echo cancellation: talk over it on speakers</sub>"]
aec --> flux["Deepgram Flux<br/><sub>streaming STT · eager end of turn</sub>"]
flux --> cp["Claude Agent SDK<br/><sub>one claude process · remembers</sub>"]
cp --> aura["Deepgram Aura<br/><sub>streaming TTS · per sentence</sub>"]
aura --> aec
hooks["🪝 Stop · Notification · AskUserQuestion"] -->|unix socket| cp
cp -->|"tasks, through the sessions' platform"| sessions["💻 sessions<br/><sub>bb threads · cmux panes</sub>"]
~/.config/claudio/brain.log and helper.log.claudio set says why.~/.config/claudio/config.json, written by setup and by voice; the keys live apart in secrets.json (mode 600), which the brain is not allowed to read. PERSONA.md beside it holds your additions to the persona; write freely. The brain reads files, git, gh issues and pull requests, and runs a few commands of your sessions' platform (bb or cmux), asking you before each send to a session; for anything more, answer when claudio asks (yes, always or no; the command waits), or add permission rules to settings.json, such as {"permissions": {"allow": ["Bash(gh:*)"]}}. It gets none of your Claude Code MCP servers; list any it should have in mcp.json. Saving either file restarts the brain with it. To drop every check for one run, start claudio --dangerously-skip-permissions, or say "slash permissions skip" and then yes.
The persona carries rules that keep the voice human, adapted for speech from humanizer's list of AI-writing tells: plain words, "is" not "serves as", no forced triads, no inflated significance, at most one hedge, no chatbot wrapper, stop on the last fact. The style setting, plain, brief or caveman, switchable mid-session by voice, follows claudish-to-english's idea of presets you can flip without touching the prompt.
| key | default | |
|---|---|---|
orchestrator | the session that gets tasks by default: a bb thread's title or a cmux workspace's | |
model · effort | default · low | default, sonnet, opus, haiku · low, medium, high, through your Claude Code login |
voice | aura-2-orion-en | any Deepgram Aura-2 voice; by voice, a name or what it sounds like |
style | plain | plain, brief (one sentence), caveman |
ears | flux-general-en | flux-general-multi for other languages |
eager_eot · eot · eot_timeout_ms | 0.3 · 0.7 · 1500 | end-of-turn tuning |
barge_in | true | talking over it pauses it |
push_to_talk | false | the mic stays closed until you press Enter, for one turn |
address_me | false | only turns that start with its name count, for a room with other people; the name alone opens the next turn |
memory | true | resume the last conversation, up to a week old |
narrate | handed-off | which sessions' finishes to narrate: handed-off, all, none |
code_colors | true | highlight code blocks in colour; off shows them as plain text |
name | claudio | what it answers to and calls itself, one to three words; the ears listen for it |
layout |
claudio doctor checks everything and runs one typed turn · claudio forget resets memory · claudio learn <rule> keeps a correction for good (the brain runs it when you correct it, once you say yes) · claudio unlearn <words> drops the one learned rule with those words · claudio set <key> <value> changes one setting · CLAUDIO_<KEY>=… overrides one run
A .claudio.json in a project root overrides any of these for that project, {"orchestrator": "Core"} being the usual one.
| "forget the rule about seven" | drops that learned rule |
| talk over it | pauses; a real turn cuts it, an "mm-hm" lets it go on |
| type a line | a turn, for when you can't talk; what you type shows on the state line |
inline |
or split: your turns on the right, claudio's on the left; plain lines under 50 columns |
backend | cmux | where your sessions live: cmux (its panes) or bb (its threads); bb's panel always runs claudio with bb; see platforms |
mouth | deepgram | or elevenlabs: put the key in secrets.json as elevenlabs_api_key or export ELEVENLABS_API_KEY; elevenlabs_voice is a voice id; or local, Kokoro on this Mac with no key: brew install espeak-ng, install claudio[local], pick local_voice, local_speed, and local_model (compressed, the default and about twice as fast, or full) |