Why a terminal TUI
A coding agent should live close to the files and commands it changes
A terminal AI coding agent can operate in the same environment as the repository, compiler, tests, version-control tools, language server, and deployment commands. That proximity is useful, but only when the interface makes the agent's actions easier to inspect rather than turning the terminal into an opaque stream of generated commands.
UIntellAgent uses a full-screen Ratatui interface instead of treating chat as the entire product. The TUI divides the work into persistent surfaces for conversation, memory, tools, code, and durable runs. Switching surfaces does not discard the active graph viewport, selected run, editor cursor, or tool history.
Its value is direct access to real development state. The agent still needs permissions, structured tools, diffs, diagnostics, and cancellation controls.
This model differs from "vibe coding," where generated output is accepted primarily because it looks plausible. UIntellAgent is designed so an operator can inspect every line, see each tool result, and decide which changes should reach the workspace.
Five workspaces
Separate concerns without splitting the execution state
Stream model output, inspect tool events, issue commands, start tasks, and cancel active model or tool work.
Operate the graph, browse facts like files, run safe SurrealQL, inspect analytics, and manage saved views.
Inspect the complete tool catalog and invoke a tool with structured JSON under the same permission engine.
Navigate files, edit with Vim-style controls, request language-server features, and review agent-authored diffs.
Start, cancel, inspect, and resume checkpointed autonomous work with verification, review, repair, and final reporting.
The workspace boundary is visual rather than architectural isolation. A file selected in Editor can be staged into Chat, attached to a new run, or pinned as a code location in graph memory. A file changed by a tool appears as a reviewable diff without replacing an unsaved editor buffer.
Coding workflow
Move from objective to evidence without losing the intermediate state
Open relevant files in Editor or let a run gather a bounded working set through file search, reads, symbols, and prior context.
Attach a selected range or file instead of pasting an uncontrolled repository dump into the conversation.
Use Chat, Runs, or the CLI to capture an objective and choose whether the run may write persistent graph memory.
Follow reads, writes, commands, outputs, exit codes, and quality gates as structured events rather than inferred narration.
Inspect the actual before and after text, then accept or reject independent changes while guarding against disk conflicts.
Use diagnostics and repository-specific checks. The durable run records their outcomes and reports remaining risk.
The agent can execute this flow autonomously, but the UI keeps intervention available. Ctrl+G cancels the active model, tool, or graph job. A cancelled durable run keeps its checkpoint and can be resumed later.
Inspectable editor
Code completion and review belong beside the agent
UIntellAgent includes a Vim-style text editor and file tree, so an operator can read and edit the same files the tools use. The language-server client supports completion, go-to-definition, and diagnostics, including UTF-16 position conversion required by the Language Server Protocol.
| Control | Editor behavior | Why it matters |
|---|---|---|
| Ctrl+P | Open the command palette. | Commands remain discoverable without occupying permanent screen space. |
| Ctrl+Space | Request code completion. | Uses the configured language server against the current document state. |
| Ctrl+] | Go to definition. | Moves from generated references to the actual symbol implementation. |
| Alt+C | Stage selection or file in Chat. | Keeps model context intentional and visible. |
| Alt+R | Stage a run with code context. | Connects a durable objective to the selected implementation area. |
| Alt+M | Pin a code location to Memory. | Makes a symbol or range navigable from the knowledge graph. |
| [ and ] | Move between review hunks. | Examines independent changes without accepting an entire patch blindly. |
| a and r | Accept or reject the current hunk. | Preserves human control at the exact changed region. |
Before applying a review decision, UIntellAgent checks whether the on-disk file still matches the state from which the diff was created. This prevents an old review action from silently overwriting newer work.
Context movement
Context should be routed, not copied everywhere
Large prompts are expensive and can hide the most relevant evidence. UIntellAgent instead treats context as a bounded working set that can move between the five workspaces with explicit actions.
- Editor selections can be attached to Chat or a new durable run.
- Graph facts can be queried before a task and remain independent from the transient conversation.
- Run events retain actual tool results even after the visible model context changes.
- Files written by tools appear in Editor as diffs while unsaved local edits remain protected.
- Workspace selections are restored from
~/.uintell/workspace.jsonafter restart.
This design also makes failures easier to diagnose. A provider can be offline while Memory, Tools, Editor, and historical Runs remain usable. Chat and new model-driven runs stay blocked with an actionable readiness reason instead of making the entire interface unavailable.
Run locally
Install the stable release and verify the environment first
UIntellAgent 1.0.2 supports glibc-based Linux x86-64 as its stable binary target. Download the checksummed, provenance-attested archive from GitHub Releases, or build the MIT-licensed source with Rust 1.94 or newer.
version=1.0.2
asset="uintell-agent-${version}-x86_64-unknown-linux-gnu"
base_url="https://github.com/uintell/uintellagent/releases/download/v${version}"
curl --fail --location --remote-name "${base_url}/${asset}.tar.gz"
curl --fail --location --remote-name "${base_url}/SHA256SUMS"
sha256sum --ignore-missing --check SHA256SUMS
tar -xzf "${asset}.tar.gz"
cd "$asset"
./install.sh
export PATH="$HOME/.local/bin:$PATH"
uintell-agent doctor
uintell-agent --tuiGraph memory requires the surreal binary in PATH. Sandboxed Python and Rust execution uses/usr/bin/bwrap. Configure a provider such as DeepSeek, or launch with --ollama to use a local Ollama model.
ollama serve
./target/release/uintell-agent --ollama --tui