one-code-extension 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +111 -94
- package/docs/guide/README.md +2 -2
- package/docs/guide/bring-your-claude-code-setup.md +7 -5
- package/docs/guide/configuration.md +5 -3
- package/docs/guide/differences-from-claude-code.md +12 -10
- package/docs/guide/doctor.md +5 -3
- package/docs/guide/hooks.md +7 -5
- package/docs/guide/installation.md +8 -6
- package/docs/guide/permissions-modes-and-auto-mode.md +24 -22
- package/docs/guide/providers-and-models.md +12 -10
- package/docs/guide/reference.md +4 -2
- package/docs/guide/sessions-and-context.md +5 -3
- package/docs/guide/skills-plugins-and-mcp.md +7 -5
- package/docs/guide/subagents-and-workflows.md +13 -11
- package/docs/guide/tasks-and-background-work.md +10 -8
- package/docs/guide/terminal-interface.md +6 -4
- package/docs/guide/tools.md +5 -3
- package/docs/guide/troubleshooting.md +12 -10
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,23 +1,16 @@
|
|
|
1
1
|
# One Code
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**Claude Code with the model slot left open. The full workflow, open source, on any model or provider.**
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
Claude Code is a good harness. It just ships bolted to one model. One Code
|
|
6
|
+
unbolts it, and runs the whole workflow (subagents, git worktrees, auto mode,
|
|
7
|
+
ultracode workflows, plan mode) on the model you pick. Keep Claude Code for the
|
|
8
|
+
work that earns its best model. Reach for One Code whenever a cheaper or
|
|
9
|
+
different model fits the job.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
different models and providers: Anthropic, OpenAI, Gemini, OpenRouter, or
|
|
15
|
-
local models supported by [pi](https://github.com/earendil-works/pi).
|
|
16
|
-
- **Keep control as work grows.** Plan before editing, isolate changes in git
|
|
17
|
-
worktrees, and follow parallel agents from a live progress panel.
|
|
18
|
-
|
|
19
|
-
Built on pi. Free and open source under the MIT license. Works alongside
|
|
20
|
-
Claude Code, with the bundled app's state kept in `~/.onecode`.
|
|
11
|
+
The parts that make the harness good (the steering, the permission gate, the
|
|
12
|
+
context management) live in the harness, not the model. One Code brings all of
|
|
13
|
+
them across, because the good part was never the logo.
|
|
21
14
|
|
|
22
15
|
<p align="center">
|
|
23
16
|
<img src="demo/onecode.gif" alt="One Code switching models and running an agentic task" width="820">
|
|
@@ -28,10 +21,30 @@ Claude Code, with the bundled app's state kept in `~/.onecode`.
|
|
|
28
21
|
[Differences from Claude Code](docs/guide/differences-from-claude-code.md) ·
|
|
29
22
|
[Command reference](docs/guide/reference.md)
|
|
30
23
|
|
|
31
|
-
##
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
24
|
+
## ✨ What you get
|
|
25
|
+
|
|
26
|
+
- **Any model, any provider.** Anthropic, OpenAI, Gemini, OpenRouter, or a
|
|
27
|
+
local model. Bring your own and switch mid-session with `/model`. Nothing
|
|
28
|
+
stops you.
|
|
29
|
+
- **Mix providers in one session.** The parent and each subagent pick their own
|
|
30
|
+
model and provider, so an ultracode workflow can fan out to a cheap tier while
|
|
31
|
+
the parent stays on a frontier model. A single-gateway setup cannot do this,
|
|
32
|
+
which is usually the reason people switch.
|
|
33
|
+
- **Your Claude Code setup runs unchanged.** `CLAUDE.md`, `.claude/commands`,
|
|
34
|
+
`.claude/skills`, `.claude/agents`, `.mcp.json`, plugins, and permission rules
|
|
35
|
+
are picked up as they are. No migration, and no second config file to keep in
|
|
36
|
+
sync.
|
|
37
|
+
- **Capability-tiered prompting.** A weaker model gets more guidance, not less.
|
|
38
|
+
Not out of politeness; it is how you get output you can use.
|
|
39
|
+
- **A package, not a fork.** One Code is a [pi](https://github.com/earendil-works/pi)
|
|
40
|
+
package, so you extend it with your own extensions, themes, and settings.
|
|
41
|
+
Forks go stale; packages do not have to.
|
|
42
|
+
- **Free and open source** under the MIT license.
|
|
43
|
+
|
|
44
|
+
## 🚀 Get started
|
|
45
|
+
|
|
46
|
+
You need **Node.js 22.19+**. One Code is developed and verified on macOS and
|
|
47
|
+
Linux; WSL works too. Native Windows is untested.
|
|
35
48
|
|
|
36
49
|
```bash
|
|
37
50
|
npm install -g @one-ai/one-code
|
|
@@ -39,51 +52,50 @@ cd your-project
|
|
|
39
52
|
onecode
|
|
40
53
|
```
|
|
41
54
|
|
|
42
|
-
Inside One Code, run `/login` to connect a provider, then `/model` to
|
|
43
|
-
model. You can also
|
|
44
|
-
|
|
55
|
+
Inside One Code, run `/login` to connect a provider, then `/model` to pick a
|
|
56
|
+
model. You can also pass a provider key through an environment variable such as
|
|
57
|
+
`ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, or `OPENROUTER_API_KEY`.
|
|
45
58
|
|
|
46
|
-
Open a project
|
|
47
|
-
|
|
59
|
+
Open a project that already has a `CLAUDE.md` or `.claude/` setup and One Code
|
|
60
|
+
reuses it right away. Starting fresh? `/init` drafts a `CLAUDE.md` for you.
|
|
48
61
|
|
|
49
|
-
Not sure what is
|
|
50
|
-
reports which providers have credentials, which model each role
|
|
51
|
-
of your Claude Code configuration was picked up, and which programs
|
|
52
|
-
`/doctor` runs the full checkup
|
|
62
|
+
Not sure what is wired up? Run `onecode doctor` (or `/doctor report` inside a
|
|
63
|
+
session). It reports which providers have credentials, which model each role
|
|
64
|
+
uses, what of your Claude Code configuration was picked up, and which programs
|
|
65
|
+
are missing. `/doctor` runs the full checkup and has the model fix what it finds.
|
|
53
66
|
|
|
54
|
-
One Code is free
|
|
55
|
-
provider. See [Providers and models](docs/guide/providers-and-models.md)
|
|
56
|
-
connection options.
|
|
67
|
+
One Code is free. Model access, usage charges, and rate limits are between you
|
|
68
|
+
and your provider. See [Providers and models](docs/guide/providers-and-models.md)
|
|
69
|
+
for connection options.
|
|
57
70
|
|
|
58
71
|
### Other ways to install
|
|
59
72
|
|
|
60
73
|
**Homebrew** installs Node for you:
|
|
61
74
|
|
|
62
75
|
```bash
|
|
63
|
-
brew install isurumaduranga/one-ai/
|
|
76
|
+
brew install isurumaduranga/one-ai/onecode
|
|
64
77
|
```
|
|
65
78
|
|
|
66
|
-
**Already
|
|
79
|
+
**Already on pi?** Add the extensions to your existing installation:
|
|
67
80
|
|
|
68
81
|
```bash
|
|
69
82
|
pi install npm:one-code-extension
|
|
70
83
|
```
|
|
71
84
|
|
|
72
85
|
The app package, [`@one-ai/one-code`](https://www.npmjs.com/package/@one-ai/one-code),
|
|
73
|
-
bundles a pinned pi
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
86
|
+
bundles a pinned pi and gives you the `onecode` command. The extension package,
|
|
87
|
+
[`one-code-extension`](https://www.npmjs.com/package/one-code-extension), runs on
|
|
88
|
+
your own pi and is tested against pi 0.83 to 0.85; use `pi` in place of `onecode`
|
|
89
|
+
for that install.
|
|
77
90
|
|
|
78
91
|
The app opens in a full-screen terminal interface by default. See the
|
|
79
|
-
[installation guide](docs/guide/installation.md) for display settings and more
|
|
80
|
-
details.
|
|
92
|
+
[installation guide](docs/guide/installation.md) for display settings and more.
|
|
81
93
|
|
|
82
|
-
## Put different models to work
|
|
94
|
+
## 🎛️ Put different models to work
|
|
83
95
|
|
|
84
96
|
A main conversation and a repository-wide investigation do not need the same
|
|
85
|
-
model.
|
|
86
|
-
|
|
97
|
+
model. Keep your preferred model in charge and let subagents use another
|
|
98
|
+
provider for exploration, tests, or review.
|
|
87
99
|
|
|
88
100
|
1. Choose the main model with `/model`.
|
|
89
101
|
2. Set the default for subagents and workflow agents with
|
|
@@ -93,22 +105,22 @@ subagents use another provider for exploration, tests, or review.
|
|
|
93
105
|
> Use subagents to investigate the authentication code and its tests.
|
|
94
106
|
> Have them report their findings, then make the fix in the main session.
|
|
95
107
|
|
|
96
|
-
Agent definitions in `.claude/agents/` can
|
|
97
|
-
|
|
98
|
-
|
|
108
|
+
Agent definitions in `.claude/agents/` can name their own model, tools, and
|
|
109
|
+
instructions. Use `/agents` to follow their progress and `/model` to change the
|
|
110
|
+
main model as the task changes.
|
|
99
111
|
|
|
100
|
-
This
|
|
101
|
-
|
|
112
|
+
This is where you decide where the money goes. Actual cost and quality depend on
|
|
113
|
+
the models, the task, and how much you delegate.
|
|
102
114
|
|
|
103
115
|
[Subagents and workflows →](docs/guide/subagents-and-workflows.md)
|
|
104
116
|
|
|
105
|
-
## Reuse the setup you already have
|
|
117
|
+
## ♻️ Reuse the setup you already have
|
|
106
118
|
|
|
107
|
-
One Code reads Claude Code configuration directly
|
|
119
|
+
One Code reads Claude Code configuration directly. There is no import step.
|
|
108
120
|
|
|
109
121
|
| Your configuration | How One Code uses it |
|
|
110
122
|
|---|---|
|
|
111
|
-
| `CLAUDE.md` | Project instructions, including nested files and `@path` imports. Falls back to `AGENTS.md` when no `CLAUDE.md
|
|
123
|
+
| `CLAUDE.md` | Project instructions, including nested files and `@path` imports. Falls back to `AGENTS.md` when a directory has no `CLAUDE.md`. |
|
|
112
124
|
| `.claude/skills/` and `.claude/commands/` | Discoverable skills and slash commands. |
|
|
113
125
|
| `.claude/agents/` | Subagent definitions with their model, tools, and instructions. |
|
|
114
126
|
| `.claude/settings.json` | `allow`, `deny`, and `ask` permission rules, plus supported command hooks. |
|
|
@@ -116,62 +128,60 @@ One Code reads Claude Code configuration directly, without an import step.
|
|
|
116
128
|
| Installed Claude Code plugins | Plugin agents, skills, commands, and MCP servers, namespaced by plugin. |
|
|
117
129
|
|
|
118
130
|
Claude Code tool names such as `Read`, `Bash`, `Edit`, and `Task` work in
|
|
119
|
-
permission rules and hook matchers. One Code
|
|
120
|
-
and treats `~/.claude` as read-only.
|
|
131
|
+
permission rules and hook matchers. One Code keeps its own settings separately
|
|
132
|
+
and treats `~/.claude` as read-only, so nothing you already have gets rewritten.
|
|
121
133
|
|
|
122
|
-
Compatibility covers
|
|
123
|
-
|
|
124
|
-
included.
|
|
134
|
+
Compatibility covers configuration and workflow surfaces. Features and skills
|
|
135
|
+
that need Claude Code's own hosted or desktop services are not included.
|
|
125
136
|
|
|
126
137
|
[Configuration details →](docs/guide/bring-your-claude-code-setup.md) ·
|
|
127
138
|
[Skills, plugins, and MCP →](docs/guide/skills-plugins-and-mcp.md)
|
|
128
139
|
|
|
129
|
-
## Workflows that scale with the task
|
|
140
|
+
## ⚙️ Workflows that scale with the task
|
|
130
141
|
|
|
131
142
|
### Subagents and git worktrees
|
|
132
143
|
|
|
133
144
|
Give an investigation its own context window and bring the result back to the
|
|
134
|
-
main conversation. Subagents run in the background,
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
`plan`.
|
|
145
|
+
main conversation. Subagents run in the background, take follow-up messages, and
|
|
146
|
+
can fork the current conversation when they need its context. Three agent
|
|
147
|
+
definitions ship with One Code: `general-purpose`, `explore`, and `plan`.
|
|
138
148
|
|
|
139
|
-
For parallel edits, give agents
|
|
149
|
+
For parallel edits, give agents their own git worktrees. You can also move the
|
|
140
150
|
whole session into a worktree with `enter_worktree` and leave it with
|
|
141
151
|
`exit_worktree`.
|
|
142
152
|
|
|
143
153
|
### Ultracode workflows
|
|
144
154
|
|
|
145
|
-
|
|
146
|
-
|
|
155
|
+
Put **`ultracode`** in a request for a broad audit, migration, or review. The
|
|
156
|
+
model writes a JavaScript workflow that coordinates agents in parallel, with
|
|
147
157
|
progress visible in `/workflows`. Use `/effort ultracode` to keep this behavior
|
|
148
|
-
|
|
158
|
+
on across turns.
|
|
149
159
|
|
|
150
160
|
Resume an interrupted run to reuse completed agent calls whose inputs still
|
|
151
|
-
match. Save reusable scripts in `.claude/workflows/` to
|
|
161
|
+
match. Save reusable scripts in `.claude/workflows/` to call them by name.
|
|
152
162
|
Optional output-token targets stop new and queued agents once reached;
|
|
153
|
-
already
|
|
163
|
+
agents already running can finish above the target.
|
|
154
164
|
|
|
155
165
|
### Permissions and planning
|
|
156
166
|
|
|
157
|
-
**Auto mode is the default.** A classifier
|
|
158
|
-
while permission rules and deterministic checks enforce
|
|
159
|
-
|
|
160
|
-
|
|
167
|
+
**Auto mode is the default.** A classifier judges actions that need review,
|
|
168
|
+
while permission rules and deterministic checks enforce the rest. `deny` rules
|
|
169
|
+
beat `allow` rules. Trust approval covers project-provided hooks, MCP servers,
|
|
170
|
+
and allow rules.
|
|
161
171
|
|
|
162
172
|
Press **ctrl+q** to cycle through manual, accept-edits, plan, and auto modes.
|
|
163
|
-
Plan mode lets the agent investigate and write a
|
|
164
|
-
|
|
165
|
-
|
|
173
|
+
Plan mode lets the agent investigate and write a plan file before you approve
|
|
174
|
+
implementation. Use `/permissions` to inspect rules and `/auto-mode` to
|
|
175
|
+
configure the classifier.
|
|
166
176
|
|
|
167
177
|
The permission system is an application-level control. For OS-level isolation,
|
|
168
|
-
run One Code inside a container. The
|
|
169
|
-
|
|
178
|
+
run One Code inside a container. The guide spells out the guarantees and the
|
|
179
|
+
known gaps.
|
|
170
180
|
|
|
171
181
|
[Permissions and modes →](docs/guide/permissions-modes-and-auto-mode.md) ·
|
|
172
182
|
[Hooks →](docs/guide/hooks.md)
|
|
173
183
|
|
|
174
|
-
## Everyday tools
|
|
184
|
+
## 🧰 Everyday tools
|
|
175
185
|
|
|
176
186
|
| Capability | What you get |
|
|
177
187
|
|---|---|
|
|
@@ -180,12 +190,12 @@ out in the guide.
|
|
|
180
190
|
| Diagnostics | Language-server diagnostics after edits; install the relevant server on your `PATH`. |
|
|
181
191
|
| Long sessions | Per-repository memory, a session scratchpad, and context compaction. |
|
|
182
192
|
| Task tracking | A pinned progress widget, background monitors, and scheduled wake-ups. |
|
|
183
|
-
| Tool discovery | Deferred tools loaded when needed to
|
|
193
|
+
| Tool discovery | Deferred tools loaded when needed to keep prompt overhead down. |
|
|
184
194
|
| Reasoning and appearance | `/effort` or **shift+tab** for reasoning effort; `onecode` and `onecode-light` themes. |
|
|
185
195
|
| Customization | Extend One Code with pi extensions, themes, and settings. |
|
|
186
196
|
|
|
187
197
|
The bundled skills include `simplify`, `code-review`, `security-review`, and
|
|
188
|
-
`fewer-permission-prompts`. A project skill with the same name
|
|
198
|
+
`fewer-permission-prompts`. A project skill with the same name wins.
|
|
189
199
|
|
|
190
200
|
For scripting and session management:
|
|
191
201
|
|
|
@@ -197,28 +207,29 @@ onecode --permission-mode plan # start in plan mode
|
|
|
197
207
|
```
|
|
198
208
|
|
|
199
209
|
See [Tools](docs/guide/tools.md) for every tool the model can call and the
|
|
200
|
-
[command reference](docs/guide/reference.md) for every command, shortcut,
|
|
201
|
-
|
|
210
|
+
[command reference](docs/guide/reference.md) for every command, shortcut, flag,
|
|
211
|
+
and environment variable.
|
|
202
212
|
|
|
203
|
-
## Documentation
|
|
213
|
+
## 📚 Documentation
|
|
204
214
|
|
|
205
215
|
The [user guide](docs/guide/README.md) covers everything: installation,
|
|
206
216
|
providers and models, the terminal interface, configuration, permissions and
|
|
207
217
|
auto mode, hooks, subagents and workflows, skills, plugins, and MCP, tools,
|
|
208
|
-
sessions and context, background work, the doctor, differences from Claude
|
|
209
|
-
|
|
218
|
+
sessions and context, background work, the doctor, differences from Claude Code,
|
|
219
|
+
troubleshooting, and a full reference.
|
|
210
220
|
|
|
211
|
-
##
|
|
221
|
+
## 💡 Good to know
|
|
212
222
|
|
|
213
|
-
- **Providers:** end-to-end
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
223
|
+
- **Providers:** end-to-end testing has focused on Anthropic, OpenAI, and
|
|
224
|
+
OpenRouter. Other providers are less exercised, so expect the occasional rough
|
|
225
|
+
edge.
|
|
226
|
+
- **Web search:** set `BRAVE_SEARCH_API_KEY` or `TAVILY_API_KEY` on a provider
|
|
227
|
+
without native search. With neither key, the fallback is Exa's rate-limited
|
|
228
|
+
keyless endpoint, and One Code labels those results.
|
|
229
|
+
- **Native Windows:** hooks and background shells assume `/bin/sh` for now. Use
|
|
230
|
+
WSL until native Windows is verified.
|
|
220
231
|
|
|
221
|
-
## Install from source
|
|
232
|
+
## 🔧 Install from source
|
|
222
233
|
|
|
223
234
|
This installs the local extensions into an existing pi installation:
|
|
224
235
|
|
|
@@ -231,6 +242,12 @@ pi install ./one-code
|
|
|
231
242
|
pi list
|
|
232
243
|
```
|
|
233
244
|
|
|
234
|
-
##
|
|
245
|
+
## 🧠 Learn the ideas behind it
|
|
246
|
+
|
|
247
|
+
One Code is the practical companion to the Harness Engineering 101 series, which
|
|
248
|
+
builds these ideas up from first principles: what a coding harness actually does,
|
|
249
|
+
and why the good parts are model-independent.
|
|
250
|
+
|
|
251
|
+
## 📄 License
|
|
235
252
|
|
|
236
253
|
[MIT](LICENSE). Contributions welcome.
|
package/docs/guide/README.md
CHANGED
|
@@ -6,7 +6,7 @@ One Code is and why it exists, see the [project README](../../README.md).
|
|
|
6
6
|
|
|
7
7
|
## Start here
|
|
8
8
|
|
|
9
|
-
If you
|
|
9
|
+
If you've never run One Code, read these in order:
|
|
10
10
|
|
|
11
11
|
1. [Install One Code](installation.md). Install it and open your first
|
|
12
12
|
session.
|
|
@@ -35,7 +35,7 @@ If you have never run One Code, read these in order:
|
|
|
35
35
|
| [Sessions and context](sessions-and-context.md) | What the model sees, memory, compaction, the cache, recaps, and resuming sessions. |
|
|
36
36
|
| [Tasks and background work](tasks-and-background-work.md) | The task list, background shells, monitors, loops, and how results reach the model. |
|
|
37
37
|
| [Check your setup with doctor](doctor.md) | The report, the checkup, model presets, and the `onecode doctor` command. |
|
|
38
|
-
| [Differences from Claude Code](differences-from-claude-code.md) | What is different by design, what
|
|
38
|
+
| [Differences from Claude Code](differences-from-claude-code.md) | What is different by design, what isn't provided, and known issues. |
|
|
39
39
|
| [Troubleshooting](troubleshooting.md) | Symptoms, causes, and fixes. |
|
|
40
40
|
| [Command and keyboard reference](reference.md) | Every command, shortcut, flag, environment variable, and file location. |
|
|
41
41
|
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# Bring your Claude Code setup
|
|
2
2
|
|
|
3
|
+
[← One Code user guide](README.md)
|
|
4
|
+
|
|
3
5
|
One Code reads the same configuration files as Claude Code, so your
|
|
4
|
-
existing setup works without changes. There
|
|
6
|
+
existing setup works without changes. There's no import step and nothing
|
|
5
7
|
to convert. Open a project that already has a `.claude/` directory, and One
|
|
6
8
|
Code picks up each of the following as it is.
|
|
7
9
|
|
|
@@ -17,12 +19,12 @@ If a directory has no `CLAUDE.md`, One Code uses its `AGENTS.md` instead, so
|
|
|
17
19
|
a repository that standardized on `AGENTS.md` works too. A `CLAUDE.md` takes
|
|
18
20
|
precedence over an `AGENTS.md` in the same directory.
|
|
19
21
|
|
|
20
|
-
To give One Code instructions that Claude Code
|
|
22
|
+
To give One Code instructions that Claude Code shouldn't read, add an
|
|
21
23
|
`ONECODE.md`. See [ONECODE.md](sessions-and-context.md#onecodemd).
|
|
22
24
|
|
|
23
25
|
To generate a `CLAUDE.md` for a project that lacks one, run `/init`. It has
|
|
24
26
|
the model survey the project (build, test, and lint commands, layout,
|
|
25
|
-
existing AI-tool configuration), ask you about what the code
|
|
27
|
+
existing AI-tool configuration), ask you about what the code can't answer,
|
|
26
28
|
and write the file. It never overwrites an existing `CLAUDE.md` silently.
|
|
27
29
|
|
|
28
30
|
## Skills, commands, and agents
|
|
@@ -74,7 +76,7 @@ The keys One Code honors:
|
|
|
74
76
|
| Key | Scopes | Notes |
|
|
75
77
|
|---|---|---|
|
|
76
78
|
| `permissions.allow`, `permissions.deny`, `permissions.ask` | All | Project allow rules need one-time approval. See [Permissions](permissions-modes-and-auto-mode.md#permission-rules). |
|
|
77
|
-
| `permissions.defaultMode` | All | A project file
|
|
79
|
+
| `permissions.defaultMode` | All | A project file can't select `auto` or `bypassPermissions`. |
|
|
78
80
|
| `permissions.disableBypassPermissionsMode` | All | `"disable"` refuses bypass mode from any source. |
|
|
79
81
|
| `autoMode.*` | User, managed | Never read from project files. See [Configure auto mode](permissions-modes-and-auto-mode.md#configure-auto-mode). |
|
|
80
82
|
| `hooks` | All | Project hooks need one-time approval. See [Hooks](hooks.md). |
|
|
@@ -120,7 +122,7 @@ See [Where settings live](configuration.md#where-settings-live).
|
|
|
120
122
|
|
|
121
123
|
## What does not carry over
|
|
122
124
|
|
|
123
|
-
Features that need Claude Code's own hosted or desktop services
|
|
125
|
+
Features that need Claude Code's own hosted or desktop services aren't
|
|
124
126
|
available. For the full list of tools, commands, and skills that are
|
|
125
127
|
missing or different, see
|
|
126
128
|
[Differences from Claude Code](differences-from-claude-code.md).
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Configure One Code
|
|
2
2
|
|
|
3
|
+
[← One Code user guide](README.md)
|
|
4
|
+
|
|
3
5
|
Use this page to find the right settings file, learn what One Code stores
|
|
4
6
|
and where, change the terminal appearance, and set up language-server
|
|
5
7
|
diagnostics. Provider keys are covered in
|
|
@@ -36,7 +38,7 @@ atomically; a malformed file is reported rather than overwritten.
|
|
|
36
38
|
| `PI_CODING_AGENT_DIR` | pi's agent directory. The bundled app sets it to `~/.onecode/agent`. |
|
|
37
39
|
| `CLAUDE_CONFIG_DIR` | Where Claude Code's user configuration is read from (default `~/.claude`). |
|
|
38
40
|
|
|
39
|
-
Setting one
|
|
41
|
+
Setting one doesn't move the others.
|
|
40
42
|
|
|
41
43
|
## What is stored under ~/.onecode
|
|
42
44
|
|
|
@@ -154,7 +156,7 @@ its files, from the nearest directory that has a project marker such as
|
|
|
154
156
|
server that crashes is restarted twice, then disabled for the session.
|
|
155
157
|
|
|
156
158
|
If the project's TypeScript installation lacks `lib/tsserver.js`
|
|
157
|
-
(TypeScript 7's native compiler), the server
|
|
159
|
+
(TypeScript 7's native compiler), the server can't start; One Code
|
|
158
160
|
reports this. Install a TypeScript 5.x development dependency in that
|
|
159
161
|
project.
|
|
160
162
|
|
|
@@ -163,7 +165,7 @@ precedence over the built-in table for the file extensions it claims.
|
|
|
163
165
|
|
|
164
166
|
Run `/lsp` to see each server's status and diagnostic count, start
|
|
165
167
|
failures, and plugin configuration problems. `/doctor report` lists the
|
|
166
|
-
servers your project needs and whether they
|
|
168
|
+
servers your project needs and whether they're installed.
|
|
167
169
|
|
|
168
170
|
## Environment variables
|
|
169
171
|
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# Differences from Claude Code
|
|
2
2
|
|
|
3
|
+
[← One Code user guide](README.md)
|
|
4
|
+
|
|
3
5
|
One Code recreates Claude Code's workflow on the pi agent harness with your
|
|
4
6
|
choice of model. Most of what you know carries over. This page lists what
|
|
5
|
-
is deliberately different, what
|
|
7
|
+
is deliberately different, what isn't provided, and the known limitations,
|
|
6
8
|
so nothing surprises you.
|
|
7
9
|
|
|
8
10
|
## What is the same
|
|
@@ -46,9 +48,9 @@ have no equivalent here: `Artifact`, `ReportFindings`,
|
|
|
46
48
|
`ShareOnboardingGuide`, `PushNotification`, `RemoteTrigger`, `DesignSync`,
|
|
47
49
|
`CronCreate`, `CronList`, `CronDelete`, `EndConversation`, and
|
|
48
50
|
`SendFeedback`. Scheduling within a session is available through `/loop`
|
|
49
|
-
and `schedule_wakeup`; scheduled cloud sessions
|
|
51
|
+
and `schedule_wakeup`; scheduled cloud sessions aren't.
|
|
50
52
|
|
|
51
|
-
The `Agent` tool's remote isolation option
|
|
53
|
+
The `Agent` tool's remote isolation option isn't implemented.
|
|
52
54
|
|
|
53
55
|
## Commands that are not provided
|
|
54
56
|
|
|
@@ -81,17 +83,17 @@ action but never pre-approve one. See [Hooks](hooks.md).
|
|
|
81
83
|
|
|
82
84
|
## Settings keys that are ignored
|
|
83
85
|
|
|
84
|
-
`permissions.additionalDirectories`
|
|
86
|
+
`permissions.additionalDirectories` isn't honored. The `env` block is read
|
|
85
87
|
only for `CLAUDE_CODE_SUBAGENT_MODEL`, and only from user and managed
|
|
86
88
|
scope. `includeCoAuthoredBy`, `apiKeyHelper`, `forceLoginMethod`,
|
|
87
|
-
`cleanupPeriodDays`, and `spinnerTipsEnabled`
|
|
89
|
+
`cleanupPeriodDays`, and `spinnerTipsEnabled` aren't read. Run
|
|
88
90
|
`/doctor report` to see, per file, which keys were used, ignored, or
|
|
89
91
|
refused.
|
|
90
92
|
|
|
91
93
|
## Prompt layout on Anthropic models
|
|
92
94
|
|
|
93
95
|
Claude Code delivers part of its reminder stack to Opus and Sonnet as a
|
|
94
|
-
system-role message after the first user message. pi's message model
|
|
96
|
+
system-role message after the first user message. pi's message model can't
|
|
95
97
|
express that, so One Code uses the layout Claude Code uses for Haiku on
|
|
96
98
|
every model. The content is the same; only the placement differs.
|
|
97
99
|
|
|
@@ -110,7 +112,7 @@ every model. The content is the same; only the placement differs.
|
|
|
110
112
|
- Some models reject options that others accept. One Code sends minimal
|
|
111
113
|
options to its side calls (classifier, recap, reader) for this reason. A
|
|
112
114
|
provider incompatibility in a side call fails closed: a classifier that
|
|
113
|
-
|
|
115
|
+
can't answer blocks the action.
|
|
114
116
|
- Prompt-cache lifetime and pricing are the provider's. The extended
|
|
115
117
|
one-hour cache applies to Anthropic; other providers use their own
|
|
116
118
|
values.
|
|
@@ -119,7 +121,7 @@ every model. The content is the same; only the placement differs.
|
|
|
119
121
|
|
|
120
122
|
- A write or edit tool can reach a file that only a `Bash` deny rule
|
|
121
123
|
protects, because in-project writes take the deterministic fast path in
|
|
122
|
-
auto mode and
|
|
124
|
+
auto mode and aren't classified. Write `deny` rules for the write tools
|
|
123
125
|
as well. This is documented and accepted rather than fixed.
|
|
124
126
|
- GLM-5.3 and GLM-5.3 Flash, used as the classifier, approve a request to
|
|
125
127
|
back up the project to an unnamed outside location that the ruleset says
|
|
@@ -127,7 +129,7 @@ every model. The content is the same; only the placement differs.
|
|
|
127
129
|
- Running a skill in a one-shot run (`-p '/simplify'`) delivers the skill
|
|
128
130
|
but starts no model turn, so the process exits without doing anything.
|
|
129
131
|
Interactive sessions are unaffected.
|
|
130
|
-
- The reasoning effort set with `/effort`
|
|
132
|
+
- The reasoning effort set with `/effort` doesn't persist across
|
|
131
133
|
restarts; the model chosen with `/model` does. To save a level, open
|
|
132
134
|
pi's `/thinking` picker and press **ctrl+s**, or pass `--thinking`.
|
|
133
135
|
- A subagent spawn that is blocked before it starts can leave its requested
|
|
@@ -145,6 +147,6 @@ every model. The content is the same; only the placement differs.
|
|
|
145
147
|
has had limited live testing.
|
|
146
148
|
- Plugin marketplaces support git and local sources only; npm and pip
|
|
147
149
|
sources, version pinning, dependency resolution, and enterprise
|
|
148
|
-
blocklists
|
|
150
|
+
blocklists aren't implemented.
|
|
149
151
|
|
|
150
152
|
Open work is tracked in the project's issue tracker on GitHub.
|
package/docs/guide/doctor.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Check your setup with doctor
|
|
2
2
|
|
|
3
|
+
[← One Code user guide](README.md)
|
|
4
|
+
|
|
3
5
|
`/doctor` is One Code's health check, modelled on Claude Code's. It measures
|
|
4
6
|
your setup, reports what a session will use, and can have the model repair
|
|
5
7
|
the findings.
|
|
@@ -18,7 +20,7 @@ the findings.
|
|
|
18
20
|
## What the report contains
|
|
19
21
|
|
|
20
22
|
1. **Installation.** Whether you run the bundled app or the extension on
|
|
21
|
-
your own pi, the pi version and whether it
|
|
23
|
+
your own pi, the pi version and whether it's in the tested range, the
|
|
22
24
|
Node version and platform, pi's agent directory, One Code's state
|
|
23
25
|
directory, where Claude Code configuration is read from, and whether a
|
|
24
26
|
newer One Code is available.
|
|
@@ -47,12 +49,12 @@ Findings are listed first, errors before warnings, each with a suggested
|
|
|
47
49
|
fix. The report is "ready" when at least one provider works, a model is
|
|
48
50
|
selected, and there are no errors.
|
|
49
51
|
|
|
50
|
-
In the panel, press **f** to run the checkup on the report you
|
|
52
|
+
In the panel, press **f** to run the checkup on the report you're reading.
|
|
51
53
|
|
|
52
54
|
## Model presets
|
|
53
55
|
|
|
54
56
|
A preset sets the main model, the subagent model, and the classifier model
|
|
55
|
-
together, from the provider you
|
|
57
|
+
together, from the provider you're connected to. Only current-generation,
|
|
56
58
|
priced models that support tool calls are considered.
|
|
57
59
|
|
|
58
60
|
| Preset | Main model | Subagents | Classifier |
|
package/docs/guide/hooks.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Hooks
|
|
2
2
|
|
|
3
|
+
[← One Code user guide](README.md)
|
|
4
|
+
|
|
3
5
|
Hooks are shell commands that run at fixed points in a session. One Code
|
|
4
6
|
runs Claude Code's command hooks from your existing settings files, with
|
|
5
7
|
the same input, output, and exit-code contract, so hooks you wrote for
|
|
@@ -39,8 +41,8 @@ Only command hooks are supported. Hook entries of type `http`, `prompt`, or
|
|
|
39
41
|
| `PostCompact` | After context compaction, with the summary. |
|
|
40
42
|
|
|
41
43
|
Claude Code's `Notification`, `SubagentStop`, and `PermissionRequest`
|
|
42
|
-
events
|
|
43
|
-
concept, and the other two
|
|
44
|
+
events aren't supported. pi has no event that carries the notification
|
|
45
|
+
concept, and the other two aren't implemented.
|
|
44
46
|
|
|
45
47
|
Hooks also run inside subagents: a `PreToolUse` hook that blocks a command
|
|
46
48
|
blocks it in a subagent too.
|
|
@@ -55,7 +57,7 @@ The hook's standard input is a JSON object with these fields:
|
|
|
55
57
|
| Field | Present | Meaning |
|
|
56
58
|
|---|---|---|
|
|
57
59
|
| `session_id` | Always | The session id. |
|
|
58
|
-
| `transcript_path` | Always | The session file, or an empty string when there
|
|
60
|
+
| `transcript_path` | Always | The session file, or an empty string when there's none. |
|
|
59
61
|
| `cwd` | Always | The working directory. |
|
|
60
62
|
| `hook_event_name` | Always | The event name from the table. |
|
|
61
63
|
| `tool_name`, `tool_input` | Tool events | The tool and its arguments. Tool names are One Code's names; see [Claude Code tool names](tools.md#claude-code-tool-names). |
|
|
@@ -90,7 +92,7 @@ Envelope fields honored in a JSON result:
|
|
|
90
92
|
|---|---|
|
|
91
93
|
| `continue: false` | Blocks, with `stopReason` as the reason. |
|
|
92
94
|
| `decision: "block"` | Blocks, with `reason` as the reason. |
|
|
93
|
-
| `hookSpecificOutput.permissionDecision` | `"deny"` and `"ask"` both block, with `permissionDecisionReason`. `"allow"` is read but never honored; a hook
|
|
95
|
+
| `hookSpecificOutput.permissionDecision` | `"deny"` and `"ask"` both block, with `permissionDecisionReason`. `"allow"` is read but never honored; a hook can't pre-approve an action, and the permission gate still runs. |
|
|
94
96
|
| `hookSpecificOutput.updatedInput` | Replaces the tool's input (`PreToolUse`). |
|
|
95
97
|
| `hookSpecificOutput.updatedToolResult` | Replaces the tool's result (`PostToolUse`). |
|
|
96
98
|
| `hookSpecificOutput.additionalContext` | Adds text to the model's context. |
|
|
@@ -105,5 +107,5 @@ Set `CC_HOOKS_DEBUG=1` before launching to print each hook dispatch and its
|
|
|
105
107
|
outcome to stderr. Decisions are also appended to
|
|
106
108
|
`~/.onecode/hooks/hooks-decisions.jsonl` while the variable is set.
|
|
107
109
|
|
|
108
|
-
Hooks run through `/bin/sh`. On native Windows this path
|
|
110
|
+
Hooks run through `/bin/sh`. On native Windows this path doesn't exist,
|
|
109
111
|
which is one reason native Windows is unsupported; use WSL.
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Install One Code
|
|
2
2
|
|
|
3
|
+
[← One Code user guide](README.md)
|
|
4
|
+
|
|
3
5
|
One Code ships as two npm packages from one repository. Choose the one that
|
|
4
6
|
fits how you already work.
|
|
5
7
|
|
|
@@ -27,7 +29,7 @@ cd your-project
|
|
|
27
29
|
onecode
|
|
28
30
|
```
|
|
29
31
|
|
|
30
|
-
On the first run there
|
|
32
|
+
On the first run there's no provider yet: the banner shows `model none`.
|
|
31
33
|
Run `/login` inside One Code to connect a provider, or set a provider key
|
|
32
34
|
in your environment before launching. For a free option, see
|
|
33
35
|
[Providers and models](providers-and-models.md).
|
|
@@ -41,10 +43,10 @@ value you change later.
|
|
|
41
43
|
Homebrew installs Node for you, so this route has no separate Node step:
|
|
42
44
|
|
|
43
45
|
```bash
|
|
44
|
-
brew install isurumaduranga/one-ai/
|
|
46
|
+
brew install isurumaduranga/one-ai/onecode
|
|
45
47
|
```
|
|
46
48
|
|
|
47
|
-
The formula
|
|
49
|
+
The formula and the command it installs are both named `onecode`.
|
|
48
50
|
Homebrew refuses npm packages published less than a day ago, so a release
|
|
49
51
|
becomes installable this way about a day after it appears on npm.
|
|
50
52
|
|
|
@@ -62,7 +64,7 @@ your pi is outside that range. Full-screen mode is opt-in on your own pi;
|
|
|
62
64
|
see [Full-screen mode and themes](configuration.md#full-screen-mode-and-themes).
|
|
63
65
|
|
|
64
66
|
A few interface refinements are applied only by the bundled app, because
|
|
65
|
-
they patch pi internals the extension API
|
|
67
|
+
they patch pi internals the extension API can't reach: a clean exit that
|
|
66
68
|
erases the screen in regular mode, and suppression of pi's "Operation
|
|
67
69
|
aborted" line when you interrupt a reply. Everything else is identical.
|
|
68
70
|
|
|
@@ -97,7 +99,7 @@ notice with the matching upgrade command when a newer version exists:
|
|
|
97
99
|
|
|
98
100
|
```bash
|
|
99
101
|
npm install -g @one-ai/one-code # npm installs
|
|
100
|
-
brew upgrade
|
|
102
|
+
brew upgrade onecode # Homebrew installs
|
|
101
103
|
```
|
|
102
104
|
|
|
103
105
|
Set `ONECODE_NO_UPDATE_CHECK=1` to skip the check; `--offline` skips it too.
|
|
@@ -108,7 +110,7 @@ Both packages are released together with the same version number.
|
|
|
108
110
|
## Uninstall
|
|
109
111
|
|
|
110
112
|
```bash
|
|
111
|
-
npm uninstall -g @one-ai/one-code # or: brew uninstall
|
|
113
|
+
npm uninstall -g @one-ai/one-code # or: brew uninstall onecode
|
|
112
114
|
rm -rf ~/.onecode # One Code's state, including pi's under the app
|
|
113
115
|
```
|
|
114
116
|
|