forked from bots-garden/ori
🛟 Updated.
3506175 parent: 55d4c9e modified
README.md +23 -3 | @@ -3,7 +3,29 @@ | ||
| 3 | 3 | |
| 4 | 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 start | |
| 6 | + | |
| 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 | 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 | 36 | --name hello-ori \ |
| 15 | 37 | -p 3000:8888/tcp |
| 16 | 38 | |
| 17 | - | |
| 18 | - | |
| 19 | 39 | sbx run -d claude . \ |
| 20 | 40 | --template k33g/ori:0.0.2 \ |
| 21 | 41 | --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 start | 6 | + |
| 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/tcp | 37 | -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 differ | Binary files /dev/null and b/assets/ori-desktop.png differ | ||
modified
quickstart.md +23 -28 | @@ -1,19 +1,40 @@ | ||
| 1 | 1 | # 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 | 5 | ## Prerequisites |
| 6 | 6 | |
| 7 | 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 | 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 | 31 | ## Create the sandbox |
| 11 | 32 | |
| 12 | 33 | From the directory where the kit lives, pointing at the project you want the agent to work on: |
| 13 | 34 | |
| 14 | 35 | ```bash |
| 15 | 36 | sbx run -d claude ~/path/to/your/project \ |
| 16 | - --template k33g/ori:0.0.2 \ | |
| 37 | + --template k33g/ori:0.0.3 \ | |
| 17 | 38 | --kit ./kits/ori \ |
| 18 | 39 | --name ori \ |
| 19 | 40 | -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 | |
| @@ -1,19 +1,40 @@ | |||
| 1 | # Ori — quickstart | 1 | # 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 | ## Prerequisites | 5 | ## 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 sandbox | 31 | ## 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 | ```bash | 35 | ```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/tcp | 40 | -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 | ||