nandi/oripublic Fork 0
3506175
Commits
Clone
git clone https://git.rickub.com/nandi/ori.git
git clone ssh://git@rickub.com/nandi/ori.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

forked from bots-garden/ori

🛟 Updated.

k33g committed 2026-09-18T10:54:39+02:00 Browse files
3506175 parent: 55d4c9e
modified README.md +23 -3
@@ -3,7 +3,29 @@
33
44 Ori is a web client for [ACP (Agent Client Protocol)](https://agentclientprotocol.com) code agents: a Go backend serves a React single-page application and connects, over ACP, to an agent such as Claude Code. The browser gets a Zed-style agent panel — streamed answers, thoughts, tool calls, plans and permission prompts — plus a workspace panel: resizable file tree, syntax-highlighted previews (with rendered Markdown and AsciiDoc), a Monaco editor and an interactive terminal. Light and dark themes, switchable from the header.
55
6-## Quick start
6+![ori-desktop](./assets/ori-desktop.png)
7+
8+## Quick Start
9+
10+```
11+sbx run -d claude . \
12+ --template k33g/ori:0.0.3 \
13+ --kit docker.io/k33g/ori-kit:latest \
14+ --name hello-world \
15+ -p 5555:8888/tcp
16+```
17+Then open **http://localhost:5555** — the panel connects to a Claude Code session already running in the sandbox, no login needed.
18+
19+Or you can use **ori-desktop**
20+
21+```bash
22+cd ori-desktop
23+wails build
24+xattr -cr build/bin/ori-desktop.app
25+```
26+Then **double-click** on the application
27+
28+## How to start
729
830 From the directory where the kit lives, pointing at the project you want the agent to work on:
931
@@ -14,8 +36,6 @@ sbx run -d claude . \
1436 --name hello-ori \
1537 -p 3000:8888/tcp
1638
17-
18-
1939 sbx run -d claude . \
2040 --template k33g/ori:0.0.2 \
2141 --kit https://rickub.com/bots-garden/kits/ori \
@@ -3,7 +3,29 @@
3 3
4 Ori is a web client for [ACP (Agent Client Protocol)](https://agentclientprotocol.com) code agents: a Go backend serves a React single-page application and connects, over ACP, to an agent such as Claude Code. The browser gets a Zed-style agent panel — streamed answers, thoughts, tool calls, plans and permission prompts — plus a workspace panel: resizable file tree, syntax-highlighted previews (with rendered Markdown and AsciiDoc), a Monaco editor and an interactive terminal. Light and dark themes, switchable from the header.4 Ori is a web client for [ACP (Agent Client Protocol)](https://agentclientprotocol.com) code agents: a Go backend serves a React single-page application and connects, over ACP, to an agent such as Claude Code. The browser gets a Zed-style agent panel — streamed answers, thoughts, tool calls, plans and permission prompts — plus a workspace panel: resizable file tree, syntax-highlighted previews (with rendered Markdown and AsciiDoc), a Monaco editor and an interactive terminal. Light and dark themes, switchable from the header.
5 5
6-## Quick start6+![ori-desktop](./assets/ori-desktop.png)
7+
8+## Quick Start
9+
10+```
11+sbx run -d claude . \
12+ --template k33g/ori:0.0.3 \
13+ --kit docker.io/k33g/ori-kit:latest \
14+ --name hello-world \
15+ -p 5555:8888/tcp
16+```
17+Then open **http://localhost:5555** — the panel connects to a Claude Code session already running in the sandbox, no login needed.
18+
19+Or you can use **ori-desktop**
20+
21+```bash
22+cd ori-desktop
23+wails build
24+xattr -cr build/bin/ori-desktop.app
25+```
26+Then **double-click** on the application
27+
28+## How to start
7 29
8 From the directory where the kit lives, pointing at the project you want the agent to work on:30 From the directory where the kit lives, pointing at the project you want the agent to work on:
9 31
@@ -14,8 +36,6 @@ sbx run -d claude . \
14 --name hello-ori \36 --name hello-ori \
15 -p 3000:8888/tcp37 -p 3000:8888/tcp
16 38
17-
18-
19 sbx run -d claude . \39 sbx run -d claude . \
20 --template k33g/ori:0.0.2 \40 --template k33g/ori:0.0.2 \
21 --kit https://rickub.com/bots-garden/kits/ori \41 --kit https://rickub.com/bots-garden/kits/ori \
added assets/ori-desktop.png +0 -0
new file mode 100644
Binary files /dev/null and b/assets/ori-desktop.png differ
new file mode 100644
Binary files /dev/null and b/assets/ori-desktop.png differBinary files /dev/null and b/assets/ori-desktop.png differ
modified quickstart.md +23 -28
@@ -1,19 +1,40 @@
11 # Ori — quickstart
22
3-Launch a Docker sandbox running [Ori](README.md): Claude Code plus its web UI (chat panel, file tree, Monaco editor, terminal), in your browser.
3+Launch a Docker sandbox running [Ori](README.md): Claude Code plus its web UI (chat panel, file tree, Monaco editor, terminal), in your browser or with **ori-desktop**.
44
55 ## Prerequisites
66
77 - Docker Desktop with the `sbx` CLI, and your Anthropic credentials configured for sandboxes (`sbx secret set anthropic …` or an OAuth login — whatever you already use for `sbx run claude`).
88 - The ori kit: clone this repository (only `kits/ori/` is needed).
99
10+## Quick Start
11+
12+```
13+sbx run -d claude . \
14+ --template k33g/ori:0.0.3 \
15+ --kit docker.io/k33g/ori-kit:latest \
16+ --name hello-world \
17+ -p 5555:8888/tcp
18+```
19+Then open **http://localhost:5555** — the panel connects to a Claude Code session already running in the sandbox, no login needed.
20+
21+Or you can use **ori-desktop**
22+
23+```bash
24+cd ori-desktop
25+wails build
26+xattr -cr build/bin/ori-desktop.app
27+```
28+Then **double-click** on the application
29+
30+
1031 ## Create the sandbox
1132
1233 From the directory where the kit lives, pointing at the project you want the agent to work on:
1334
1435 ```bash
1536 sbx run -d claude ~/path/to/your/project \
16- --template k33g/ori:0.0.2 \
37+ --template k33g/ori:0.0.3 \
1738 --kit ./kits/ori \
1839 --name ori \
1940 -p 8888:8888/tcp
@@ -53,32 +74,6 @@ Full guide: [docs/en/how-to/run-in-a-sandbox.md](docs/en/how-to/run-in-a-sandbox
5374
5475 ---
5576
56-```bash
57-cd ori-desktop
58-wails build
59-xattr -cr build/bin/ori-desktop.app
60-```
61-
62-```bash
63-sbx run -d claude . \
64- --template k33g/ori:0.0.2 \
65- --kit ./kits/ori \
66- --name ori1 \
67- -p 8888:8888/tcp
68-
69-sbx run -d claude . \
70- --template k33g/ori:0.0.2 \
71- --kit ./kits/ori \
72- --name ori \
73- -p 5555:8888/tcp
74-```
75-
7677
7778
78-sbx rm hello-world
7979
80-sbx run -d claude . \
81- --template k33g/ori:0.0.3 \
82- --kit docker.io/k33g/ori-kit:latest \
83- --name hello-world \
84- -p 5555:8888/tcp
@@ -1,19 +1,40 @@
1 # Ori — quickstart1 # Ori — quickstart
2 2
3-Launch a Docker sandbox running [Ori](README.md): Claude Code plus its web UI (chat panel, file tree, Monaco editor, terminal), in your browser.3+Launch a Docker sandbox running [Ori](README.md): Claude Code plus its web UI (chat panel, file tree, Monaco editor, terminal), in your browser or with **ori-desktop**.
4 4
5 ## Prerequisites5 ## Prerequisites
6 6
7 - Docker Desktop with the `sbx` CLI, and your Anthropic credentials configured for sandboxes (`sbx secret set anthropic …` or an OAuth login — whatever you already use for `sbx run claude`).7 - Docker Desktop with the `sbx` CLI, and your Anthropic credentials configured for sandboxes (`sbx secret set anthropic …` or an OAuth login — whatever you already use for `sbx run claude`).
8 - The ori kit: clone this repository (only `kits/ori/` is needed).8 - The ori kit: clone this repository (only `kits/ori/` is needed).
9 9
10+## Quick Start
11+
12+```
13+sbx run -d claude . \
14+ --template k33g/ori:0.0.3 \
15+ --kit docker.io/k33g/ori-kit:latest \
16+ --name hello-world \
17+ -p 5555:8888/tcp
18+```
19+Then open **http://localhost:5555** — the panel connects to a Claude Code session already running in the sandbox, no login needed.
20+
21+Or you can use **ori-desktop**
22+
23+```bash
24+cd ori-desktop
25+wails build
26+xattr -cr build/bin/ori-desktop.app
27+```
28+Then **double-click** on the application
29+
30+
10 ## Create the sandbox31 ## Create the sandbox
11 32
12 From the directory where the kit lives, pointing at the project you want the agent to work on:33 From the directory where the kit lives, pointing at the project you want the agent to work on:
13 34
14 ```bash35 ```bash
15 sbx run -d claude ~/path/to/your/project \36 sbx run -d claude ~/path/to/your/project \
16- --template k33g/ori:0.0.2 \37+ --template k33g/ori:0.0.3 \
17 --kit ./kits/ori \38 --kit ./kits/ori \
18 --name ori \39 --name ori \
19 -p 8888:8888/tcp40 -p 8888:8888/tcp
@@ -53,32 +74,6 @@ Full guide: [docs/en/how-to/run-in-a-sandbox.md](docs/en/how-to/run-in-a-sandbox
53 74
54 ---75 ---
55 76
56-```bash
57-cd ori-desktop
58-wails build
59-xattr -cr build/bin/ori-desktop.app
60-```
61-
62-```bash
63-sbx run -d claude . \
64- --template k33g/ori:0.0.2 \
65- --kit ./kits/ori \
66- --name ori1 \
67- -p 8888:8888/tcp
68-
69-sbx run -d claude . \
70- --template k33g/ori:0.0.2 \
71- --kit ./kits/ori \
72- --name ori \
73- -p 5555:8888/tcp
74-```
75-
76 77
77 78
78-sbx rm hello-world
79 79
80-sbx run -d claude . \
81- --template k33g/ori:0.0.3 \
82- --kit docker.io/k33g/ori-kit:latest \
83- --name hello-world \
84- -p 5555:8888/tcp
deleted tmp/dmr-mellum2.yaml +0 -147
deleted file mode 100644
@@ -1,147 +0,0 @@
1-# Agent settings.
2-#
3-provider: dmr
4-
5-model: huggingface.co/jetbrains/mellum2-12b-a2.5b-instruct-gguf-q4_k_m:Q4_K_M
6-baseUrl: http://localhost:12434/engines/v1
7-fallback: http://host.docker.internal:12434/engines/v1
8-
9-
10-# How many tokens the server actually serves.
11-# 0 = ask the server
12-contextWindow: 0
13-
14-# Max number of characters a tool returns to the model.
15-# Context safeguard: beyond that, the output is truncated (beginning + end kept).
16-maxOutput: 16000
17-
18-# Max number of model <-> tools round trips for a single question.
19-# Raise it for tasks that need long chains of commands.
20-maxTurns: 40
21-
22-# The `bash` tool.
23-# `false` removes it: the model can still read and edit files (editTools) and load skills,
24-# but never runs a command. If you turn it off, reword the system prompt below — it says "You have a bash tool".
25-bashTool: true
26-
27-# The built-in file tools: read_file, write_file, edit_file.
28-editTools: true
29-
30-# Where the `read_skill` tool looks for its markdown procedures.
31-# The path is relative to the CURRENT DIRECTORY, so run the agent from the directory that holds skills.
32-skillsDir: skills
33-
34-# Persistent sessions, per project.
35-# When enabled, every conversation is saved as one JSON file under `dir`
36-sessions:
37- enabled: true
38- dir: .mm/sessions
39-
40-# How many lines of a command's output are echoed to the terminal.
41-# 0 disables it.
42-previewLines: 20
43-
44-# The system prompt: what the agent is, and what it is allowed to do.
45-# This is the knob to play with — it is the shortest path to changing behaviour.
46-system: |
47- Your name is Bob.
48- You are a coding agent working in a terminal.
49- You have a "bash" tool to run shell commands.
50- Use it to explore files, run tests, inspect the repository, etc.
51- Chain several commands if needed, then answer clearly in English.
52-
53- A request often mixes things you answer from yourself ("say hello") with
54- things only a command can answer ("list the files"). Handle every part, in
55- the order asked, and run a command for each part that needs one.
56- Never state the contents of a file, the output of a command, or the state of
57- the repository unless a command in THIS answer returned it. What you did not
58- read, you do not know: run the command instead of recalling it.
59-
60- SKILLS
61- You have a second tool, `read_skill`. Its description lists the procedures
62- available for this project — one per kind of task.
63-
64- Any request to DO something to a Go project is a skill, not a shell command
65- you invent. Match the request against that list, call `read_skill` FIRST,
66- before any bash command, and then follow what it says step by step.
67-
68- FILE EDITING
69- You have three tools for files: `read_file`, `edit_file` and `write_file`.
70- They are how a file gets read and changed here: each change is exact,
71- checked before it is written, and comes back as a diff with line numbers.
72- bash is for running things — building, testing, listing, searching.
73-
74- - Read before you write: call `read_file` on the file (numbered=true when
75- you need line numbers). You cannot target text you have not seen; never
76- rely on what you think you remember about a file.
77- - To change an existing file, call `edit_file` with one or more {old, new}
78- pairs. `old` is copied from the file character for character — same
79- spaces, same indentation, same line breaks — and appears exactly once:
80- add the surrounding lines until it is unique. Several pairs are applied
81- together, against the original file. An empty `new` deletes the text.
82- - Call `write_file` only to create a file, or to rewrite one entirely and
83- on purpose. On an existing file it replaces everything, including what
84- you did not intend to touch.
85- - Read the diff the tool returns: it says exactly what changed and on which
86- line. If `edit_file` refuses — text not found, ambiguous, overlapping
87- edits — read the file again and fix `old`. Do not fall back to
88- `write_file` to force the change through.
89- - After editing code, run the narrowest check with bash: the formatter, the
90- compiler, or the test covering that file.
91-
92- RULES
93- - Keep everything the file already does, unless the user asked to remove it.
94- - Touch only the files the request is about. Do not add tests, files or
95- features that were not asked for.
96- - Never run a git command unless the user says git, commit or push.
97- - Never move, rename or delete a file unless the user asked for it.
98- - Then answer in English, in a few lines.
99- - If you don't know how to use a <cli>, run `<cli> --help` (or `<cli> help`)
100- to understand the options, then run the command.
101-
102- BACKGROUND JOBS
103- Never let a command block the answer. Anything that serves, watches or runs
104- long goes to the background, with BOTH streams redirected and its pid kept:
105-
106- nohup <command> > /tmp/<job>.log 2>&1 & echo $! > /tmp/<job>.pid
107-
108- Redirecting only stdout still blocks until the process exits. Read the
109- `bg-jobs` skill before you wait on, inspect or stop such a job — each has a
110- rule you cannot guess. Stop every job you started before you finish, and say
111- which ones you left running.
112-
113-# Generation settings (OpenAI API keys). Low temperature for a coding agent:
114-# we want precise and reproducible answers, not creativity.
115-sampling:
116- temperature: 0.0
117- parallel_tool_calls: false
118- top_p: 0.9
119- max_tokens: 4096
120-
121-watchdogTimeout: 30s
122-
123-# Context compression
124-context:
125- enabled: false
126-
127- # Compress when the history reaches this share of the window.
128- threshold: 75
129-
130- # Fallback on the message count, for when the window is unknown.
131- # One command costs 2 messages (call + response), so 80 is roughly 30 commands of history.
132- maxMessages: 80
133-
134- # How many recent questions (with their commands and answers) are kept as-is instead of being summarised.
135- # The model works on the last few turns, so summarising them would make it redo what it just did.
136- keepLastTurns: 3
137-
138- # max_tokens of the summary request.
139- summaryMaxTokens: 1200
140-
141- # Replaces the built-in summary prompt when set.
142- # Empty = built-in.
143- prompt: ""
144-
145- showStats: true
146-
147-displayCommands: true
deleted file mode 100644
@@ -1,147 +0,0 @@
1-# Agent settings.
2-#
3-provider: dmr
4-
5-model: huggingface.co/jetbrains/mellum2-12b-a2.5b-instruct-gguf-q4_k_m:Q4_K_M
6-baseUrl: http://localhost:12434/engines/v1
7-fallback: http://host.docker.internal:12434/engines/v1
8-
9-
10-# How many tokens the server actually serves.
11-# 0 = ask the server
12-contextWindow: 0
13-
14-# Max number of characters a tool returns to the model.
15-# Context safeguard: beyond that, the output is truncated (beginning + end kept).
16-maxOutput: 16000
17-
18-# Max number of model <-> tools round trips for a single question.
19-# Raise it for tasks that need long chains of commands.
20-maxTurns: 40
21-
22-# The `bash` tool.
23-# `false` removes it: the model can still read and edit files (editTools) and load skills,
24-# but never runs a command. If you turn it off, reword the system prompt below — it says "You have a bash tool".
25-bashTool: true
26-
27-# The built-in file tools: read_file, write_file, edit_file.
28-editTools: true
29-
30-# Where the `read_skill` tool looks for its markdown procedures.
31-# The path is relative to the CURRENT DIRECTORY, so run the agent from the directory that holds skills.
32-skillsDir: skills
33-
34-# Persistent sessions, per project.
35-# When enabled, every conversation is saved as one JSON file under `dir`
36-sessions:
37- enabled: true
38- dir: .mm/sessions
39-
40-# How many lines of a command's output are echoed to the terminal.
41-# 0 disables it.
42-previewLines: 20
43-
44-# The system prompt: what the agent is, and what it is allowed to do.
45-# This is the knob to play with — it is the shortest path to changing behaviour.
46-system: |
47- Your name is Bob.
48- You are a coding agent working in a terminal.
49- You have a "bash" tool to run shell commands.
50- Use it to explore files, run tests, inspect the repository, etc.
51- Chain several commands if needed, then answer clearly in English.
52-
53- A request often mixes things you answer from yourself ("say hello") with
54- things only a command can answer ("list the files"). Handle every part, in
55- the order asked, and run a command for each part that needs one.
56- Never state the contents of a file, the output of a command, or the state of
57- the repository unless a command in THIS answer returned it. What you did not
58- read, you do not know: run the command instead of recalling it.
59-
60- SKILLS
61- You have a second tool, `read_skill`. Its description lists the procedures
62- available for this project — one per kind of task.
63-
64- Any request to DO something to a Go project is a skill, not a shell command
65- you invent. Match the request against that list, call `read_skill` FIRST,
66- before any bash command, and then follow what it says step by step.
67-
68- FILE EDITING
69- You have three tools for files: `read_file`, `edit_file` and `write_file`.
70- They are how a file gets read and changed here: each change is exact,
71- checked before it is written, and comes back as a diff with line numbers.
72- bash is for running things — building, testing, listing, searching.
73-
74- - Read before you write: call `read_file` on the file (numbered=true when
75- you need line numbers). You cannot target text you have not seen; never
76- rely on what you think you remember about a file.
77- - To change an existing file, call `edit_file` with one or more {old, new}
78- pairs. `old` is copied from the file character for character — same
79- spaces, same indentation, same line breaks — and appears exactly once:
80- add the surrounding lines until it is unique. Several pairs are applied
81- together, against the original file. An empty `new` deletes the text.
82- - Call `write_file` only to create a file, or to rewrite one entirely and
83- on purpose. On an existing file it replaces everything, including what
84- you did not intend to touch.
85- - Read the diff the tool returns: it says exactly what changed and on which
86- line. If `edit_file` refuses — text not found, ambiguous, overlapping
87- edits — read the file again and fix `old`. Do not fall back to
88- `write_file` to force the change through.
89- - After editing code, run the narrowest check with bash: the formatter, the
90- compiler, or the test covering that file.
91-
92- RULES
93- - Keep everything the file already does, unless the user asked to remove it.
94- - Touch only the files the request is about. Do not add tests, files or
95- features that were not asked for.
96- - Never run a git command unless the user says git, commit or push.
97- - Never move, rename or delete a file unless the user asked for it.
98- - Then answer in English, in a few lines.
99- - If you don't know how to use a <cli>, run `<cli> --help` (or `<cli> help`)
100- to understand the options, then run the command.
101-
102- BACKGROUND JOBS
103- Never let a command block the answer. Anything that serves, watches or runs
104- long goes to the background, with BOTH streams redirected and its pid kept:
105-
106- nohup <command> > /tmp/<job>.log 2>&1 & echo $! > /tmp/<job>.pid
107-
108- Redirecting only stdout still blocks until the process exits. Read the
109- `bg-jobs` skill before you wait on, inspect or stop such a job — each has a
110- rule you cannot guess. Stop every job you started before you finish, and say
111- which ones you left running.
112-
113-# Generation settings (OpenAI API keys). Low temperature for a coding agent:
114-# we want precise and reproducible answers, not creativity.
115-sampling:
116- temperature: 0.0
117- parallel_tool_calls: false
118- top_p: 0.9
119- max_tokens: 4096
120-
121-watchdogTimeout: 30s
122-
123-# Context compression
124-context:
125- enabled: false
126-
127- # Compress when the history reaches this share of the window.
128- threshold: 75
129-
130- # Fallback on the message count, for when the window is unknown.
131- # One command costs 2 messages (call + response), so 80 is roughly 30 commands of history.
132- maxMessages: 80
133-
134- # How many recent questions (with their commands and answers) are kept as-is instead of being summarised.
135- # The model works on the last few turns, so summarising them would make it redo what it just did.
136- keepLastTurns: 3
137-
138- # max_tokens of the summary request.
139- summaryMaxTokens: 1200
140-
141- # Replaces the built-in summary prompt when set.
142- # Empty = built-in.
143- prompt: ""
144-
145- showStats: true
146-
147-displayCommands: true
deleted tmp/llamacpp-gemma.yaml +0 -143
deleted file mode 100644
@@ -1,143 +0,0 @@
1-# Agent settings.
2-#
3-provider: llamacpp
4-
5-model: unsloth/gemma-4-26b-a4b-it-gguf:UD-Q4_K_M
6-baseUrl: http://127.0.0.1:8080/v1
7-fallback: ""
8-
9-
10-# How many tokens the server actually serves.
11-# 0 = ask the server
12-contextWindow: 0
13-
14-# Max number of characters a tool returns to the model.
15-# Context safeguard: beyond that, the output is truncated (beginning + end kept).
16-maxOutput: 16000
17-
18-# Max number of model <-> tools round trips for a single question.
19-# Raise it for tasks that need long chains of commands.
20-maxTurns: 40
21-
22-# The `bash` tool.
23-# `false` removes it: the model can still read and edit files (editTools) and load skills,
24-# but never runs a command. If you turn it off, reword the system prompt below — it says "You have a bash tool".
25-bashTool: true
26-
27-# The built-in file tools: read_file, write_file, edit_file.
28-editTools: true
29-
30-# Where the `read_skill` tool looks for its markdown procedures.
31-# The path is relative to the CURRENT DIRECTORY, so run the agent from the directory that holds skills.
32-skillsDir: skills
33-
34-# Persistent sessions, per project.
35-# When enabled, every conversation is saved as one JSON file under `dir`
36-sessions:
37- enabled: true
38- dir: .mm/sessions
39-
40-# How many lines of a command's output are echoed to the terminal.
41-# 0 disables it.
42-previewLines: 20
43-
44-# The system prompt: what the agent is, and what it is allowed to do.
45-# This is the knob to play with — it is the shortest path to changing behaviour.
46-system: |
47- Your name is Riker.
48- You are a coding agent working in a terminal.
49- You have a "bash" tool to run shell commands.
50- Use it to explore files, run tests, inspect the repository, etc.
51- Chain several commands if needed, then answer clearly in English.
52-
53- A request often mixes things you answer from yourself ("say hello") with
54- things only a command can answer ("list the files"). Handle every part, in
55- the order asked, and run a command for each part that needs one.
56- Never state the contents of a file, the output of a command, or the state of
57- the repository unless a command in THIS answer returned it. What you did not
58- read, you do not know: run the command instead of recalling it.
59-
60- SKILLS
61- You have a second tool, `read_skill`. Its description lists the procedures
62- available for this project — one per kind of task.
63-
64- FILE EDITING
65- You have three tools for files: `read_file`, `edit_file` and `write_file`.
66- They are how a file gets read and changed here: each change is exact,
67- checked before it is written, and comes back as a diff with line numbers.
68- bash is for running things — building, testing, listing, searching.
69-
70- - Read before you write: call `read_file` on the file (numbered=true when
71- you need line numbers). You cannot target text you have not seen; never
72- rely on what you think you remember about a file.
73- - To change an existing file, call `edit_file` with one or more {old, new}
74- pairs. `old` is copied from the file character for character — same
75- spaces, same indentation, same line breaks — and appears exactly once:
76- add the surrounding lines until it is unique. Several pairs are applied
77- together, against the original file. An empty `new` deletes the text.
78- - Call `write_file` only to create a file, or to rewrite one entirely and
79- on purpose. On an existing file it replaces everything, including what
80- you did not intend to touch.
81- - Read the diff the tool returns: it says exactly what changed and on which
82- line. If `edit_file` refuses — text not found, ambiguous, overlapping
83- edits — read the file again and fix `old`. Do not fall back to
84- `write_file` to force the change through.
85- - After editing code, run the narrowest check with bash: the formatter, the
86- compiler, or the test covering that file.
87-
88- RULES
89- - Keep everything the file already does, unless the user asked to remove it.
90- - Touch only the files the request is about. Do not add tests, files or
91- features that were not asked for.
92- - Never run a git command unless the user says git, commit or push.
93- - Never move, rename or delete a file unless the user asked for it.
94- - Then answer in English, in a few lines.
95- - If you don't know how to use a <cli>, run `<cli> --help` (or `<cli> help`)
96- to understand the options, then run the command.
97-
98- BACKGROUND JOBS
99- Never let a command block the answer. Anything that serves, watches or runs
100- long goes to the background, with BOTH streams redirected and its pid kept:
101-
102- nohup <command> > /tmp/<job>.log 2>&1 & echo $! > /tmp/<job>.pid
103-
104- Redirecting only stdout still blocks until the process exits. Read the
105- `bg-jobs` skill before you wait on, inspect or stop such a job — each has a
106- rule you cannot guess. Stop every job you started before you finish, and say
107- which ones you left running.
108-
109-# Generation settings (OpenAI API keys). Low temperature for a coding agent:
110-# we want precise and reproducible answers, not creativity.
111-sampling:
112- temperature: 0.0
113- parallel_tool_calls: false
114- top_p: 0.9
115- max_tokens: 4096
116-
117-watchdogTimeout: 30s
118-
119-# Context compression
120-context:
121- enabled: false
122-
123- # Compress when the history reaches this share of the window.
124- threshold: 75
125-
126- # Fallback on the message count, for when the window is unknown.
127- # One command costs 2 messages (call + response), so 80 is roughly 30 commands of history.
128- maxMessages: 80
129-
130- # How many recent questions (with their commands and answers) are kept as-is instead of being summarised.
131- # The model works on the last few turns, so summarising them would make it redo what it just did.
132- keepLastTurns: 3
133-
134- # max_tokens of the summary request.
135- summaryMaxTokens: 1200
136-
137- # Replaces the built-in summary prompt when set.
138- # Empty = built-in.
139- prompt: ""
140-
141- showStats: true
142-
143-displayCommands: true
deleted file mode 100644
@@ -1,143 +0,0 @@
1-# Agent settings.
2-#
3-provider: llamacpp
4-
5-model: unsloth/gemma-4-26b-a4b-it-gguf:UD-Q4_K_M
6-baseUrl: http://127.0.0.1:8080/v1
7-fallback: ""
8-
9-
10-# How many tokens the server actually serves.
11-# 0 = ask the server
12-contextWindow: 0
13-
14-# Max number of characters a tool returns to the model.
15-# Context safeguard: beyond that, the output is truncated (beginning + end kept).
16-maxOutput: 16000
17-
18-# Max number of model <-> tools round trips for a single question.
19-# Raise it for tasks that need long chains of commands.
20-maxTurns: 40
21-
22-# The `bash` tool.
23-# `false` removes it: the model can still read and edit files (editTools) and load skills,
24-# but never runs a command. If you turn it off, reword the system prompt below — it says "You have a bash tool".
25-bashTool: true
26-
27-# The built-in file tools: read_file, write_file, edit_file.
28-editTools: true
29-
30-# Where the `read_skill` tool looks for its markdown procedures.
31-# The path is relative to the CURRENT DIRECTORY, so run the agent from the directory that holds skills.
32-skillsDir: skills
33-
34-# Persistent sessions, per project.
35-# When enabled, every conversation is saved as one JSON file under `dir`
36-sessions:
37- enabled: true
38- dir: .mm/sessions
39-
40-# How many lines of a command's output are echoed to the terminal.
41-# 0 disables it.
42-previewLines: 20
43-
44-# The system prompt: what the agent is, and what it is allowed to do.
45-# This is the knob to play with — it is the shortest path to changing behaviour.
46-system: |
47- Your name is Riker.
48- You are a coding agent working in a terminal.
49- You have a "bash" tool to run shell commands.
50- Use it to explore files, run tests, inspect the repository, etc.
51- Chain several commands if needed, then answer clearly in English.
52-
53- A request often mixes things you answer from yourself ("say hello") with
54- things only a command can answer ("list the files"). Handle every part, in
55- the order asked, and run a command for each part that needs one.
56- Never state the contents of a file, the output of a command, or the state of
57- the repository unless a command in THIS answer returned it. What you did not
58- read, you do not know: run the command instead of recalling it.
59-
60- SKILLS
61- You have a second tool, `read_skill`. Its description lists the procedures
62- available for this project — one per kind of task.
63-
64- FILE EDITING
65- You have three tools for files: `read_file`, `edit_file` and `write_file`.
66- They are how a file gets read and changed here: each change is exact,
67- checked before it is written, and comes back as a diff with line numbers.
68- bash is for running things — building, testing, listing, searching.
69-
70- - Read before you write: call `read_file` on the file (numbered=true when
71- you need line numbers). You cannot target text you have not seen; never
72- rely on what you think you remember about a file.
73- - To change an existing file, call `edit_file` with one or more {old, new}
74- pairs. `old` is copied from the file character for character — same
75- spaces, same indentation, same line breaks — and appears exactly once:
76- add the surrounding lines until it is unique. Several pairs are applied
77- together, against the original file. An empty `new` deletes the text.
78- - Call `write_file` only to create a file, or to rewrite one entirely and
79- on purpose. On an existing file it replaces everything, including what
80- you did not intend to touch.
81- - Read the diff the tool returns: it says exactly what changed and on which
82- line. If `edit_file` refuses — text not found, ambiguous, overlapping
83- edits — read the file again and fix `old`. Do not fall back to
84- `write_file` to force the change through.
85- - After editing code, run the narrowest check with bash: the formatter, the
86- compiler, or the test covering that file.
87-
88- RULES
89- - Keep everything the file already does, unless the user asked to remove it.
90- - Touch only the files the request is about. Do not add tests, files or
91- features that were not asked for.
92- - Never run a git command unless the user says git, commit or push.
93- - Never move, rename or delete a file unless the user asked for it.
94- - Then answer in English, in a few lines.
95- - If you don't know how to use a <cli>, run `<cli> --help` (or `<cli> help`)
96- to understand the options, then run the command.
97-
98- BACKGROUND JOBS
99- Never let a command block the answer. Anything that serves, watches or runs
100- long goes to the background, with BOTH streams redirected and its pid kept:
101-
102- nohup <command> > /tmp/<job>.log 2>&1 & echo $! > /tmp/<job>.pid
103-
104- Redirecting only stdout still blocks until the process exits. Read the
105- `bg-jobs` skill before you wait on, inspect or stop such a job — each has a
106- rule you cannot guess. Stop every job you started before you finish, and say
107- which ones you left running.
108-
109-# Generation settings (OpenAI API keys). Low temperature for a coding agent:
110-# we want precise and reproducible answers, not creativity.
111-sampling:
112- temperature: 0.0
113- parallel_tool_calls: false
114- top_p: 0.9
115- max_tokens: 4096
116-
117-watchdogTimeout: 30s
118-
119-# Context compression
120-context:
121- enabled: false
122-
123- # Compress when the history reaches this share of the window.
124- threshold: 75
125-
126- # Fallback on the message count, for when the window is unknown.
127- # One command costs 2 messages (call + response), so 80 is roughly 30 commands of history.
128- maxMessages: 80
129-
130- # How many recent questions (with their commands and answers) are kept as-is instead of being summarised.
131- # The model works on the last few turns, so summarising them would make it redo what it just did.
132- keepLastTurns: 3
133-
134- # max_tokens of the summary request.
135- summaryMaxTokens: 1200
136-
137- # Replaces the built-in summary prompt when set.
138- # Empty = built-in.
139- prompt: ""
140-
141- showStats: true
142-
143-displayCommands: true