mini-coder 0.0.17 → 0.0.19

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/docs/configs.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # Config conventions
2
2
 
3
- mini-coder supports both its native `.agents` convention and Claude Code's `.claude` convention for commands and skills.
3
+ mini-coder supports both its native `.agents` convention and `.claude` layouts for commands, skills, and agents.
4
4
 
5
5
  ## Supported config roots
6
6
 
7
7
  | Root | Purpose |
8
8
  |---|---|
9
9
  | `.agents/` | mini-coder native config |
10
- | `.claude/` | Claude Code-compatible commands/skills |
10
+ | `.claude/` | Alternate config layout supported by mini-coder |
11
11
 
12
12
  Each root can exist in:
13
13
 
@@ -58,20 +58,52 @@ Skill instructions/content.
58
58
 
59
59
  If `name` is omitted, folder name is used.
60
60
 
61
- ## Agents (mini-coder specific)
61
+ ## Agents
62
62
 
63
- Custom subagents are configured in `.agents`:
63
+ Supported locations:
64
64
 
65
65
  - `./.agents/agents/*.md`
66
66
  - `~/.agents/agents/*.md`
67
+ - `./.claude/agents/*.md`
68
+ - `~/.claude/agents/*.md`
69
+
70
+ Format:
71
+
72
+ ```md
73
+ ---
74
+ description: Optional help text
75
+ model: optional/model-override
76
+ mode: optional agent mode
77
+ ---
78
+
79
+ Agent system prompt.
80
+ ```
81
+
82
+ ## Context files
83
+
84
+ mini-coder loads at most one global context file and at most one local context file, then includes both when present.
85
+
86
+ Global lookup order:
87
+
88
+ 1. `~/.agents/AGENTS.md`
89
+ 2. `~/.agents/CLAUDE.md`
90
+
91
+ Local lookup order:
92
+
93
+ 1. `./.agents/AGENTS.md`
94
+ 2. `./CLAUDE.md`
95
+ 3. `./AGENTS.md`
96
+
97
+ Injection order:
67
98
 
68
- (There is no `.claude` compatibility path for agents. Claude doesn't have custom subagents)
99
+ 1. Global context (if found)
100
+ 2. Local context (if found)
69
101
 
70
102
  ## Precedence and conflicts
71
103
 
72
- Precedence rules:
104
+ Precedence rules for commands, skills, and agents:
73
105
 
74
106
  1. **Local overrides global**
75
- 2. At the **same scope** (both local or both global), if `.agents` and `.claude` define the same command/skill name, **`.agents` wins**
107
+ 2. At the **same scope** (both local or both global), if `.agents` and `.claude` define the same name, **`.agents` wins**
76
108
 
77
- When same-scope conflicts are detected for commands/skills, mini-coder prints a warning and uses the `.agents` version.
109
+ When same-scope conflicts are detected for commands, skills, or agents, mini-coder prints a warning and uses the `.agents` version.
@@ -1,7 +1,7 @@
1
1
  # Custom Agents
2
2
 
3
- An agent is a subagent with a custom system prompt and optional model override.
4
- Use `@agent-name` anywhere in your prompt to route the message through it.
3
+ A custom agent is a reusable system prompt with an optional model override.
4
+ You can activate one with `/agent <name>`, and non-`primary` agents are also exposed to the `subagent` tool.
5
5
 
6
6
  ## Where to put them
7
7
 
@@ -9,8 +9,10 @@ Use `@agent-name` anywhere in your prompt to route the message through it.
9
9
  |---|---|
10
10
  | `.agents/agents/*.md` | Current repo only |
11
11
  | `~/.agents/agents/*.md` | All projects (global) |
12
+ | `.claude/agents/*.md` | Current repo only (`.claude` layout) |
13
+ | `~/.claude/agents/*.md` | All projects (global, `.claude` layout) |
12
14
 
13
- Local agents override global ones with the same name.
15
+ Local agents override global ones with the same name. At the same scope, `.agents` wins over `.claude`.
14
16
 
15
17
  ## Create an agent
16
18
 
@@ -33,12 +35,11 @@ No flattery. End with a one-line verdict.
33
35
  Then in the REPL:
34
36
 
35
37
  ```
36
- @reviewer review the auth module for race conditions
38
+ /agent reviewer
39
+ review the auth module for race conditions
37
40
  ```
38
41
 
39
- The rest of the message (everything except the `@reviewer` token) becomes
40
- the prompt. The agent runs in its own context window and returns its output
41
- into the conversation.
42
+ You can also mention `@reviewer` in a prompt as a naming convention, and agent names participate in `@` tab completion alongside skills and files.
42
43
 
43
44
  ## Frontmatter fields
44
45
 
@@ -46,22 +47,22 @@ into the conversation.
46
47
  |---|---|---|
47
48
  | `description` | No | Shown in `/help`. Defaults to filename. |
48
49
  | `model` | No | Override the active model for this agent. |
49
- | `mode` | No | `primary` interactive only (via `/agent <name>`); `subagent` callable via the `subagent` tool only (default); `all` both. |
50
-
50
+ | `mode` | No | Controls whether the agent is exposed through the `subagent` tool. `primary` excludes it from that tool and is intended for `/agent`. `subagent`, `all`, and an omitted value all keep it available to the `subagent` tool. Any loaded agent can currently still be selected with `/agent <name>`. |
51
51
 
52
52
  The markdown body (after frontmatter) is the agent's system prompt.
53
53
 
54
54
  ## Combining with files
55
55
 
56
- `@file` references are resolved before the agent fires:
56
+ File references are resolved before the prompt is sent:
57
57
 
58
58
  ```
59
- @reviewer @src/auth/session.ts check this file for issues
59
+ /agent reviewer
60
+ @src/auth/session.ts check this file for issues
60
61
  ```
61
62
 
62
63
  ## Tab completion
63
64
 
64
- Type `@` and press `Tab` to autocomplete agent names alongside files.
65
+ Type `@` and press `Tab` to autocomplete agent names alongside skills and files.
65
66
 
66
67
  ## Listing agents
67
68
 
@@ -69,4 +70,4 @@ Type `@` and press `Tab` to autocomplete agent names alongside files.
69
70
  /help
70
71
  ```
71
72
 
72
- Agents are listed in magenta, tagged `(local)` or `(global)`.
73
+ Agents are listed in magenta, tagged `(local)` or `(global)`.
@@ -8,8 +8,10 @@ Custom commands let you define reusable prompts that run as `/command` in the mi
8
8
  |---|---|
9
9
  | `.agents/commands/*.md` | Current repo only |
10
10
  | `~/.agents/commands/*.md` | All projects (global) |
11
+ | `.claude/commands/*.md` | Current repo only (Claude-compatible) |
12
+ | `~/.claude/commands/*.md` | All projects (global, Claude-compatible) |
11
13
 
12
- Local commands override global ones with the same name.
14
+ Local commands override global ones with the same name. At the same scope, `.agents` wins over `.claude`.
13
15
 
14
16
  ## Create a command
15
17
 
@@ -21,7 +23,6 @@ Create a markdown file. The filename becomes the command name.
21
23
  ---
22
24
  description: Summarise what changed since yesterday
23
25
  model: zen/claude-haiku-4-5
24
-
25
26
  ---
26
27
 
27
28
  Run `!`git log --oneline --since=yesterday`` and summarise the changes
@@ -44,8 +45,6 @@ Then in the REPL:
44
45
  | `subtask` | No | Set to `true` to force subagent execution (OpenCode-compatible alias for `context: fork`). |
45
46
  | `agent` | No | Run the command under a named agent's system prompt (only applies when `context: fork`). |
46
47
 
47
-
48
-
49
48
  ## Arguments
50
49
 
51
50
  Use `$ARGUMENTS` for the full argument string, or `$1`, `$2`, … `$9` for individual tokens.
@@ -56,7 +55,6 @@ Use `$ARGUMENTS` for the full argument string, or `$1`, `$2`, … `$9` for indiv
56
55
  ---
57
56
  description: Search the codebase for a topic
58
57
  model: zen/claude-haiku-4-5
59
-
60
58
  ---
61
59
 
62
60
  Search the codebase for: $ARGUMENTS
@@ -117,7 +115,6 @@ lightweight tasks regardless of what the session is currently set to.
117
115
  ---
118
116
  description: Quick grep for a symbol
119
117
  model: zen/claude-haiku-4-5
120
-
121
118
  ---
122
119
 
123
120
  Find all usages of $ARGUMENTS across the codebase using grep and glob.
@@ -126,7 +123,6 @@ List each occurrence with file path and line number. No explanations needed.
126
123
 
127
124
  Large models for deep analysis, small models for search and lookup.
128
125
 
129
-
130
126
  ## Precedence
131
127
 
132
128
  Custom commands shadow built-ins. If you create `.agents/commands/plan.md`
@@ -134,7 +130,6 @@ it will replace the built-in `/plan` for that project. The global `/review`
134
130
  command (auto-created at `~/.agents/commands/review.md` on first run) works
135
131
  the same way — a local `.agents/commands/review.md` will override it.
136
132
 
137
-
138
133
  ## Listing commands
139
134
 
140
135
  ```
@@ -142,4 +137,4 @@ the same way — a local `.agents/commands/review.md` will override it.
142
137
  ```
143
138
 
144
139
  Custom commands are listed at the bottom under **custom commands**, tagged
145
- with `(local)` or `(global)`.
140
+ with `(local)` or `(global)`.
@@ -0,0 +1,158 @@
1
+ # MINI-CODER(1)
2
+
3
+ ## NAME
4
+ **mini-coder** (executable: `mc`) - A small, fast CLI coding agent built for developers.
5
+
6
+ ## SYNOPSIS
7
+ `mc [options] [prompt]`
8
+
9
+ ## DESCRIPTION
10
+ **mini-coder** is a developer-focused CLI coding agent. It prioritizes developer flow with no slow startup, no clunky GUI, and no vendor lock-in. It uses a minimalist terminal UI restricted to 16 ANSI colors to inherit the user's terminal theme, and is built entirely on Bun.js for maximum performance.
11
+
12
+ ## OPTIONS
13
+ **-m, --model <id>**
14
+ : Specify the model to use (e.g., `zen/claude-sonnet-4-6`).
15
+
16
+ **-c, --continue**
17
+ : Continue the most recent session.
18
+
19
+ **-r, --resume <id>**
20
+ : Resume a specific session by its ID.
21
+
22
+ **-l, --list**
23
+ : List recent sessions.
24
+
25
+ **--cwd <path>**
26
+ : Set the working directory (defaults to current directory).
27
+
28
+ **-h, --help**
29
+ : Display help information.
30
+
31
+ **[prompt]**
32
+ : Optional one-shot prompt text before entering interactive mode.
33
+
34
+ ## INTERACTIVE COMMANDS
35
+ Inside the interactive session, the following slash commands are available:
36
+
37
+ **/model**
38
+ : List all available models, indicating free models and context sizes.
39
+
40
+ **/model <id>**
41
+ : Switch to a specific model.
42
+
43
+ **/model effort <low|medium|high|xhigh|off>**
44
+ : Configure reasoning effort levels for models that support it.
45
+
46
+ **/reasoning [on|off]**
47
+ : Toggle the display of the model's reasoning/thought process.
48
+
49
+ **/context prune <off|balanced|aggressive>**
50
+ : Configure context window pruning strategies.
51
+
52
+ **/context cap <off|bytes|kb>**
53
+ : Set a hard payload cap size for tool results to avoid blowing out context.
54
+
55
+ **/cache <on|off>**
56
+ : Toggle prompt caching globally.
57
+
58
+ **/cache openai <in_memory|24h>**
59
+ : Set OpenAI prompt cache retention policies.
60
+
61
+ **/cache gemini <off|cachedContents/...>**
62
+ : Attach Google Gemini cached content.
63
+
64
+ **/plan**
65
+ : Toggle read-only planning mode.
66
+
67
+ **/ralph**
68
+ : Toggle autonomous execution looping.
69
+
70
+ **/undo**
71
+ : Revert the last turn and restore files.
72
+
73
+ **/new**
74
+ : Clear context and start a fresh session.
75
+
76
+ **/mcp list**
77
+ : List configured MCP servers.
78
+
79
+ **/mcp add <name> http <url>**
80
+ : Add an MCP server over HTTP.
81
+
82
+ **/mcp add <name> stdio <cmd> [args...]**
83
+ : Add an MCP server over stdio.
84
+
85
+ **/mcp remove <name>** (or **rm**)
86
+ : Remove an MCP server.
87
+
88
+ **/agent [name]**
89
+ : Set or clear an active primary custom agent.
90
+
91
+ **/help**
92
+ : Display command help.
93
+
94
+ **/exit, /quit, /q**
95
+ : Leave the session.
96
+
97
+ ## INLINE FEATURES
98
+ **Shell Integration**
99
+ : Prefix user prompts with `!` to run shell commands inline directly into the context.
100
+
101
+ **File & Agent Referencing**
102
+ : Prefix words with `@` to reference files, custom agents, or skills within prompts (supports tab completion).
103
+
104
+ ## BUILT-IN TOOLS
105
+ The agent has access to the following tools:
106
+ * **glob**: Discover files by glob pattern across the project.
107
+ * **grep**: Search file contents using regular expressions.
108
+ * **read**: Read file contents with line-range pagination support.
109
+ * **create**: Write a new file or completely overwrite an existing one.
110
+ * **replace**: Replace or delete targeted lines using hashline anchors.
111
+ * **insert**: Insert new lines before/after an anchor without replacing existing content.
112
+ * **shell**: Execute bash commands and capture output.
113
+ * **subagent**: Spawn a focused mini-agent with a prompt.
114
+ * **webSearch**: Search the internet (requires EXA key).
115
+ * **webContent**: Fetch full page content from a URL (requires EXA key).
116
+
117
+ ## ENVIRONMENT
118
+ **OPENCODE_API_KEY**
119
+ : OpenCode Zen API key (Recommended provider).
120
+
121
+ **ANTHROPIC_API_KEY**
122
+ : Direct Anthropic API key.
123
+
124
+ **OPENAI_API_KEY**
125
+ : Direct OpenAI API key.
126
+
127
+ **GOOGLE_API_KEY** (or **GEMINI_API_KEY**)
128
+ : Direct Google Gemini API key.
129
+
130
+ **OLLAMA_BASE_URL**
131
+ : Ollama local base URL (Defaults to `http://localhost:11434`).
132
+
133
+ **EXA_API_KEY**
134
+ : Enables built-in `webSearch` and `webContent` tools.
135
+
136
+ ## FILES & DIRECTORIES
137
+ **~/.config/mini-coder/**
138
+ : Application data directory. Contains `sessions.db` (SQLite database for session history, tool snapshots, MCP server configs, and model metadata), `api.log`, and `errors.log`.
139
+
140
+ **.agents/ or .claude/ (Local or Global in ~/)**
141
+ : Configuration directories for advanced features:
142
+ * **commands/*.md**: Custom slash commands.
143
+ * **agents/*.md**: Custom behavioral wrappers or subagents.
144
+ * **skills/<name>/SKILL.md**: Isolated context/instruction snippets.
145
+ * **hooks/post-<tool>**: Executable scripts triggered upon tool execution.
146
+
147
+ **AGENTS.md / CLAUDE.md**
148
+ : Auto-loaded system context files for project-specific instructions.
149
+
150
+ ## CORE FEATURES & ARCHITECTURE
151
+ * **Multi-Provider LLM Routing**: Automatically discovers API keys to route to OpenCode (Zen), Anthropic, OpenAI, Google/Gemini, or local Ollama instances.
152
+ * **Session Memory**: Persists conversation history in a local SQLite database, allowing users to resume past sessions effortlessly.
153
+ * **Subagent Delegation**: Includes a tool to spawn parallel instances of itself to tackle independent subtasks simultaneously (up to 10 levels deep).
154
+ * **Autonomous Mode (Ralph)**: An autonomous looping mode that runs tasks in an isolated context loop (up to 20 iterations) until completion.
155
+ * **Plan Mode**: A read-only thinking mode utilizing read tools + MCP, safely analyzing code without making mutations or executing shell commands.
156
+ * **Model Context Protocol (MCP)**: Native support for connecting external tools via MCP servers over HTTP or stdio.
157
+ * **Prompt Caching**: Configurable caching behaviors for supported providers (OpenAI, Gemini).
158
+ * **Undo Functionality**: Roll back the last conversation turn, cleanly restoring previous file states and git history via snapshots.
package/docs/skills.md CHANGED
@@ -15,8 +15,10 @@ Each skill is a folder containing a `SKILL.md`:
15
15
  |---|---|
16
16
  | `.agents/skills/<name>/SKILL.md` | Current repo only |
17
17
  | `~/.agents/skills/<name>/SKILL.md` | All projects (global) |
18
+ | `.claude/skills/<name>/SKILL.md` | Current repo only (Claude-compatible) |
19
+ | `~/.claude/skills/<name>/SKILL.md` | All projects (global, Claude-compatible) |
18
20
 
19
- Local skills override global ones with the same name.
21
+ Local skills override global ones with the same name. At the same scope, `.agents` wins over `.claude`.
20
22
 
21
23
  ## Create a skill
22
24
 
@@ -60,7 +62,7 @@ included in the message sent to the LLM.
60
62
 
61
63
  ## Tab completion
62
64
 
63
- Type `@` and press `Tab` to autocomplete skill names alongside files.
65
+ Type `@` and press `Tab` to autocomplete skill names alongside agents and files.
64
66
 
65
67
  ## Listing skills
66
68
 
@@ -68,4 +70,4 @@ Type `@` and press `Tab` to autocomplete skill names alongside files.
68
70
  /help
69
71
  ```
70
72
 
71
- Skills are listed in yellow, tagged `(local)` or `(global)`.
73
+ Skills are listed in yellow, tagged `(local)` or `(global)`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mini-coder",
3
- "version": "0.0.17",
3
+ "version": "0.0.19",
4
4
  "description": "A small, fast CLI coding agent",
5
5
  "module": "src/index.ts",
6
6
  "type": "module",
@@ -1,68 +0,0 @@
1
- # ChatGPT/Codex subscription auth notes
2
-
3
- mini-coder does **not** currently support logging in with a ChatGPT Plus/Pro/Codex subscription.
4
-
5
- ## Why
6
-
7
- We looked at two implementations:
8
-
9
- - OpenCode in `/tmp/opencode-src`
10
- - official Codex in `/tmp/openai-codex/codex-rs`
11
-
12
- Both rely on OpenAI **first-party/private** auth and backend APIs rather than a documented public developer API.
13
-
14
- ## What those implementations do
15
-
16
- ### Auth
17
-
18
- They use OAuth-like flows against `https://auth.openai.com`, including:
19
-
20
- - browser login with PKCE and a localhost callback server
21
- - device-code / headless login
22
- - refresh tokens via `POST /oauth/token`
23
-
24
- Both also rely on a hardcoded first-party client id embedded in their source trees.
25
-
26
- Examples:
27
-
28
- - official Codex: `/tmp/openai-codex/codex-rs/core/src/auth.rs`
29
- - OpenCode: `/tmp/opencode-src/packages/opencode/src/plugin/codex.ts`
30
-
31
- ### Runtime API
32
-
33
- After login, requests are sent to ChatGPT backend endpoints such as:
34
-
35
- - `https://chatgpt.com/backend-api/codex`
36
- - `https://chatgpt.com/backend-api/codex/responses`
37
-
38
- with headers like:
39
-
40
- - `Authorization: Bearer <oauth access token>`
41
- - `ChatGPT-Account-Id: <account id>`
42
-
43
- Examples:
44
-
45
- - official Codex: `/tmp/openai-codex/codex-rs/core/src/model_provider_info.rs`
46
- - official Codex headers: `/tmp/openai-codex/codex-rs/backend-client/src/client.rs`
47
- - OpenCode rewrite layer: `/tmp/opencode-src/packages/opencode/src/plugin/codex.ts`
48
-
49
- ## Why mini-coder is not adopting this
50
-
51
- - It depends on undocumented/private auth endpoints.
52
- - It depends on a hardcoded first-party client id.
53
- - It depends on private ChatGPT backend routes.
54
- - Browser login would require running a local callback server.
55
- - Even the official Codex source does not expose a clean public API-based alternative here.
56
-
57
- ## Future stance
58
-
59
- We may revisit support if OpenAI exposes a stable, documented path for:
60
-
61
- - ChatGPT subscription login for third-party tools, or
62
- - a public Codex/ChatGPT backend API intended for external clients
63
-
64
- Until then, mini-coder only supports providers with clearer public integration paths.
65
-
66
- ## Note
67
-
68
- If you want a supported hosted integration instead of ChatGPT subscription auth, mini-coder already supports OpenCode Zen via `OPENCODE_API_KEY`. See the existing `zen/<model>` provider path.