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 approval
  • allow — runs automatically
  • deny — 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
Share this project:

Updates