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.
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…
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 ~/…
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…
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…
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…
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…
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…