An AI coding agent that lives in your terminal.

Open-source, multi-provider, and fully under your control — works with Claude, GPT-4, and Gemini.

wardayacode
❯ Fix the authentication bug in src/auth.ts
● read_file(src/auth.ts)
✓ Found issue: token expiry check uses wrong comparison
● edit_file(src/auth.ts)
✓ Fixed: changed > to < in token expiry check on line 42
The bug was on line 42 — the expiry comparison was inverted. Fixed.

Install

Up and running in one command. Requires Node.js 20+ · short alias wdc.

Install globally
npm install -g wardayacode
Or run once with npx
npx wardayacode

Everything you need, nothing you don't

Multi-provider

Claude, GPT-4, and Gemini out of the box. Switch models with a flag — no lock-in.

Permission system

Five modes — default, plan, acceptEdits, auto, internal — control exactly what runs automatically.

Slash commands

A built-in command palette: /undo, /diff, /checkpoint, /mode, /compact, and more. Type / to open it.

8 built-in tools

read_file, write_file, edit_file, bash, git, glob, grep, list_files — with dangerous ops permanently blocked.

Session management

Conversations save as JSONL in your project. Resume any session across terminal restarts.

Undo & checkpoints

Revert the last edit with /undo, or git-stash checkpoints with /checkpoint and /rollback.

Open source · MIT licensed

GitHub stars License: MIT

See it in action

A real session where wardayacode refactors a codebase — reading, editing, testing, and committing without leaving the terminal.

❯ Refactor the API handler to use async/await in src/api/users.ts
● read_file(src/api/users.ts)
Reading current implementation... Found a mix of .then() and callbacks.
✎ Planning refactor for 3 endpoint functions...
● edit_file(src/api/users.ts)
✓ getUsers(): converted .then() → async/await
✓ getUser(id): converted .then() → async/await
✓ createUser(data): converted callbacks → async/await, added try/catch
● bash node src/api/users.test.js
✓ Tests: 12 passed, 0 failed
✎ Committing changes...
✓ Commit: refactor(api): convert users handler to async/await
All three endpoint functions are now async. Error handling is consistent and the test suite is green.

Your code, your keys, your rules

Local-first

Sessions, config, and API keys live on your machine — in your project and home directory, never on our servers.

No telemetry

wardayacode collects no analytics and phones nothing home. There is no account to create.

You choose the provider

Your code is sent only to the LLM provider you configure — Anthropic, OpenAI, or Google. You pick who sees it.

Guardrails built in

Destructive operations like force-push, rm -rf, and dd are permanently blocked, in every permission mode.

FAQ

Which models does it support?

Claude (Anthropic), GPT-4 (OpenAI), and Gemini (Google). Switch with --model and --provider, or per-session with /model.

Is it free and open source?

Yes — wardayacode is MIT licensed. You only pay your chosen provider for API usage.

Where are my API keys stored?

Locally — as environment variables, in a per-project .wardayacode.json, or in your user config. They never leave your machine except in requests to your provider.

Does it send my code anywhere?

Only to the LLM provider you configure, as part of each request. There is no other telemetry and no wardayacode server.

How do I undo a change I did not want?

Use /undo to revert the last file edit, /diff to review uncommitted changes, or /rollback to restore the last git checkpoint.

What do I need to run it?

Node.js 20 or newer. Install with npm install -g wardayacode, then run wardayacode (or the wdc alias).