mini-coder 0.0.14 → 0.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +84 -46
- package/dist/mc.js +3547 -3436
- package/docs/chatgpt-subscription-auth.md +68 -0
- package/docs/custom-agents.md +2 -0
- package/docs/custom-commands.md +16 -27
- package/package.json +16 -12
|
@@ -0,0 +1,68 @@
|
|
|
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.
|
package/docs/custom-agents.md
CHANGED
|
@@ -46,6 +46,8 @@ into the conversation.
|
|
|
46
46
|
|---|---|---|
|
|
47
47
|
| `description` | No | Shown in `/help`. Defaults to filename. |
|
|
48
48
|
| `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
|
+
|
|
49
51
|
|
|
50
52
|
The markdown body (after frontmatter) is the agent's system prompt.
|
|
51
53
|
|
package/docs/custom-commands.md
CHANGED
|
@@ -20,7 +20,8 @@ Create a markdown file. The filename becomes the command name.
|
|
|
20
20
|
```md
|
|
21
21
|
---
|
|
22
22
|
description: Summarise what changed since yesterday
|
|
23
|
-
model: zen/claude-
|
|
23
|
+
model: zen/claude-haiku-4-5
|
|
24
|
+
|
|
24
25
|
---
|
|
25
26
|
|
|
26
27
|
Run `!`git log --oneline --since=yesterday`` and summarise the changes
|
|
@@ -38,8 +39,11 @@ Then in the REPL:
|
|
|
38
39
|
| Field | Required | Description |
|
|
39
40
|
|---|---|---|
|
|
40
41
|
| `description` | No | Shown in `/help`. Defaults to the command name. |
|
|
41
|
-
| `model` | No | Override the active model for this command (
|
|
42
|
-
| `
|
|
42
|
+
| `model` | No | Override the active model for this command (only applies when `context: fork`). |
|
|
43
|
+
| `context` | No | Set to `fork` to run the command as an isolated subagent; default runs inline. |
|
|
44
|
+
| `subtask` | No | Set to `true` to force subagent execution (OpenCode-compatible alias for `context: fork`). |
|
|
45
|
+
| `agent` | No | Run the command under a named agent's system prompt (only applies when `context: fork`). |
|
|
46
|
+
|
|
43
47
|
|
|
44
48
|
|
|
45
49
|
## Arguments
|
|
@@ -51,7 +55,8 @@ Use `$ARGUMENTS` for the full argument string, or `$1`, `$2`, … `$9` for indiv
|
|
|
51
55
|
```md
|
|
52
56
|
---
|
|
53
57
|
description: Search the codebase for a topic
|
|
54
|
-
model: zen/claude-
|
|
58
|
+
model: zen/claude-haiku-4-5
|
|
59
|
+
|
|
55
60
|
---
|
|
56
61
|
|
|
57
62
|
Search the codebase for: $ARGUMENTS
|
|
@@ -111,7 +116,8 @@ lightweight tasks regardless of what the session is currently set to.
|
|
|
111
116
|
```md
|
|
112
117
|
---
|
|
113
118
|
description: Quick grep for a symbol
|
|
114
|
-
model: zen/claude-
|
|
119
|
+
model: zen/claude-haiku-4-5
|
|
120
|
+
|
|
115
121
|
---
|
|
116
122
|
|
|
117
123
|
Find all usages of $ARGUMENTS across the codebase using grep and glob.
|
|
@@ -120,31 +126,14 @@ List each occurrence with file path and line number. No explanations needed.
|
|
|
120
126
|
|
|
121
127
|
Large models for deep analysis, small models for search and lookup.
|
|
122
128
|
|
|
123
|
-
## Execution mode
|
|
124
|
-
|
|
125
|
-
By default, commands run with `execution: subagent` (even if `execution`
|
|
126
|
-
is omitted).
|
|
127
|
-
|
|
128
|
-
Use `execution: inline` to run the command in the main agent context
|
|
129
|
-
instead of spawning a subagent worktree.
|
|
130
|
-
|
|
131
|
-
```md
|
|
132
|
-
---
|
|
133
|
-
description: Safe release flow
|
|
134
|
-
execution: inline
|
|
135
|
-
---
|
|
136
|
-
|
|
137
|
-
Run the release steps in this main repo checkout.
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
Use `inline` for repo-sensitive workflows (like release flows) where branch
|
|
141
|
-
context must be exactly the current session branch.
|
|
142
|
-
|
|
143
129
|
|
|
144
130
|
## Precedence
|
|
145
131
|
|
|
146
|
-
Custom commands shadow built-ins. If you create `.agents/commands/
|
|
147
|
-
it will replace the built-in `/
|
|
132
|
+
Custom commands shadow built-ins. If you create `.agents/commands/plan.md`
|
|
133
|
+
it will replace the built-in `/plan` for that project. The global `/review`
|
|
134
|
+
command (auto-created at `~/.agents/commands/review.md` on first run) works
|
|
135
|
+
the same way — a local `.agents/commands/review.md` will override it.
|
|
136
|
+
|
|
148
137
|
|
|
149
138
|
## Listing commands
|
|
150
139
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mini-coder",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.16",
|
|
4
4
|
"description": "A small, fast CLI coding agent",
|
|
5
5
|
"module": "src/index.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -13,24 +13,28 @@
|
|
|
13
13
|
"typecheck": "tsc --noEmit",
|
|
14
14
|
"lint": "biome check src",
|
|
15
15
|
"format": "biome format --write src",
|
|
16
|
-
"
|
|
16
|
+
"knip": "knip",
|
|
17
|
+
"test": "bun test --only-failures",
|
|
18
|
+
"test:verbose": "bun test",
|
|
19
|
+
"jscpd": "jscpd src"
|
|
17
20
|
},
|
|
18
21
|
"dependencies": {
|
|
19
|
-
"@ai-sdk/anthropic": "^3.0.
|
|
20
|
-
"@ai-sdk/google": "^3.0.
|
|
21
|
-
"@ai-sdk/openai": "^3.0.
|
|
22
|
-
"@ai-sdk/openai-compatible": "^2.0.
|
|
23
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
24
|
-
"ai": "^6.0.
|
|
22
|
+
"@ai-sdk/anthropic": "^3.0.58",
|
|
23
|
+
"@ai-sdk/google": "^3.0.43",
|
|
24
|
+
"@ai-sdk/openai": "^3.0.41",
|
|
25
|
+
"@ai-sdk/openai-compatible": "^2.0.35",
|
|
26
|
+
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
27
|
+
"ai": "^6.0.116",
|
|
25
28
|
"ignore": "^7.0.5",
|
|
26
|
-
"
|
|
27
|
-
"yoctocolors": "^2.1.1",
|
|
29
|
+
"yoctocolors": "^2.1.2",
|
|
28
30
|
"zod": "^4.3.6"
|
|
29
31
|
},
|
|
30
32
|
"devDependencies": {
|
|
31
|
-
"@biomejs/biome": "^
|
|
33
|
+
"@biomejs/biome": "^2.4.6",
|
|
32
34
|
"@types/bun": "latest",
|
|
33
|
-
"
|
|
35
|
+
"jscpd": "^4.0.8",
|
|
36
|
+
"knip": "^5.86.0",
|
|
37
|
+
"typescript": "^5.9.3"
|
|
34
38
|
},
|
|
35
39
|
"license": "MIT"
|
|
36
40
|
}
|