You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/codex/labels/codex-rust-review.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,8 +15,8 @@ Things to look out for when doing the review:
15
15
16
16
## Code Organization
17
17
18
-
- Each create in the Cargo workspace in `codex-rs` has a specific purpose: make a note if you believe new code is not introduced in the correct crate.
19
-
- When possible, try to keep the `core` crate as small as possible. Non-core but shared logic is often a good candidate for `codex-rs/common`.
18
+
- Each create in the Cargo workspace in `nori-rs` has a specific purpose: make a note if you believe new code is not introduced in the correct crate.
19
+
- When possible, try to keep the `core` crate as small as possible. Non-core but shared logic is often a good candidate for `nori-rs/common`.
20
20
- Be wary of large files and offer suggestions for how to break things into more reasonably-sized files.
21
21
- Rust files should generally be organized such that the public parts of the API appear near the top of the file and helper functions go below. This is analagous to the "inverted pyramid" structure that is favored in journalism.
- If the nature of the change seems to have a visual component (which is often the case for changes to `codex-rs/tui`), recommend including a screenshot or video to demonstrate the change, if appropriate.
134
+
- If the nature of the change seems to have a visual component (which is often the case for changes to `nori-rs/tui`), recommend including a screenshot or video to demonstrate the change, if appropriate.
135
135
- References to existing GitHub issues and PRs are encouraged, where appropriate, though you likely do not have network access, so may not be able to help here.
Copy file name to clipboardExpand all lines: .github/workflows/docs.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ Path: @/.github/workflows
10
10
11
11
### How it fits into the larger codebase
12
12
13
-
- The release workflow builds Rust binaries from `@/codex-rs/` and packages them via the Node.js launcher in `@/nori-cli/`
13
+
- The release workflow builds Rust binaries from `@/nori-rs/` and packages them via the Node.js launcher in `@/nori-cli/`
14
14
- Version detection delegates to `@/scripts/create_nori_release --get-next-version`, which queries git tags (via the GitHub API) as the single source of truth for version numbering
15
15
- Stable releases use "synthetic commits" created by the `create_nori_release` script -- release tags point to commits that exist only for the release (not on any branch), with `Cargo.toml` updated to the release version, keeping the `main` branch's `Cargo.toml` at a placeholder `0.0.0`
16
16
- The `nori-release.yml` workflow publishes to npm under the package name `nori-ai-cli`, with stable releases tagged `@latest` and snapshots tagged `@next`
@@ -25,7 +25,7 @@ Path: @/.github/workflows
25
25
| Main branch push | Push to `main` (e.g., merged PR) with path filters |`publish_next=true` -- publishes a `@next` snapshot |
26
26
| Manual dispatch |`workflow_dispatch` with inputs | Either `publish_next=true` or explicit version + optional `dry_run`|
27
27
28
-
**Path filters for main branch pushes** restrict triggering to changes in `codex-rs/**`, `nori-cli/**`, `scripts/**`, and the workflow file itself, so docs-only changes do not trigger a release.
28
+
**Path filters for main branch pushes** restrict triggering to changes in `nori-rs/**`, `nori-cli/**`, `scripts/**`, and the workflow file itself, so docs-only changes do not trigger a release.
29
29
30
30
**Concurrency control** uses group `nori-release-${{ github.ref }}` with `cancel-in-progress` enabled only for main branch pushes. This means if two PRs merge in quick succession, the second run cancels the first since only the latest snapshot matters.
Copy file name to clipboardExpand all lines: docs.md
+13-13Lines changed: 13 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,13 +4,13 @@ Path: @/
4
4
5
5
### Overview
6
6
7
-
Nori CLI is a multi-provider terminal-based AI coding assistant built in Rust. It provides a unified interface for interacting with AI agents from Anthropic (Claude Code), OpenAI (Codex), and Google (Gemini). The project uses the Agent Client Protocol (ACP) for subprocess-based agent communication and features a Ratatui-based TUI. The implementation is in Rust (`codex-rs`), with a Node.js launcher for npm distribution (`nori-cli`).
7
+
Nori CLI is a multi-provider terminal-based AI coding assistant built in Rust. It provides a unified interface for interacting with AI agents from Anthropic (Claude Code), OpenAI (Codex), and Google (Gemini). The project uses the Agent Client Protocol (ACP) for subprocess-based agent communication and features a Ratatui-based TUI. The implementation is in Rust (`nori-rs`), with a Node.js launcher for npm distribution (`nori-cli`).
8
8
9
9
### How it fits into the larger codebase
10
10
11
11
This is the root repository containing the Nori CLI project:
12
12
13
-
-**`codex-rs/`**: Main Rust implementation (Cargo workspace with all core functionality)
13
+
-**`nori-rs/`**: Main Rust implementation (Cargo workspace with all core functionality)
14
14
-**`nori-cli/`**: Node.js launcher for npm distribution (thin wrapper that invokes the Rust binary)
15
15
-**`.github/`**: Build and CI configuration
16
16
-**`.claude/`**: Skills and configuration for Claude-based development
@@ -25,12 +25,12 @@ The project was originally forked from OpenAI Codex CLI and has been adapted to
@@ -87,10 +87,10 @@ nori resume <SESSION_ID> # Specific session
87
87
88
88
**MCP Support:**
89
89
90
-
Nori acts as both MCP client and server:
90
+
Nori acts as an MCP client:
91
91
92
-
-**Client**: Connects to MCP servers defined in config
93
-
-**Server**: Exposes Nori tools via `nori mcp-server`
92
+
- Connects to MCP servers defined in config
93
+
- Exposes MCP management through the interactive `/mcp` workflow in the TUI
94
94
95
95
### Things to Know
96
96
@@ -99,7 +99,7 @@ Nori acts as both MCP client and server:
99
99
- The `unstable` feature flag gates experimental ACP features like model switching
100
100
- Cross-platform sandboxing is implemented using Landlock (Linux), Seatbelt (macOS), and restricted tokens (Windows)
101
101
- Snapshot testing with `insta` is used extensively for TUI regression testing
102
-
- The project has two justfiles: a root `@/justfile` implementing the Shared Local Runner Layer spec (standardized `help`, `dev`, `test`, `doctor` targets) and `@/codex-rs/justfile` for Rust-specific workflows. The root justfile wraps `codex-rs` by running `cd codex-rs && cargo ...` for each target. Both coexist -- run `just` from the repo root for the standard targets, or `cd codex-rs && just` for the Rust-native recipes
102
+
- The project has two justfiles: a root `@/justfile` implementing the Shared Local Runner Layer spec (standardized `help`, `dev`, `test`, `doctor` targets) and `@/nori-rs/justfile` for Rust-specific workflows. The root justfile wraps `nori-rs` by running `cd nori-rs && cargo ...` for each target. Both coexist -- run `just` from the repo root for the standard targets, or `cd nori-rs && just` for the Rust-native recipes
103
103
-`pnpm` is used for Node.js workspace management in `@/nori-cli/`
0 commit comments