What inspired you?
I've been working with AI coding agents for a while, but I always felt they were either too expensive, too locked-in, or too opaque.
Most agents are cloud-first — your data leaves your machine, you pay per token, and you have no idea what the agent is actually doing. I wanted a different approach: a terminal-first agent that runs locally, respects your privacy, and gives you full control over every action.
That's why I built Terminuz.
What it does
Terminuz is an open-source AI coding agent that runs in your terminal.
It understands your codebase, executes tools safely, and works with multiple LLM providers — Anthropic, OpenAI, DeepSeek, Groq, Ollama, OpenRouter, and MCP.
Unlike cloud-first agents, Terminuz operates with a permission model you control. Every read, write, shell, or dangerous operation has a configurable approval policy.
How I built it
Terminuz is built on a modern stack:
- TypeScript for type safety and maintainability
- Ink (React for terminals) for the TUI
- SQLite for persistent state and memory
- GitHub Actions for CI/CD and releases
The architecture is split into four core packages: cli (commands and TUI), core (agent runtime, providers, tools), shared (schemas and contracts), and the publishable CLI entrypoint.
I used AI-assisted development heavily — but not to generate code blindly. I used it to accelerate iteration, write tests, and refactor safely. The real engineering came from designing the permission model, the provider router, and the tool execution bridge.
Challenges I faced
The biggest challenge was building a permission model that is both secure and usable. Agents need to be powerful enough to be useful, but they also need to respect boundaries — you don't want an agent accidentally deleting files or running dangerous commands.
I solved it by implementing a granular permission system with three levels:
ask— requires explicit approvalallow— runs automaticallydeny— never executes
Every sensitive operation goes through an approval flow, with diff previews and audit logs. The user stays in control.
Another challenge was designing a multi-provider LLM runtime that handles different APIs, streaming responses, and fallback logic without making the user configure everything manually.
What I learned
Building Terminuz taught me a lot about agent architectures, security models, and how to design for autonomy without sacrificing control.
I also learned that developers don't want AI to replace them — they want AI to handle the boring parts while they stay in control of the important decisions.
Terminuz is my contribution to that vision.
Built with
- Node.js
- TypeScript
- Ink
- SQLite
- GitHub Actions
- OpenAI API / DeepSeek / OpenRouter / MCP
Built With
- agent
- ai-agent
- anthropic
- automation
- cli
- coding-agent
- deepseek
- developer-productivity
- developer-tools
- github-actions
- ink
- llm
- local-first
- mcp
- node.js
- open-source
- openai
- openrouter
- privacy
- provider
- security
- sqlite
- terminal
- tui
- typescript
Log in or sign up for Devpost to join the conversation.