Conduct voice-driven pair programming sessions with AI in Claude Code, maintaining persistent memory by injecting file contexts before reads, summarizing on session stop, and observing tool interactions via a Node/Bun worker.
attend is all you needSpeak your thoughts while navigating code, and attend uses a local
transcription model to send your words to your coding agent, interleaved with
what you were manipulating on-screen as you spoke.
I've found that pair programming using attend's voice narration is a rather
different experience from typing my thoughts to a coding agent. There's
something very specific about saying what I mean out loud that forces me to
slow down and consider more deeply.
I invite you to see if you feel the same way.
Press a hotkey, say out loud, "this function should take a Duration instead of a raw u64" while your cursor is on the relevant code, and press the hotkey again.
Your coding agent receives your words interleaved with edits and selections in your text editor (Zed), selections from within your browser (Firefox or Chrome), clipboard contents (text and images), and shell commands (Fish or Zsh), and even selections from arbitrary other apps (macOS only) — all in chronological order, so it can understand your words and actions in context with one another while you're narrating.
See example narration for what the agent receives.
You'll need Rust to install attend:
cargo install --locked --git https://github.com/oxidecomputer/attend attend
The easiest way to integrate with Claude Code is to install the attend
plugin:
/plugin marketplace add oxidecomputer/attend
/plugin install attend@attend
Then write the required permissions (plugins cannot set these):
attend install --agent claude
When the plugin is detected, this writes only the permission grants that the plugin needs. Without the plugin, it performs a full manual installation of hooks and skills.
Install editor, browser, and shell integrations:
attend install
This detects which integrations are available on your system (editors, browsers, shells) and prompts you to confirm each one. It also provides the option of pre-downloading a local transcription model, so that it's ready on first-run (it will be downloaded anyhow when you first narrate).
Then follow your first narration session to start narrating with your coding agent.
Start here:
How-to guides:
Reference:
attend
subcommandUnderstanding attend:
Extending and contributing:
Matches all tools
Hooks run on every tool call, not just specific ones
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub oxidecomputer/attend --plugin attendSkills for working with Oxide codebases
Feature development with code-architect/explorer/reviewer agents, CLAUDE.md audit and session learnings, and Agent Skills creation with eval benchmarking from Anthropic.
Production-grade engineering skills for AI coding agents — covering the full software development lifecycle from spec to ship.
Permanent coding companion for Claude Code — survives any update. MCP-based terminal pet with ASCII art, stats, reactions, and personality.
Claude harness - A harness for solo developers (Vibecoders) to handle full-cycle contract development.
Complete Claude Code configs for mobile development - Android, iOS, and Kotlin Multiplatform