{"slug": "neurogrid-terminal-coding-agent", "title": "Neurogrid Terminal Coding Agent", "summary": "NeuroGrid released nrgrd, a terminal user interface coding agent that connects to any OpenAI-compatible inference endpoint, including NeuroGrid Marketplace deployments, vLLM, Ollama, and LM Studio. The tool runs an iterative tool-use loop that reads, searches, edits, and runs commands in a repository, gates file writes, shell commands, and MCP tools behind approval, and stores API keys in the OS credential store rather than config.json. nrgrd requires Python 3.11 or newer and runs on macOS, Linux, and Windows, installed via `uv tool install nrgrd` or pipx.", "body_md": "**nrgrd** is [NeuroGrid](https://neurogrid.cc)'s Terminal User Interface (TUI)\nfor interacting with AI models from your terminal, Claude Code style. Built\non `rich` and `prompt-toolkit`, it points at any OpenAI-compatible\ninference endpoint — including a NeuroGrid Marketplace deployment (the URL +\nAPI key of the host you rented) — to chat, manage sessions, and run MCP\ntools.\n\n- **Coding agent** — An iterative tool-use loop (`nrgrd.agent` ) that reads, searches, edits, and runs commands in your repository until the task is done.\n- **Workspace aware** — Detects git, language, package manager, and test framework at startup, so the agent doesn't waste turns rediscovering your project.\n- **Interruptible** — Ctrl+C stops generation or a running tool without corrupting the conversation, keeping whatever was produced.\n- **Named sessions** — Several conversations per project: list, resume, rename, delete.\n- **CLI mode** —`nrgrd \"fix the failing tests\"` runs headless on the same runtime, for scripts and CI.\n- **Native tools** —`list_files` ,`read_file` ,`write_file` ,`edit_file` ,`search` ,`shell` ,`git_status` ,`git_diff` .\n- **Permissions** — Read-only tools run automatically; file writes, shell commands, and MCP tools ask for approval first (or \"always allow\" for the session).\n- **Immersive TUI** — Rich-rendered panels, streaming output, and slash-command completion.\n- **Persistent sessions** — Saves conversation context and history locally.\n- **Any compatible endpoint** — Behind a`ModelProvider` abstraction: a NeuroGrid deployment, vLLM, Ollama, LM Studio, or anything else speaking the same API. All nrgrd needs is a URL, a key, and a model name.\n- **Keys kept out of the config file** — The API key lives in your OS credential store, and never appears in errors or logs.\n- **Errors you can act on** — Failures name the endpoint and model involved and say what to change.\n- **Built-in MCP** — Run and connect MCP servers straight from the terminal; their tools go through the same permission system.\n- **CLI + TUI** — Use`nrgrd` for the interactive interface or`nrgrd-mcp` for the MCP server.\n\nnrgrd runs on macOS, Linux and Windows, with Python 3.11 or newer.\n\n```\nuv tool install nrgrd\nnrgrd\n```\n\n`uv tool install` puts `nrgrd` on your PATH in its own environment, and\ndownloads a suitable Python if you don't have one. Update with\n`uv tool upgrade nrgrd`. If you prefer pipx: `pipx install nrgrd`.\n\nDon't have uv? See [installing uv](https://docs.astral.sh/uv/getting-started/installation/).\n\n```\ngit clone https://github.com/NeuroGrid-AI-exchange/neurogrid-tui.git\ncd neurogrid-tui\nuv sync\nuv run nrgrd\nnrgrd                              # interactive TUI\nnrgrd \"explain this repository\"    # one prompt, then exit\nnrgrd --model qwen3-coder \"fix the failing tests\"\nnrgrd --yes \"run the tests\"        # approve gated tools automatically (CI)\n```\n\n| Command | What it does | \n|---|---|\n| `/help` | List every command | \n| `/config` ,`/config edit` | Show or change the connection | \n| `/con` ,`/models` | Check the endpoint, list its models | \n| `/tools` ,`/permissions` | Show tools and how each is gated | \n| `/session list` ,`/session new\\|resume\\|rename\\|delete <name>` | Manage sessions | \n| `/diff` ,`/context` ,`/compact` | Review changes, context usage, summarise | \n| `/mcp` ,`/mcp edit` ,`/mcp reload` | Manage MCP servers | \n\nThe first time you run `nrgrd` it opens a **Connect to a model** screen and\nasks for the three things a NeuroGrid deployment hands you:\n\n```\nEndpoint   https://<your-deployment>/v1\nAPI key    ••••••••••••\nModel      qwen3-coder\n```\n\nIt then queries the endpoint and lets you pick from the models it actually\nserves. Run `/config edit` to change any of this later.\n\nThe endpoint and model are saved to `config.json` in the application's\nconfig directory. **The API key is not** — it goes to your operating\nsystem's credential store (Keychain, Windows Credential Manager, or a\nSecret Service keyring). On machines with no usable keyring it falls back\nto an owner-only (`0600`) file, and `/config` tells you which is in use. A\nkey left over in an older plaintext `config.json` is migrated out\nautomatically on startup.\n\nNo environment variables are involved.\n\n```\nnrgrd/\n├── src/nrgrd/\n│   ├── app.py         # TUI entry point (rendering only)\n│   ├── agent/         # Agent runtime: loop, events, permissions — no TUI dependency\n│   ├── tools/         # Tool registry: filesystem, search, shell, git, MCP adapter\n│   ├── api/           # ModelProvider abstraction + the OpenAI-compatible one\n│   ├── config/        # Configuration and credential storage\n│   ├── context/       # Application state, models, token estimates\n│   ├── screens/       # The connect / onboarding screen\n│   ├── sessions/      # Session handling and storage\n│   ├── system/        # System prompts\n│   ├── theme/         # Color palette and styles\n│   ├── widgets/       # Custom visual components\n│   └── workspace/     # Filesystem tools, project discovery, MCP client\n├── docs/              # Reports and documentation\n├── tests/             # Agent/tool/permission tests (no TUI, no live endpoint needed)\n└── pyproject.toml     # Dependencies and project metadata\n```\n\nThe agent runtime never imports Rich or Textual — the TUI drives it by\niterating `agent.run(messages)` and rendering the events it yields. That\nkeeps the agent testable headlessly and reusable from a future CLI mode.\n\nPush a version tag. CI runs the tests, builds, checks the built version matches the tag, and publishes to PyPI and GitHub Releases:\n\n```\ngit tag v0.1.0\ngit push origin v0.1.0\n```\n\nThe version comes from the tag; there is no version number to edit in\n`pyproject.toml`.\n\n```\n# Install in editable mode, including dev dependencies\nuv sync --dev\n\n# Run the test suite\nuv run pytest tests/\n\n# Run linters / checks (if applicable)\nuv run ruff check src/\nuv run mypy src/\n```\n\n[MIT](https://github.com/NeuroGrid-AI-exchange/neurogrid-tui/blob/main/LICENSE) © NeuroGrid", "url": "https://wpnews.pro/news/neurogrid-terminal-coding-agent", "canonical_source": "https://github.com/NeuroGrid-AI-exchange/neurogrid-tui", "published_at": "2026-09-16 19:13:26+00:00", "updated_at": "2026-09-16 19:42:12.907641+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "ai-products", "large-language-models"], "entities": ["NeuroGrid", "nrgrd", "NeuroGrid Marketplace", "vLLM", "Ollama", "LM Studio", "ModelProvider", "MCP"], "alternates": {"html": "https://wpnews.pro/news/neurogrid-terminal-coding-agent", "markdown": "https://wpnews.pro/news/neurogrid-terminal-coding-agent.md", "text": "https://wpnews.pro/news/neurogrid-terminal-coding-agent.txt", "jsonld": "https://wpnews.pro/news/neurogrid-terminal-coding-agent.jsonld"}}