kaushal कौशल

Architecture decisions

Why kaushal is built the way it is: each significant decision as a short record (context, the decision, its consequences), in the ADR format. A decision is never edited away: a later one supersedes it. Sources: docs/adr.

ADR 0001 · Accepted

Record architecture decisions

kaushal writes into the configuration of programs it doesn't own: Claude Code, Codex, opencode, Gemini CLI. Every choice about where and how it writes has a reason that isn't visib…

ADR 0002 · Accepted

One store, written into each agent's own config

Every agent already has a way to load skills, MCP servers and global instructions, each in its own place and format: Claude Code reads ~/.claude/skills and ~/.claude.json, Codex ~/…

ADR 0003 · Accepted

Skills in the open Agent Skills format

A skill could be written for one agent (Claude Code's skills, Codex's prompts, opencode's commands), but the point of kaushal is that every agent has every skill. Claude Code, Code…

ADR 0004 · Accepted

Change only what kaushal added

The files kaushal writes are the user's: ~/.claude.json holds Claude Code's whole state, config.toml the user's Codex settings, and they may already have their own skills and MCP s…

ADR 0005 · Accepted

Sync at login and on install

Skills and tools should be in every agent in every session without the user doing anything. What changes the picture: a new agent installed, a new Claude Code account (vesha profil…

ADR 0006 · Accepted

Every Claude Code account gets the tools

vesha, Vayu's Claude Code account manager, keeps each account in its own profile (CLAUDE_CONFIG_DIR). It links the shared parts (settings, skills, instructions) from ~/.claude into…

ADR 0007 · Accepted

Standard library only

kaushal runs at login, before anything else, on machines with nothing installed but Python; its skills' scripts run inside whatever agent the user has. A dependency would need inst…