{"id":37523682,"url":"https://github.com/tilework-tech/nori-cli","last_synced_at":"2026-06-08T04:01:16.731Z","repository":{"id":329987585,"uuid":"1087283986","full_name":"tilework-tech/nori-cli","owner":"tilework-tech","description":"A simple CLI for working with any agent","archived":false,"fork":false,"pushed_at":"2026-06-05T21:00:40.000Z","size":52156,"stargazers_count":131,"open_issues_count":2,"forks_count":10,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-06-05T21:10:07.255Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tilework-tech.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-10-31T16:52:34.000Z","updated_at":"2026-06-05T20:21:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"83a9f56e-a384-4aab-9c4f-6a257b00867d","html_url":"https://github.com/tilework-tech/nori-cli","commit_stats":null,"previous_names":["tilework-tech/nori-cli"],"tags_count":203,"template":false,"template_full_name":null,"purl":"pkg:github/tilework-tech/nori-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tilework-tech%2Fnori-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tilework-tech%2Fnori-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tilework-tech%2Fnori-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tilework-tech%2Fnori-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tilework-tech","download_url":"https://codeload.github.com/tilework-tech/nori-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tilework-tech%2Fnori-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34047266,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-16T08:20:33.812Z","updated_at":"2026-06-08T04:01:16.722Z","avatar_url":"https://github.com/tilework-tech.png","language":"Rust","funding_links":[],"categories":["Terminal-native coding agents"],"sub_categories":["Open Source"],"readme":"# Nori CLI\n\n[![CI](https://github.com/tilework-tech/nori-cli/actions/workflows/rust-ci.yml/badge.svg?branch=main)](https://github.com/tilework-tech/nori-cli/actions/workflows/rust-ci.yml)\n[![npm version](https://img.shields.io/npm/v/nori-ai-cli)](https://www.npmjs.com/package/nori-ai-cli)\n[![License](https://img.shields.io/npm/l/nori-ai-cli)](https://github.com/tilework-tech/nori-cli/blob/main/LICENSE)\n[![npm downloads](https://img.shields.io/npm/dm/nori-ai-cli)](https://www.npmjs.com/package/nori-ai-cli)\n\n**One CLI, multiple AI providers.** Nori is a local AI coding agent that lets you switch between Claude, Codex, Gemini, or any ACP compatible agent. All from the same native CLI.\n\n![Nori TUI Screenshot](https://raw.githubusercontent.com/tilework-tech/nori-cli/refs/heads/main/assets/nori-cli_2026-01-13.png)\n\n## Install\n\n```bash\nnpm install -g nori-ai-cli\n```\n\nOr download binaries from [GitHub Releases](https://github.com/tilework-tech/nori-cli/releases/latest).\n\n## Quick Start\n\n```bash\nnori\n```\n\nThat's it. The agent you choose will rely on existing auth if you have previously been using Claude Code, Codex, or Gemini on this system (and if not, login instructions are below). Nori launches an interactive TUI where you can chat, run commands, and let the AI assist with your codebase.\n\n## Providers\n\nEach provider you plan to use needs to be authenticated separately before use. Then switch between AI providers with the `/agent` command.\n\nCurrently each agent relies on an existing authenticated session on your system. If you're coming in from another CLI tool, great!\nYou should be good to go. If not, first follow the authentication for your desired provider:\n\n| Provider | Authentication                                                                                                                                   |\n| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |\n| Claude   | Run `npx @anthropic-ai/claude-code` in your terminal, then when the Claude CLI opens, type `/login` there.                                       |\n| Gemini   | Run `npx @google/gemini-cli` in your terminal, then when the Gemini CLI opens, type `/auth` there.                                               |\n| OpenAI   | In Nori, use `/agent` to switch to Codex, then run `/login` inside the Nori interface. Nori will prompt you to install OpenAI via npm if needed. |\n\n## Bring Your Own Agent\n\nHave your own ACP agent? Add it to Nori CLI! Any agent that speaks [Agent Client Protocol](https://github.com/agentclientprotocol/agent-client-protocol) over stdin/stdout can be registered in `~/.nori/cli/config.toml` and used alongside the built-in providers.\n\nAdd one or more `[[agents]]` entries to your config:\n\n```toml\n[[agents]]\nname = \"Mistral Vibe\"\nslug = \"vibe-acp\"\n\n[agents.distribution.local]\ncommand = \"vibe-acp\"\n\n[[agents]]\nname = \"ElizACP\"\nslug = \"elizacp\"\n\n[agents.distribution.local]\ncommand = \"elizacp\"\nargs = [\"acp\"]\n```\n\nThen switch to your agent with `/agent` inside Nori.\n\n**Example agents to try:**\n\n| Agent                                                                     | Install                                                 | Notes                                                                              |\n| ------------------------------------------------------------------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------- |\n| [Mistral Vibe](https://docs.mistral.ai/mistral-vibe/introduction/install) | `curl -LsSf https://mistral.ai/vibe/install.sh \\| bash` | Installs both `vibe` and `vibe-acp`. Run `vibe --setup` to configure your API key. |\n| [ElizACP](https://github.com/agentclientprotocol/symposium-acp)           | `cargo install --locked elizacp`                        | Minimal Eliza chatbot, useful for testing.                                         |\n| [Kimi](https://github.com/nicepkg/kimi-cli)                               | No install needed — uses `uvx`                          | First-time auth: run `uvx --python 3.13 kimi-cli`, then `/login`.                  |\n\nWant your AI agent to configure this automatically? Point it at the raw skill file: https://github.com/tilework-tech/nori-cli/blob/main/.claude/skills/registering-custom-acp-agent/SKILL.md\n\n## Features\n\n- **Multi-provider**: Use Claude Code, Codex, Gemini, or your own ACP-compatible agent from the same CLI.\n- **Fast native interface**: Incremental Ratatui rendering, double-buffered scrollback history, and a Rust core keep long sessions responsive.\n- **Solid ACP client support**: Nori supports ACP session listing, loading, resume, context and usage metadata.\n- **Agent Integrations**: Your agents keep their configurations, whether that's slash commands, skills, and MCP server forwarding.\n- **Session continuity**: Pick up prior work with resume, and rewind agent changes with escape-to-undo.\n- **Project context**: Reference files with `@`, flip between an editor or a file picker, and keep useful context visible without leaving the terminal.\n\nSee the [ACP roadmap](ROADMAP.md) for what is done, what is in progress, and what is planned next.\n\n## Attribution\n\nNori CLI is built on the great work within [OpenAI Codex CLI](https://github.com/openai/codex).\n\nNori CLI relies on the great contributions within the [ACP project](https://github.com/agentclientprotocol/agent-client-protocol), from Zed Editor, JetBrains, and others.\n\n## License\n\n[Apache-2.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftilework-tech%2Fnori-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftilework-tech%2Fnori-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftilework-tech%2Fnori-cli/lists"}