NoirCode is a coding agent that works on a project you already have. It is not a hosted chatbot with a copy of your repository. A local server runs the session. The terminal, a minimal interactive mode, the desktop app, and the web app opened by noircode pair are clients of that server.
What you can do in a session
The default Build agent can read the codebase, search it, edit files, and run shell commands. Plan is for exploration and written plans, and it does not edit normal project files. General and Explore are subagents: General can do multi-step work, and Explore searches without editing.
You add more agents as Markdown under .noircode/agents/ or as entries in noircode.jsonc. Each agent has a prompt, an optional model, and permission rules. A reviewer can be denied edit and shell, then launched by the primary agent when you ask for a review.
Built-in tools cover files, search, patches, the shell, web fetch, web search, todos, skills, and questions. MCP servers add tools, prompts, and resources from outside the core set. noircode run sends one prompt from a script or CI job and writes the result to the terminal.
Models you select
NoirCode does not pick a model by scoring the prompt. You select one.
/connectstores a provider credential./modelssets the model for the current session.modelinnoircode.jsoncis the default for new work.- An agent or
noircode run --model provider/modelcan use a different model. - A variant such as
#highsets reasoning effort when that model defines it.
If the configured default is unavailable, NoirCode falls back to the newest available supported model. That is catalog fallback, not a chain of providers retried after a failure. A failed request can be retried; it is not rerouted to a different vendor by a complexity score.
The catalog includes many commercial providers and open models listed by models.dev. A custom provider uses the OpenAI-compatible package and a baseURL, so a private vLLM, Ollama, or company endpoint is a configuration choice. NoirCode Console and the optional NoirCode Go subscription are additional ways to reach models. Neither is required.
Control over what the agent may do
Permissions are rules of allow, deny, or ask for an action and a resource. You can allow git status and git diff, ask before other shell commands, and deny git push. If nothing matches, NoirCode asks. Build asks before reading sensitive environment files.
Policies are stricter and never prompt. A policy can deny a provider, a tool, or an integration for the whole installation. Managed configuration and a connected Console workspace outrank user and project settings. Denying provider.use for a provider removes it from the catalog even when credentials exist.
Configuration is merged from managed system settings, the user file at ~/.config/noircode/, and project files. Plugins, commands, skills, agents, MCP servers, themes, and keybindings load from those same locations.
What is local
Sessions, permissions, and tool execution live on the background server for your user. --standalone uses a private server. --server attaches to a URL you choose. noircode debug paths prints the database, config, cache, state, and log directories. Uninstall removes the shared cache and leaves session data and configuration alone.
The provider sees the prompt NoirCode assembles for that request: instructions, the conversation it includes, and the file or tool results the agent placed in context. It does not receive a standing copy of the repository. Long sessions are compacted: older turns become a summary, and a recent token window is kept verbatim. /undo restores the conversation and the files changed by a recent step.
NoirCode is the local agent runtime. The model, the tools, and the permissions are settings you make, not a service that decides them for you.