In development

KalVoice: Speak your prompts with KalVoice.

Hold F8 to talk to KalVoice. Release, and your words land in the focused agent — or, if you said a command, KalCode does it.

Hold F8. Speak. Release.

One key, one gesture. KalVoice decides from context what you meant.

F8 F8 is the default. Choose Caps Lock or another single key instead, or Fn on keyboards that pass it to apps.

Into a focused input

Your words are typed there.

  • A Claude Code, Codex or Gemini CLI thread, a terminal, a search box.
  • The target is fixed when you press the key, so switching windows cannot misdirect your words.
  • Dictation is unlimited on every plan, and never counted.

“also cover the 429 response in the test”

A command

KalCode does it.

  • Structured commands run locally; more complex interpretation requires the on-device runtime.
  • Workspace controls run locally; coding tasks keep provider-native permissions.
  • Each command is one KalVoice Request.

“Open four Codex threads.”

Hear it land in the pane.

The KalVoice panel, the waveform and a prompt arriving in the focused agent.

Product preview · sample data KalVoice is in development · no microphone is used here

Next take: a prompt, “also cover the 429 response in the signup test”, typed into the focused pane.

Hold F8 to talk to KalVoice. Press and hold, speak, release. A quick press plays the whole take.

KalCodeatlas-api

Mission Build, review, test and verify the signup limit Planned 3 checks passed

  1. Build Claude Code · Cover 429 in the e2e suite
  2. Review Codex · Review the signup limit
  3. Test PowerShell 7 · pnpm test && pnpm test:e2e
  4. Verify KalCode · 3 checks passed
Running command Auto

Claude Code 2.1

claude-sonnet-4-5 · Personal account

~/code/atlas-api

> fix the flaky checkout test, it fails about 1 in 10 runs on CI

Read(tests/checkout.spec.ts)

Read 84 lines

Read(src/checkout/reserve.ts)

Read 112 lines

The test reads stock before reserve() has written it, so the assertion races the update. I’ll await the decrement inside a transaction.

Update(src/checkout/reserve.ts)

Updated src/checkout/reserve.ts with 3 additions and 1 removal

40 const item = await findItem(sku);
41 - db.stock.decrement(item.sku, qty);
41 + await db.transaction(async (tx) => {
42 + await tx.stock.decrement(item.sku, qty);
43 + });

reserve() now resolves after the write. Running the checkout suite 20 times to be sure.

Bash(pnpm test checkout --repeat 20)

Running… 13 of 20 passed

Testing… (esc to interrupt · 48s)

Try “run the e2e suite”, or type / for commands
⏵⏵ edits run without asking · shift+tab to change ? for shortcuts
Reviewing Approve

Codex CLI (v0.155)

model: gpt-5-codex high

directory: ~/code/atlas-api

approval: on-request

validate the signup payload and return 422 on bad input

Explored

Read src/routes/signup.ts, src/lib/errors.ts

Edited src/routes/signup.ts (+12 -3)

3 + import { z } from "zod";
4 + const SignupBody = z.object({
5 + email: z.string().email(),
6 + password: z.string().min(12),
7 + });
⋮
41 - const { email, password } = await c.req.json();
41 + const parsed = SignupBody.safeParse(await c.req.json());
42 + if (!parsed.success) return c.json(fieldErrors(parsed.error), 422);

zod isn’t a dependency yet, so the import fails. Asking to install it.

Ran pnpm add zod

+ zod 4.1.0

Done in 2.1s

Ran pnpm test -- signup

PASS tests/signup.spec.ts (6 tests)

─ Worked for 1m 08s ─

Bad input now gets a 422 with a list of fields. All 6 signup tests pass.

Reviewing (4s • esc to interrupt)

Ask Codex to change, explain or test something
⏎ send · ⇧⏎ newline · ⌃T transcript · ⌃C quit 96% context left
KALVOICE Ready Hold F8 to talk to KalVoice

Typed into Claude Code

Unlimited dictation. Counted commands.

Dictation is free on every plan. Commands count as KalVoice Requests — one per top-level request, however many steps it takes.

Compare plans
  • Free 75 a month
  • Pro 1,500 a month
  • MAX 5,000 a month
  • MAX 2X 10,000 a month
  • Dictation Unlimited on every plan

Private by default.

KalVoice works inside your permission model: it cannot raise its own authority, approve its own requests, or turn on Bypass.

  • on-device

    Audio never leaves your computer.

    Speech is captured into memory, transcribed by a model running locally, then discarded. Nothing is stored or uploaded.

  • no transcripts in logs

    The log records that you spoke, not what.

    KalCode's event log notes that a dictation or request happened. Your words are not written to it.

  • your provider

    Reasoning uses an account you connected.

    Commands that need a model use the provider you choose. Structured commands run without any model at all.

Read the KalVoice reference

Be first to run KalCode.

The preview is out for Windows. Your providers, your projects, one workspace.

Windows · Preview 0.1.1 · 4.4 MB