After using Claude Code CLI extensively, I wanted to understand the architecture by building my own version. Axiom is a terminal-based coding agent with a premium TUI that supports seven LLM providers.
The project is a monorepo with five packages: a unified LLM abstraction, an agent runtime with tool execution, a terminal UI framework, a React-based premium TUI, and the interactive coding agent itself.
Building a 60fps terminal UI was harder than expected. Terminals are not designed for smooth animation. I implemented a frame-based renderer with dirty region optimization — only changed parts of the screen are redrawn. This keeps the interface responsive during streaming token-by-token responses.
Vim mode was fun to implement. Normal mode treats h, j, k, l as movement keys. Insert mode passes keystrokes through. The mode switch is instantaneous with clear visual feedback in the status bar.
Security is built into every tool execution. The bash tool checks commands against dangerous patterns before running them. Path validation prevents directory traversal. Read-only filesystem detection prevents accidental writes to system files.
Session management uses JSONL persistence with branching support. You can try multiple approaches to a problem and compare results in parallel branches.
If you want to see the full source code or read about my other projects, visit my portfolio at nishantunavane.qzz.io.
Check out the Project
View Source Code on GitHub
What features would you want in a terminal coding agent? Do you prefer CLI-based AI tools or editor-integrated ones? Let me know in the comments!
Top comments (0)