Skip to content

Commit 0dc3e3e

Browse files
CSResselnori-agent
andcommitted
Merge branch 'dev' into feature/acp-sacp-tee-tracing
Resolved conflicts by preserving both feature sets: - ACP traffic tracing (current branch via sacp-tee proxy) - Message history persistence (dev branch) Changes: - Added both trace_config and nori_home/history_persistence fields to AcpBackendConfig - Added both acp_trace_enabled and history_persistence to config types - Preserved enhanced error handling from dev in connection spawning - Added environment variable support (.envs) to subprocess spawning - Merged documentation for both features in tui/docs.md Both features are independent and now work together: - Trace config enables debugging of ACP JSON-RPC traffic - History persistence enables message history storage and navigation 🤖 Generated with [Nori](https://nori.ai) Co-Authored-By: Nori <contact@tilework.tech>
2 parents 49383b6 + 9bf1896 commit 0dc3e3e

80 files changed

Lines changed: 4992 additions & 306 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/CLAUDE.md

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -70,19 +70,19 @@ You have access to the Nori skills system. Read the full instructions at: /home/
7070

7171
## Available Skills
7272

73-
Found 17 skills:
73+
Found 23 skills:
7474
/home/clifford/Documents/source/nori/cli/.claude/skills/writing-plans/SKILL.md
7575
Name: Writing-Plans
7676
Description: Use when design is complete and you need detailed implementation tasks for engineers with zero codebase context - creates comprehensive implementation plans with exact file paths, complete code examples, and verification steps assuming engineer has minimal domain knowledge
7777
/home/clifford/Documents/source/nori/cli/.claude/skills/webapp-testing/SKILL.md
7878
Name: webapp-testing
79-
Description: Use this skill to build features or debug anything that uses a webapp frontend.
80-
/home/clifford/Documents/source/nori/cli/.claude/skills/using-skills/SKILL.md
81-
Name: Getting Started with Abilities
82-
Description: Describes how to use abilities. Read before any conversation.
79+
Description: Use this skill to build features that requires modifying a webapp frontend.
8380
/home/clifford/Documents/source/nori/cli/.claude/skills/using-screenshots/SKILL.md
8481
Name: Taking and Analyzing Screenshots
8582
Description: Use this to capture screen context.
83+
/home/clifford/Documents/source/nori/cli/.claude/skills/using-skills/SKILL.md
84+
Name: Getting Started with Abilities
85+
Description: Describes how to use abilities. Read before any conversation.
8686
/home/clifford/Documents/source/nori/cli/.claude/skills/using-git-worktrees/SKILL.md
8787
Name: Using Git Worktrees
8888
Description: Use this whenever you need to create an isolated workspace.
@@ -92,18 +92,30 @@ Found 17 skills:
9292
/home/clifford/Documents/source/nori/cli/.claude/skills/testing-anti-patterns/SKILL.md
9393
Name: Testing-Anti-Patterns
9494
Description: Use when writing or changing tests, adding mocks, or tempted to add test-only methods to production code - prevents testing mock behavior, production pollution with test-only methods, and mocking without understanding dependencies
95-
/home/clifford/Documents/source/nori/cli/.claude/skills/test-driven-development/SKILL.md
96-
Name: Test-Driven Development (TDD)
97-
Description: Use when implementing any feature or bugfix, before writing implementation code - write the test first, watch it fail, write minimal code to pass; ensures tests actually verify behavior by requiring failure first
9895
/home/clifford/Documents/source/nori/cli/.claude/skills/systematic-debugging/SKILL.md
9996
Name: Systematic-Debugging
10097
Description: Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes - four-phase framework (root cause investigation, pattern analysis, hypothesis testing, implementation) that ensures understanding before attempting solutions
98+
/home/clifford/Documents/source/nori/cli/.claude/skills/test-driven-development/SKILL.md
99+
Name: Test-Driven Development (TDD)
100+
Description: Use when implementing any feature or bugfix, before writing implementation code - write the test first, watch it fail, write minimal code to pass; ensures tests actually verify behavior by requiring failure first
101101
/home/clifford/Documents/source/nori/cli/.claude/skills/root-cause-tracing/SKILL.md
102102
Name: Root-Cause-Tracing
103103
Description: Use when errors occur deep in execution and you need to trace back to find the original trigger - systematically traces bugs backward through call stack, adding instrumentation when needed, to identify source of invalid data or incorrect behavior
104104
/home/clifford/Documents/source/nori/cli/.claude/skills/receiving-code-review/SKILL.md
105105
Name: Code-Review-Reception
106106
Description: Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation
107+
/home/clifford/Documents/source/nori/cli/.claude/skills/write-noridoc/SKILL.md
108+
Name: Write Noridoc
109+
Description: Write or update documentation in the server-side noridocs system.
110+
/home/clifford/Documents/source/nori/cli/.claude/skills/recall/SKILL.md
111+
Name: Recall
112+
Description: Search the Nori knowledge base for relevant context, solutions, and documentation.
113+
/home/clifford/Documents/source/nori/cli/.claude/skills/sync-noridocs/SKILL.md
114+
Name: Sync Noridocs
115+
Description: Sync all local docs.md files to server-side noridocs system.
116+
/home/clifford/Documents/source/nori/cli/.claude/skills/list-noridocs/SKILL.md
117+
Name: List Noridocs
118+
Description: List all server-side noridocs, optionally filtered by repository and/or path prefix.
107119
/home/clifford/Documents/source/nori/cli/.claude/skills/handle-large-tasks/SKILL.md
108120
Name: Handle-Large-Tasks
109121
Description: Use this skill to split large plans into smaller chunks. This skill manages your context window for large tasks. Use it when a task will take a long time and cause context issues.
@@ -113,15 +125,21 @@ Found 17 skills:
113125
/home/clifford/Documents/source/nori/cli/.claude/skills/creating-skills/SKILL.md
114126
Name: Creating-Skills
115127
Description: Use when you need to create a new custom skill for a profile - guides through gathering requirements, creating directory structure, writing SKILL.md, and optionally adding bundled scripts
116-
/home/clifford/Documents/source/nori/cli/.claude/skills/creating-debug-tests-and-iterating/SKILL.md
117-
Name: creating-debug-tests-and-iterating
118-
Description: Use this skill when faced with a difficult debugging task where you need to replicate some bug or behavior in order to see what is going wrong.
119128
/home/clifford/Documents/source/nori/cli/.claude/skills/building-ui-ux/SKILL.md
120129
Name: Building UI/UX
121130
Description: Use when implementing user interfaces or user experiences - guides through exploration of design variations, frontend setup, iteration, and proper integration
122131
/home/clifford/Documents/source/nori/cli/.claude/skills/brainstorming/SKILL.md
123132
Name: Brainstorming
124133
Description: IMMEDIATELY USE THIS SKILL when creating or develop anything and before writing code or implementation plans - refines rough ideas into fully-formed designs through structured Socratic questioning, alternative exploration, and incremental validation
134+
/home/clifford/Documents/source/nori/cli/.claude/skills/memorize/SKILL.md
135+
Name: Memorize
136+
Description: Use this to save important implementation decisions, patterns, or context to the Nori knowledge base for future sessions.
137+
/home/clifford/Documents/source/nori/cli/.claude/skills/prompt-analysis/SKILL.md
138+
Name: Prompt Analysis
139+
Description: Analyze prompts for quality and best practices before sending them to Claude.
140+
/home/clifford/Documents/source/nori/cli/.claude/skills/read-noridoc/SKILL.md
141+
Name: Read Noridoc
142+
Description: Read documentation from the server-side noridocs system by file path.
125143

126144
Check if any of these skills are relevant to the user's task. If relevant, use the Read tool to load the skill before proceeding.
127145

.claude/settings.json

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,6 @@
2222
"Bash(cargo t:*)",
2323
"Bash(cargo search:*)"
2424
],
25-
"additionalDirectories": [
26-
".claude/profiles",
27-
".claude/skills",
28-
"/home/clifford/Documents/source/nori/cli/.claude/profiles",
29-
"/home/clifford/Documents/source/nori/cli/.claude/skills"
30-
],
3125
"sandbox": {
3226
"filesystem": {
3327
"read": {

.claude/skills/creating-debug-tests-and-iterating/SKILL.md

Lines changed: 0 additions & 66 deletions
This file was deleted.

.claude/skills/test-driven-development/SKILL.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ Place marker on the line immediately before the test function/block definition.<
1818
<system-reminder>If you have more than one test that you need to write, you should write all of them before moving to the GREEN phase.</system-reminder>
1919
3. Write the minimal amount of code necessary to make the test pass (GREEN phase)
2020
4. Verify the test now passes due to the behavior of the application.
21-
- If you go through three loops without making progress, switch to running `/home/clifford/Documents/source/nori/cli/skills/creating-debug-tests-and-iterating`
2221
5. Refactor the code to clean it up.
2322
6. Verify tests still pass.
2423
</required>

.claude/skills/webapp-testing/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: webapp-testing
3-
description: Use this skill to build features or debug anything that uses a webapp frontend.
3+
description: Use this skill to build features that requires modifying a webapp frontend.
44
---
55

66
<required>

.claude/skills/writing-plans/SKILL.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,18 @@ description: Use when design is complete and you need detailed implementation ta
1313
- Think about questions or areas that require clarity. Add them to the plan.
1414
- Emphasize how you will test your plan.
1515
- Present plan to user.
16-
</required>
16+
</required>
1717

1818
# Guidelines
1919

2020
## Overview
2121

22-
Create a comprehensive implementation plans assuming the engineer has zero context for our codebase and questionable taste. Document everything they need to know: which files to touch for each task, code, testing, docs they might need to check, how to test it. Give them the whole plan as bite-sized tasks. DRY. YAGNI. TDD.
22+
Write comprehensive implementation plans assuming the engineer has zero context for our codebase and questionable taste. Document everything they need to know: which files to touch for each task, code, testing, docs they might need to check, how to test it. Give them the whole plan as bite-sized tasks. DRY. YAGNI. TDD.
2323

2424
Assume they are a talented developer. However, assume that they know almost nothing about our toolset or problem domain. Assume they don't know good test design very well.
2525

2626
Do not add code, but include enough detail that the necessary code is obvious.
2727

28-
Do not write a file to disk unless explicitly asked.
29-
3028
## Bite-Sized Task Granularity
3129

3230
**Each step is one action (2-5 minutes):**
@@ -91,3 +89,10 @@ types. Your tests should NOT simply test mocks. Always test actual behavior.</sy
9189

9290
---
9391
```
92+
93+
## Remember
94+
95+
- Exact file paths always, taking into account worktrees
96+
- Exact commands with expected output
97+
- Reference relevant skills with @ syntax
98+
- DRY, YAGNI, TDD

.github/workflows/cargo-deny.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ jobs:
1111
defaults:
1212
run:
1313
working-directory: ./codex-rs
14+
env:
15+
# Disable sccache wrapper from .cargo/config.toml since it's not available
16+
# in the cargo-deny Docker container.
17+
RUSTC_WRAPPER: ""
1418
steps:
1519
- name: Checkout
1620
uses: actions/checkout@v6

README.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66

77
**One CLI, multiple AI providers.** Nori is a local AI coding agent that lets you switch between Claude, Gemini, and Codex. All from the same native CLI.
88

9-
<!-- TODO: Add TUI screenshot here -->
10-
<!-- ![Nori TUI Screenshot](assets/screenshot.png) -->
9+
![Nori TUI Screenshot](https://raw.githubusercontent.com/tilework-tech/nori-cli/refs/heads/dev/assets/nori-cli_2026-01-13.png)
1110

1211
## Install
1312

@@ -23,23 +22,24 @@ Or download binaries from [GitHub Releases](https://github.com/tilework-tech/nor
2322
nori
2423
```
2524

26-
That's it. Nori launches an interactive TUI where you can chat, run commands, and let the AI assist with your codebase.
25+
That'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.
2726

2827
## Providers
2928

3029
Each provider you plan to use needs to be authenticated separately before use. Switch between AI providers with the `/agent` command:
3130

3231
| Provider | Command | Authentication |
3332
|----------|---------|----------------|
34-
| Claude | `npm i -g @zed-industries/claude-code-acp` (default) | `npx @anthropic-ai/claude-code setup-token` |
33+
| Claude | `npm i -g @zed-industries/claude-code-acp` (default) | `npx @anthropic-ai/claude-code` and then follow the login flow |
3534
| Gemini | `npm i -g @google/gemini-cli --experimental-acp` | `npx @google/gemini-cli` and then `/auth` |
3635
| OpenAI | `npm i -g @zed-industries/codex-acp` | `npx @openai/codex login` |
3736

3837
## Features
3938

4039
- **Multi-provider**: Anthropic's Claude Code, Google DeepMind's Gemini, and OpenAI's Codex
41-
- **Sandboxed execution**: Commands run in OS-level security sandboxes
40+
- **Improved terminal interface**: Fast incremental renders in Ratatui, double buffered scrollback history, and built in Rust for performance
4241
- **Coming Soon!**
42+
- **Sandboxed execution**: Commands run in OS-level security sandboxes
4343
- **MCP integration**: Connect to Model Context Protocol servers for extended tools
4444
- **Session persistence**: Save and resume conversations with `nori resume`
4545
- **Multi-agent orchestration**: Alternate between multiple agent sessions
@@ -48,6 +48,8 @@ Each provider you plan to use needs to be authenticated separately before use. S
4848

4949
Nori CLI is built on the great work within [OpenAI Codex CLI](https://github.com/openai/codex).
5050

51+
Nori CLI is working with the great protocol led by [Zed Industries](https://github.com/agentclientprotocol/agent-client-protocol) for orchestrating agents.
52+
5153
## License
5254

5355
[Apache-2.0](LICENSE)

assets/SCREENSHOT_PLACEHOLDER.md

Lines changed: 0 additions & 15 deletions
This file was deleted.

assets/nori-cli_2026-01-13.png

109 KB
Loading

0 commit comments

Comments
 (0)