mimo2codex 0.1.16 → 0.1.17
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 +24 -1
- package/README.zh.md +23 -1
- package/dist/translate/reqToChat.js +41 -1
- package/dist/translate/reqToChat.js.map +1 -1
- package/doc/mimoskill.md +295 -0
- package/doc/mimoskill.zh.md +295 -0
- package/mimoskill/SKILL.md +25 -19
- package/mimoskill/references/ocr_workflow.md +49 -25
- package/mimoskill/scripts/mimo_chat.py +111 -42
- package/mimoskill/scripts/ocr.py +83 -34
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,6 +8,27 @@ Local proxy that lets the **latest OpenAI Codex CLI / desktop** talk to virtuall
|
|
|
8
8
|
|
|
9
9
|

|
|
10
10
|
|
|
11
|
+
## Contents
|
|
12
|
+
|
|
13
|
+
- [Why](#why) — what problem this solves
|
|
14
|
+
- [What works](#what-works) — feature matrix
|
|
15
|
+
- [Install — pick one](#install--pick-one) — npm / curl / clone
|
|
16
|
+
- [Use](#use) — get a key, start the proxy, configure Codex
|
|
17
|
+
- [Use with cc-switch](#use-with-cc-switch)
|
|
18
|
+
- [Admin console](#admin-console) — dashboard, logs, models, settings
|
|
19
|
+
- [Enabling 1M long context](#enabling-1m-long-context)
|
|
20
|
+
- [Providers and model ids](#providers-and-model-ids)
|
|
21
|
+
- [Plugging in third-party OpenAI-compatible upstreams](#plugging-in-third-party-openai-compatible-upstreams) — Qwen / GLM / Kimi / Ollama / OpenAI
|
|
22
|
+
- [CLI flags](#cli-flags)
|
|
23
|
+
- [Built-in defaults (no flag needed)](#built-in-defaults-no-flag-needed)
|
|
24
|
+
- [Troubleshooting](#troubleshooting)
|
|
25
|
+
- [mimoskill — fill MiMo's gaps](#mimoskill--fill-mimos-gaps) — image gen / OCR fallback / pet generation
|
|
26
|
+
- [Project layout](#project-layout)
|
|
27
|
+
- [Develop](#develop)
|
|
28
|
+
- [License](#license)
|
|
29
|
+
|
|
30
|
+
**Detailed guides:** [Generic providers](./doc/generic-providers.md) · [mimoskill](./doc/mimoskill.md)
|
|
31
|
+
|
|
11
32
|
## Why
|
|
12
33
|
|
|
13
34
|
MiMo's [official Codex doc](https://platform.xiaomimimo.com/docs/zh-CN/integration/codex) only supports `wire_api = "chat"`, but newer Codex versions hard-error on it (the official workaround is to downgrade Codex, losing pets, the new desktop release and tool fixes). mimo2codex fixes this without touching either side: keep Codex on latest, run mimo2codex locally, Codex thinks it's talking to a native Responses backend.
|
|
@@ -370,7 +391,9 @@ This pattern (concrete instruction + explicit tool name + "don't explain") is mu
|
|
|
370
391
|
|
|
371
392
|
## mimoskill — fill MiMo's gaps
|
|
372
393
|
|
|
373
|
-
[mimoskill
|
|
394
|
+
> 📖 **Full reference:** [doc/mimoskill.md](./doc/mimoskill.md) — per-script docs, env vars, triggering rules, three usage modes, recipes, troubleshooting. The section below is a quick summary.
|
|
395
|
+
|
|
396
|
+
[mimoskill/](./mimoskill/) is a bundle of helper scripts + reference docs at the project root. It exists because some things MiMo just doesn't do natively (mainly: image generation, OCR fallback when the chat model is text-only), and Codex hardcodes a few capability assumptions on the client side that the proxy can't override.
|
|
374
397
|
|
|
375
398
|
### Why it exists
|
|
376
399
|
|
package/README.zh.md
CHANGED
|
@@ -8,6 +8,26 @@
|
|
|
8
8
|
|
|
9
9
|

|
|
10
10
|
|
|
11
|
+
## 目录
|
|
12
|
+
|
|
13
|
+
- [解决什么问题](#解决什么问题) —— 这玩意儿到底是干啥的
|
|
14
|
+
- [支持](#支持) —— 能力对照表
|
|
15
|
+
- [安装——任选一种](#安装任选一种) —— npm / 一键脚本 / 手动构建
|
|
16
|
+
- [使用](#使用) —— 拿 key、启动代理、配置 Codex
|
|
17
|
+
- [配合 cc-switch 使用](#配合-cc-switch-使用)
|
|
18
|
+
- [Admin 控制台](#admin-控制台) —— 概览 / 日志 / 模型 / 设置
|
|
19
|
+
- [1M 长上下文怎么用](#1m-长上下文怎么用)
|
|
20
|
+
- [Provider 与模型 ID](#provider-与模型-id)
|
|
21
|
+
- [接入第三方 OpenAI 兼容上游](#接入第三方-openai-兼容上游) —— Qwen / GLM / Kimi / Ollama / OpenAI
|
|
22
|
+
- [CLI 参数速查](#cli-参数速查)
|
|
23
|
+
- [故障排查](#故障排查)
|
|
24
|
+
- [mimoskill——填补 MiMo 的能力缺口](#mimoskill填补-mimo-的能力缺口) —— 图像生成 / OCR 兜底 / 宠物
|
|
25
|
+
- [项目结构](#项目结构)
|
|
26
|
+
- [开发](#开发)
|
|
27
|
+
- [许可证](#许可证)
|
|
28
|
+
|
|
29
|
+
**详细文档:** [通用 provider](./doc/generic-providers.zh.md) · [mimoskill](./doc/mimoskill.zh.md)
|
|
30
|
+
|
|
11
31
|
## 解决什么问题
|
|
12
32
|
|
|
13
33
|
小米米莫官方 [Codex 集成文档](https://platform.xiaomimimo.com/docs/zh-CN/integration/codex) 只支持 `wire_api = "chat"`,而最新版 Codex 已经把这个开关变成硬错误。官方建议是降级 Codex 到 0.80.0——但会丢掉 pet 宠物、桌面端新功能、新工具。mimo2codex 在中间挂个本地代理,**Codex 用最新版、MiMo 服务端不变**,两边都不用改。
|
|
@@ -361,7 +381,9 @@ MiMo 在多步 agentic 编码任务上的弱点——模型把 token 花在"叙
|
|
|
361
381
|
|
|
362
382
|
## mimoskill——填补 MiMo 的能力缺口
|
|
363
383
|
|
|
364
|
-
[mimoskill
|
|
384
|
+
> 📖 **完整文档:** [doc/mimoskill.zh.md](./doc/mimoskill.zh.md) —— 单脚本详解、环境变量、触发规则、三种用法、常用组合、故障排查。本节是速览。
|
|
385
|
+
|
|
386
|
+
[mimoskill/](./mimoskill/) 是仓库根目录下一捆**辅助脚本 + 参考文档**。它存在的原因是有些事 MiMo 原生不支持(主要是图像生成、纯文本模型场景下的 OCR 兜底),而 Codex 在客户端硬编码了一些能力假设,代理层压根改不动。
|
|
365
387
|
|
|
366
388
|
### 为啥要这玩意
|
|
367
389
|
|
|
@@ -72,6 +72,46 @@ function partsToChatContent(parts, ctx) {
|
|
|
72
72
|
return "";
|
|
73
73
|
return out;
|
|
74
74
|
}
|
|
75
|
+
// Flatten a function_call_output.output into a plain string suitable for the
|
|
76
|
+
// `tool` role's `content` field. Codex/Responses can send an array of content
|
|
77
|
+
// parts here when a tool returned images (image_gen, mimoskill image gen,
|
|
78
|
+
// etc.). Chat Completions tool messages only accept a string content across
|
|
79
|
+
// all upstreams (OpenAI's array extension isn't supported by MiMo / DeepSeek /
|
|
80
|
+
// most third-party providers, and DeepSeek explicitly 400s with
|
|
81
|
+
// "unknown variant `input_image`, expected `text`"). So we always textify and
|
|
82
|
+
// replace images with a one-line placeholder.
|
|
83
|
+
function toolOutputToString(output) {
|
|
84
|
+
if (typeof output === "string")
|
|
85
|
+
return output;
|
|
86
|
+
if (!Array.isArray(output)) {
|
|
87
|
+
try {
|
|
88
|
+
return JSON.stringify(output);
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return String(output);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
const chunks = [];
|
|
95
|
+
let droppedImages = 0;
|
|
96
|
+
for (const p of output) {
|
|
97
|
+
if (!p || typeof p !== "object")
|
|
98
|
+
continue;
|
|
99
|
+
if (p.type === "input_text" || p.type === "output_text") {
|
|
100
|
+
const text = typeof p.text === "string" ? p.text : "";
|
|
101
|
+
if (text.length > 0)
|
|
102
|
+
chunks.push(text);
|
|
103
|
+
}
|
|
104
|
+
else if (p.type === "input_image") {
|
|
105
|
+
droppedImages++;
|
|
106
|
+
}
|
|
107
|
+
// input_file and unknown parts are silently dropped.
|
|
108
|
+
}
|
|
109
|
+
if (droppedImages > 0) {
|
|
110
|
+
log.warn(`dropped ${droppedImages} image part(s) from tool output — Chat Completions tool messages cannot carry images`);
|
|
111
|
+
chunks.push(`[${droppedImages} image attachment${droppedImages > 1 ? "s" : ""} omitted from tool output: this chat backend cannot ingest images in tool results.]`);
|
|
112
|
+
}
|
|
113
|
+
return chunks.join("");
|
|
114
|
+
}
|
|
75
115
|
function messageItemToChat(item, ctx) {
|
|
76
116
|
const role = item.role === "developer" ? "system" : item.role;
|
|
77
117
|
const content = partsToChatContent(item.content, ctx);
|
|
@@ -361,7 +401,7 @@ function inputItemsToMessages(items, ctx) {
|
|
|
361
401
|
out.push({
|
|
362
402
|
role: "tool",
|
|
363
403
|
tool_call_id: item.call_id,
|
|
364
|
-
content: item.output,
|
|
404
|
+
content: toolOutputToString(item.output),
|
|
365
405
|
});
|
|
366
406
|
break;
|
|
367
407
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reqToChat.js","sourceRoot":"","sources":["../../src/translate/reqToChat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reqToChat.js","sourceRoot":"","sources":["../../src/translate/reqToChat.ts"],"names":[],"mappings":"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"}
|
package/doc/mimoskill.md
ADDED
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
# mimoskill · Detailed Guide
|
|
2
|
+
|
|
3
|
+
> English · [中文](./mimoskill.zh.md)
|
|
4
|
+
>
|
|
5
|
+
> Back to: [README English](../README.md) · [README 中文](../README.zh.md)
|
|
6
|
+
|
|
7
|
+
`mimoskill/` is a bundle of helper scripts + reference docs at the project root. It exists because some things MiMo / DeepSeek / most chat-only LLMs can't natively do (image generation, image understanding when the chat model is text-only, …), and Codex hardcodes a few capability assumptions on the client side that the proxy layer can't override.
|
|
8
|
+
|
|
9
|
+
The proxy and mimoskill are **completely independent**: mimoskill works without `mimo2codex` running, and mimo2codex works without mimoskill. They compose by **convention**: when the proxy detects a capability gap it leaves a placeholder text in the message that points the LLM at the right `mimoskill/scripts/*.py` script.
|
|
10
|
+
|
|
11
|
+
## When does it trigger?
|
|
12
|
+
|
|
13
|
+
> Short answer: **"the chat model does what it can; mimoskill fills the gap."**
|
|
14
|
+
|
|
15
|
+
| Capability | Chat model can do it | Chat model CAN'T do it |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| Read / OCR / 识图 an image | proxy forwards the image to the model directly; **mimoskill not triggered** | proxy strips the image and inserts `[N image attachment(s) omitted: … python3 mimoskill/scripts/ocr.py <path> …]`; the LLM reads that placeholder + AGENTS.md and **runs `ocr.py`** |
|
|
18
|
+
| Generate an image | no mainstream chat model has native image-gen | **mimoskill always triggers** — `scripts/generate_image.py` or `scripts/generate_pet.py` |
|
|
19
|
+
| Web search | proxy forwards Codex's `web_search` to MiMo's builtin on `sk-*` (pay-as-you-go) keys; auto-skipped on `tp-*` (token-plan) and DeepSeek | `scripts/mimo_chat.py` follows the same rule — auto-enables web search on MiMo `sk-*`, skips on `tp-*` / pollinations. No flag needed. |
|
|
20
|
+
| TTS / ASR | not exposed in Codex | `scripts/mimo_chat.py` direct call to MiMo's separate endpoints |
|
|
21
|
+
|
|
22
|
+
The triggering **happens in the LLM**, not in the proxy. The proxy only does protocol translation + minimal compatibility fixups (image stripping, placeholder injection). Codex reads [AGENTS.md](../AGENTS.md) and [mimoskill/SKILL.md](../mimoskill/SKILL.md), notices the placeholder or the user's intent, and decides which script to invoke. The script is an independent subprocess that **bypasses the proxy entirely** — OCR talks to MiMo or pollinations directly, image-gen talks to pollinations or OpenAI directly, etc.
|
|
23
|
+
|
|
24
|
+
## Layout
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
mimoskill/
|
|
28
|
+
├── SKILL.md # skill manifest the LLM reads — trigger rules, decision tree
|
|
29
|
+
├── scripts/
|
|
30
|
+
│ ├── mimo_chat.py # direct chat / vision / web-search call to MiMo (stdlib-only)
|
|
31
|
+
│ ├── ocr.py # OCR / image recognition. Mimo or free pollinations
|
|
32
|
+
│ ├── generate_image.py # general image generation (any style / subject)
|
|
33
|
+
│ ├── generate_pet.py # Codex pet generation (chibi-sticker style)
|
|
34
|
+
│ └── install_pet.sh # install generated PNG into Codex's pet directory
|
|
35
|
+
├── references/
|
|
36
|
+
│ ├── models.md # MiMo capability matrix + field quirks
|
|
37
|
+
│ ├── ocr_workflow.md # full OCR mode reference, exit codes, JSON shape
|
|
38
|
+
│ └── pet_workflow.md # single-image vs animated bundle generation
|
|
39
|
+
└── assets/
|
|
40
|
+
└── pet_prompt_template.md # tuned chibi-sticker prompt templates
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Scripts in depth
|
|
44
|
+
|
|
45
|
+
### `scripts/mimo_chat.py` — chat / vision (no key required)
|
|
46
|
+
|
|
47
|
+
Stdlib-only Python script for one-shot or streaming chat. Two engines, same `--engine auto|mimo|pollinations` pattern as `ocr.py`:
|
|
48
|
+
|
|
49
|
+
| Engine | Needs key | Notes |
|
|
50
|
+
|---|---|---|
|
|
51
|
+
| `mimo` | `MIMO_API_KEY` | Best quality. Web search auto-enabled on `sk-*` keys (no flag needed). TTS/ASR also MiMo-only. |
|
|
52
|
+
| `pollinations` | **NO** | Free public endpoint at `text.pollinations.ai`. Text + vision work. No web search / TTS / ASR. |
|
|
53
|
+
|
|
54
|
+
Auto resolution: `mimo` if `MIMO_API_KEY` set, else `pollinations`. So this script now works **without any key** for text and vision chat.
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Zero-setup — uses pollinations fallback
|
|
58
|
+
python3 mimoskill/scripts/mimo_chat.py "tell me a joke"
|
|
59
|
+
python3 mimoskill/scripts/mimo_chat.py --image https://x/y.png "describe this"
|
|
60
|
+
|
|
61
|
+
# Best quality + MiMo native features (web search auto-on with sk-*, TTS, ASR)
|
|
62
|
+
export MIMO_API_KEY=sk-xxxxxxxxxxxxxxxx
|
|
63
|
+
python3 mimoskill/scripts/mimo_chat.py "今天上海天气" # web_search auto-included
|
|
64
|
+
python3 mimoskill/scripts/mimo_chat.py --model mimo-v2.5-pro --max-tokens 8000 --stream "long answer please"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
For the mimo engine, the script handles MiMo's quirks transparently: `max_completion_tokens` (not `max_tokens`), the required `text` part next to `image_url`, `reasoning_content` round-tripping for multi-turn, web search plugin invocation.
|
|
68
|
+
|
|
69
|
+
| Flag | Notes |
|
|
70
|
+
|---|---|
|
|
71
|
+
| `--engine` | `auto` / `mimo` / `pollinations` (default auto) |
|
|
72
|
+
| `--model` | default `mimo-v2.5-pro` (mimo engine). For vision use `mimo-v2.5` / `mimo-v2-omni` |
|
|
73
|
+
| `--pollinations-model` | default `openai` (vision-capable). Alternatives: `openai-large`, `openai-fast` |
|
|
74
|
+
| `--image URL` | attach image. Auto-bumps to vision-capable model |
|
|
75
|
+
| `--stream` | SSE streaming |
|
|
76
|
+
| `--max-tokens N` | maps to `max_completion_tokens` on mimo, `max_tokens` on pollinations |
|
|
77
|
+
| `--temperature F` | default 0.7 |
|
|
78
|
+
|
|
79
|
+
### `scripts/ocr.py` — OCR / image recognition
|
|
80
|
+
|
|
81
|
+
OCR fallback for when the chat model can't see images. **Two engines** (`--engine auto` picks):
|
|
82
|
+
|
|
83
|
+
| Engine | Needs key | Quality | Notes |
|
|
84
|
+
|---|---|---|---|
|
|
85
|
+
| `mimo` | `MIMO_API_KEY` | best | Calls `mimo-v2.5` (the vision model) regardless of the chat model in use |
|
|
86
|
+
| `pollinations` | **NO** | decent | Free public endpoint at `text.pollinations.ai`. Rate-limited but no signup |
|
|
87
|
+
|
|
88
|
+
Auto resolution: `mimo` if `MIMO_API_KEY` is set, else `pollinations`. So users with **only a DeepSeek key** (or no key at all) still get OCR with zero setup.
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# Zero-setup — uses pollinations fallback when MIMO_API_KEY is unset
|
|
92
|
+
python3 mimoskill/scripts/ocr.py path/to/image.png
|
|
93
|
+
|
|
94
|
+
# Best quality — set MiMo key
|
|
95
|
+
export MIMO_API_KEY=sk-xxxx
|
|
96
|
+
python3 mimoskill/scripts/ocr.py path/to/image.png # auto -> mimo
|
|
97
|
+
|
|
98
|
+
# Force the free engine even when you have a MiMo key (save quota)
|
|
99
|
+
python3 mimoskill/scripts/ocr.py --engine pollinations form.png
|
|
100
|
+
|
|
101
|
+
# Force MiMo — errors out if MIMO_API_KEY is not set (no silent fallback)
|
|
102
|
+
python3 mimoskill/scripts/ocr.py --engine mimo form.png
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Four output modes:
|
|
106
|
+
|
|
107
|
+
| `--mode` | Output |
|
|
108
|
+
|---|---|
|
|
109
|
+
| `text` (default) | verbatim OCR — line breaks + reading order preserved |
|
|
110
|
+
| `describe` | 2-4 sentence description |
|
|
111
|
+
| `structured` | single JSON object: `text` / `language` / `regions[]` / `summary` |
|
|
112
|
+
| `markdown` | re-render the image as GitHub-flavored Markdown |
|
|
113
|
+
|
|
114
|
+
Input forms (positional, 0+ args):
|
|
115
|
+
- Local path: `./scan.png`, `C:\foo.jpg`
|
|
116
|
+
- HTTP(S) URL: forwarded as-is
|
|
117
|
+
- `data:image/...;base64,…`: forwarded as-is
|
|
118
|
+
- `-` or piped stdin: read one image's bytes from stdin
|
|
119
|
+
|
|
120
|
+
Magic-byte MIME sniffing (not file extension): PNG / JPEG / GIF / WebP / BMP. Multi-image positional args batch into one upstream call.
|
|
121
|
+
|
|
122
|
+
> Full reference: [mimoskill/references/ocr_workflow.md](../mimoskill/references/ocr_workflow.md) (modes, exit codes, JSON shape, lang/prompt knobs, pollinations specifics).
|
|
123
|
+
|
|
124
|
+
### `scripts/generate_image.py` — general image generation
|
|
125
|
+
|
|
126
|
+
Thin wrapper over `generate_pet.py` minus the chibi-pet prompt boilerplate, with an optional `--style` for common looks. Same providers, same env vars, same auto-fallback strategy.
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
# Free — auto picks pollinations when no OpenAI key
|
|
130
|
+
python3 mimoskill/scripts/generate_image.py --prompt "japanese garden, watercolor, dawn" --out garden.png
|
|
131
|
+
|
|
132
|
+
# Best quality — set OpenAI key
|
|
133
|
+
export PET_OPENAI_API_KEY=sk-real-openai-key
|
|
134
|
+
python3 mimoskill/scripts/generate_image.py --prompt "..." --out art.png # auto -> gpt-image-1
|
|
135
|
+
|
|
136
|
+
# Common style presets
|
|
137
|
+
python3 mimoskill/scripts/generate_image.py --style anime --prompt "shrine at dusk" --out shrine.png
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
| `--provider` | Backend |
|
|
141
|
+
|---|---|
|
|
142
|
+
| `auto` (default) | `gpt-image-1` if `PET_OPENAI_API_KEY` set, else `pollinations` |
|
|
143
|
+
| `pollinations` | Free, no key |
|
|
144
|
+
| `gpt-image-1` | OpenAI's official image gen — best quality |
|
|
145
|
+
| `replicate` | Replicate API (any model) |
|
|
146
|
+
| `local-sd` | Local Stable Diffusion |
|
|
147
|
+
|
|
148
|
+
> `PET_OPENAI_API_KEY` is intentionally **separate from `MIMO_API_KEY` and `OPENAI_API_KEY`** — it's used only for image generation, so leaking it (or just not having one) doesn't affect anything else.
|
|
149
|
+
|
|
150
|
+
### `scripts/generate_pet.py` — Codex pet generation
|
|
151
|
+
|
|
152
|
+
Same backends as `generate_image.py`, but with a tuned chibi-sticker prompt built around `--description`. Outputs a PNG sized + framed for Codex's pet picker.
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# Single static pet (free)
|
|
156
|
+
python3 mimoskill/scripts/generate_pet.py --description "chibi shiba coder" --out pet.png
|
|
157
|
+
|
|
158
|
+
# Animated multi-state bundle (idle / thinking / typing / sleeping)
|
|
159
|
+
python3 mimoskill/scripts/generate_pet.py --description "chibi cat" --bundle ./shiba/
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Prompt templates live in [mimoskill/assets/pet_prompt_template.md](../mimoskill/assets/pet_prompt_template.md). Full workflow in [mimoskill/references/pet_workflow.md](../mimoskill/references/pet_workflow.md).
|
|
163
|
+
|
|
164
|
+
### `scripts/install_pet.sh` — install pet into Codex
|
|
165
|
+
|
|
166
|
+
Probes macOS / Linux / Windows for the right pet directory and copies the PNG (or bundle) there. Works around Codex's hardcoded pet paths.
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
bash mimoskill/scripts/install_pet.sh pet.png shiba
|
|
170
|
+
# Then fully quit + relaunch Codex (system tray → Quit, not just close window)
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Three ways to use it
|
|
174
|
+
|
|
175
|
+
### 1. Direct invocation (any user, no setup)
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
python3 mimoskill/scripts/mimo_chat.py "..."
|
|
179
|
+
python3 mimoskill/scripts/ocr.py invoice.png # works with no key, free pollinations
|
|
180
|
+
python3 mimoskill/scripts/generate_image.py --prompt "..."
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
No skill registration required — these are standard Python scripts (stdlib-only, no `pip install` step).
|
|
184
|
+
|
|
185
|
+
### 2. As a Claude Code skill
|
|
186
|
+
|
|
187
|
+
Symlink the directory into `~/.claude/skills/`:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
ln -s "$(pwd)/mimoskill" ~/.claude/skills/mimoskill
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Claude reads [SKILL.md](../mimoskill/SKILL.md) and automatically routes relevant requests ("generate a pet from this image", "read the text from this screenshot", "MiMo TTS this paragraph") to the right scripts.
|
|
194
|
+
|
|
195
|
+
### 3. As a Codex agent guide
|
|
196
|
+
|
|
197
|
+
Already wired via [AGENTS.md](../AGENTS.md) at the repo root. Codex reads it on each session and routes image-gen / pet / OCR tasks to mimoskill scripts — it **won't** try to `pip install openai` or call OpenAI's image_gen tool when the active backend is MiMo / DeepSeek / Qwen / any non-OpenAI provider.
|
|
198
|
+
|
|
199
|
+
## Environment variables
|
|
200
|
+
|
|
201
|
+
| Var | Used by | Notes |
|
|
202
|
+
|---|---|---|
|
|
203
|
+
| `MIMO_API_KEY` | `mimo_chat.py`, `ocr.py` (engine=mimo / auto when set) | MiMo Chat / vision key. **Optional** for both scripts — they fall back to free pollinations when unset |
|
|
204
|
+
| `MIMO_CHAT_ENGINE` | `mimo_chat.py` | `auto` / `mimo` / `pollinations` — same as `--engine` |
|
|
205
|
+
| `MIMO_BASE_URL` | `mimo_chat.py`, `ocr.py` | default `https://api.xiaomimimo.com/v1` |
|
|
206
|
+
| `MIMO_MODEL` / `MIMO_OCR_MODEL` | `ocr.py` model auto-pick | used when `--model` not passed and vision-capable |
|
|
207
|
+
| `MIMO_OCR_ENGINE` | `ocr.py` | `auto` / `mimo` / `pollinations` — same as `--engine` flag |
|
|
208
|
+
| `POLLINATIONS_MODEL` | `ocr.py` | default `openai` (vision-capable). Alternatives: `openai-large`, `openai-fast` |
|
|
209
|
+
| `PET_OPENAI_API_KEY` | `generate_pet.py`, `generate_image.py` | separate from `MIMO_API_KEY` / `OPENAI_API_KEY`; used only for image gen |
|
|
210
|
+
| `REPLICATE_API_TOKEN` | `generate_*.py --provider replicate` | required only when using Replicate backend |
|
|
211
|
+
|
|
212
|
+
## Common recipes
|
|
213
|
+
|
|
214
|
+
### Read text from an image, then summarize via the active chat model
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
TEXT=$(python3 mimoskill/scripts/ocr.py invoice.png)
|
|
218
|
+
python3 mimoskill/scripts/mimo_chat.py "Summarize this invoice:\n$TEXT"
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
Or inside Codex: just paste the image. The proxy strips it, leaves a placeholder pointing at `ocr.py`, Codex runs the script and feeds the text back into the conversation — no manual step.
|
|
222
|
+
|
|
223
|
+
### Generate a `/hatch` replacement pet (works without OpenAI key)
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
python3 mimoskill/scripts/generate_pet.py --description "chibi shiba coder" --out pet.png
|
|
227
|
+
bash mimoskill/scripts/install_pet.sh pet.png shiba
|
|
228
|
+
# Fully quit + relaunch Codex, pick the new pet from the picker
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
For higher quality, set `PET_OPENAI_API_KEY=sk-real-openai-key` and `auto` switches to `gpt-image-1`.
|
|
232
|
+
|
|
233
|
+
### Structured OCR + JSON parse
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
JSON=$(python3 mimoskill/scripts/ocr.py --mode structured invoice.png)
|
|
237
|
+
echo "$JSON" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['summary'])"
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Multi-image batch OCR (one billable call)
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
python3 mimoskill/scripts/ocr.py page1.png page2.png page3.png
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
All images go in a **single** upstream call; the model can cross-reference (e.g. ID front + back). Output is a single text body in reading order across the images.
|
|
247
|
+
|
|
248
|
+
## Troubleshooting
|
|
249
|
+
|
|
250
|
+
<details>
|
|
251
|
+
<summary><b><code>MIMO_API_KEY</code> is not set</b> — ocr.py exits 3</summary>
|
|
252
|
+
|
|
253
|
+
You explicitly passed `--engine mimo`. Either drop the flag (`auto` will fall back to pollinations) or set the key:
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
export MIMO_API_KEY=sk-xxxx
|
|
257
|
+
python3 mimoskill/scripts/ocr.py form.png
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
</details>
|
|
261
|
+
|
|
262
|
+
<details>
|
|
263
|
+
<summary><b>Pollinations returns 429 / rate limit</b></summary>
|
|
264
|
+
|
|
265
|
+
You hit per-IP rate limits. Either wait + retry, or switch to `--engine mimo` if you have a MiMo key.
|
|
266
|
+
|
|
267
|
+
</details>
|
|
268
|
+
|
|
269
|
+
<details>
|
|
270
|
+
<summary><b>Codex shows <code>image_gen tool not available</code> when running /hatch</b></summary>
|
|
271
|
+
|
|
272
|
+
Codex's `/hatch` is hardcoded to call OpenAI's `image_gen` tool client-side. The proxy can't intercept that. Use `generate_pet.py` instead — see "Generate a /hatch replacement pet" above.
|
|
273
|
+
|
|
274
|
+
</details>
|
|
275
|
+
|
|
276
|
+
<details>
|
|
277
|
+
<summary><b><code>pip install openai</code> errors / Codex tries to install openai</b></summary>
|
|
278
|
+
|
|
279
|
+
That's Codex trying to fall back to the openai Python SDK for image generation. [AGENTS.md](../AGENTS.md) is wired to prevent this — make sure it's at the repo root and the Codex session has read it (start fresh session if you edited AGENTS.md mid-conversation).
|
|
280
|
+
|
|
281
|
+
</details>
|
|
282
|
+
|
|
283
|
+
<details>
|
|
284
|
+
<summary><b>Tool returned an image but my model can't see images in tool output</b></summary>
|
|
285
|
+
|
|
286
|
+
This is by design. Chat Completions `tool` role only accepts string content — image content parts in `function_call_output` are flattened to `[N image attachment(s) omitted from tool output: ...]` placeholders (see `toolOutputToString` in [src/translate/reqToChat.ts](../src/translate/reqToChat.ts)). To feed an image back to the LLM, have the tool save it to disk and return a file path, then re-attach as a user message — at which point the OCR fallback kicks in if the chat model is non-vision.
|
|
287
|
+
|
|
288
|
+
</details>
|
|
289
|
+
|
|
290
|
+
## Design notes
|
|
291
|
+
|
|
292
|
+
- **No `pip install` step.** Every script is stdlib-only. This avoids dependency drift and lets the scripts run on bare Python ≥ 3.8 anywhere.
|
|
293
|
+
- **Network operations are explicit.** No silent retries to alternate endpoints. If you ask for MiMo and there's no key, you get a clear error — not a silent fallback that masks the misconfiguration.
|
|
294
|
+
- **The proxy and mimoskill never call each other.** They're separate processes connected only by `AGENTS.md` / `SKILL.md` conventions. This makes both halves independently testable and replaceable.
|
|
295
|
+
- **Pollinations is the no-key escape hatch.** Used as the free fallback in `ocr.py` (vision), `generate_pet.py` (image gen), `generate_image.py` (image gen). Rate-limited but always available. The project treats it as a first-class option, not a degraded mode.
|