You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(unlabel): un-label CLAUDE/Gemini/etc. agent docs to OpenAI-API-shape
Per the architectural rule that all agents are OpenAI-API clients of the
single MIOS_AI_ENDPOINT (Law 5: UNIFIED-AI-REDIRECTS), strip vendor
labels from every agent-identity file and from CREDITS / README prose.
Filenames preserved for tooling discovery (CLAUDE.md, GEMINI.md,
AGENTS.md, .clinerules, .cursorrules, .github/ai-instructions.md) --
content is now vendor-neutral pointers to the canonical prompt.
Specific edits:
- CLAUDE.md: header re-titled 'Agent entry point (un-labeled)'; new
USER-variable resolution section explains the placeholder convention.
- GEMINI.md: header re-titled 'Agent entry point (un-labeled)'; native
generativelanguage.googleapis.com explicitly noted as not used in-image.
- CLAUDE.AUDIT.md: header generalized to 'any OpenAI-API-compatible
agent'; loading-instruction examples now show four concrete CLI forms
(Claude Code, Gemini CLI, Codex CLI, mios-llm).
- README.md: 'your Cursor, Cline, Gemini, and Claude Code installs' was
vendor-named; replaced with 'any OpenAI-API-compatible editor/CLI
client (no vendor lock-in)'.
- install-mios-agents.sh: rebranded 'mios-claude'/'mios-gemini' wrapper
binaries to 'mios-agent-claude'/'mios-agent-gemini' so the canonical
installer has a 'mios-agent-*' generic prefix; banner messages now say
'[agent] launching with system prompt' instead of vendor-specific
text. mios-llm wrapper banner now spells out 'OpenAI
/v1/chat/completions' protocol.
- CREDITS.md section 22 rewritten as 'AI agents used in this project
(un-labeled, OpenAI-API-shaped)'. Table column renamed from 'Vendor'
to 'Discovery file / What looks for it / OpenAI-API client wiring /
Upstream docs (link only)'. New '$USER variable resolution at build
entry' subsection documents the placeholder convention end-to-end:
shell scripts use $USER/$HOME/~, PowerShell uses
$env:USERNAME/$env:USERPROFILE, markdown aggregates use literal
USER (substituted by bootstrap installer's sed pass), profile/env
templates use MIOS_USER/MIOS_HOSTNAME with three-layer override. Only
other user-related identifiers permitted are 'MiOS' (brand) and
'mios' (default account name).
> (`POST /v1/embeddings`), MCP tool invocation, model discovery
360
366
> (`GET /v1/models`), JSONL training format, and `Authorization: Bearer ...`
361
367
> auth. Each surface is anchored in section 7 above.
362
368
363
-
Coding/development AI agents that have first-class identity files in this
364
-
repo. Each resolves the same canonical 'MiOS' system prompt at
365
-
`/usr/share/mios/ai/system.md` (overridable via `/etc/mios/ai/system-prompt.md`
366
-
and `~/.config/mios/system-prompt.md`); the agent-specific files below are
367
-
thin pointers, not separate prompts.
368
-
369
-
|Agent | Vendor | Identity file in this repo | OpenAI-API conformance | Vendor / docs |
370
-
|---|---|---|---|---|
371
-
|**Claude / Claude Code**| Anthropic |`CLAUDE.md`, `.claude/settings.local.json`|Routed via `MIOS_AI_ENDPOINT` (OpenAI Chat Completions / Responses); native Anthropic Messages API not used in-image |<https://www.anthropic.com/> --<https://docs.claude.com/en/docs/claude-code/overview>|
372
-
|**GitHub Copilot**| GitHub |`.github/ai-instructions.md`| Repo-side instructions only; in-image AI use re-routed to `MIOS_AI_ENDPOINT`|<https://github.com/features/copilot> --<https://docs.github.com/en/copilot>|
373
-
|**Cline** (VS Code) | Cline |`.clinerules`| Configured to point its "OpenAI-Compatible" provider at `MIOS_AI_ENDPOINT`|<https://cline.bot/> --<https://github.com/cline/cline>|
374
-
|**Cursor** (editor) | Cursor / Anysphere |`.cursorrules`| "OpenAI-compatible" custom-model path set to `MIOS_AI_ENDPOINT`|<https://cursor.com/> --<https://docs.cursor.com/>|
375
-
|**Google Gemini / Gemini CLI**| Google |`GEMINI.md`| Uses Gemini CLI's OpenAI-compatibility flag against `MIOS_AI_ENDPOINT`; native `generativelanguage.googleapis.com`not used in-image |<https://gemini.google.com/> --<https://github.com/google-gemini/gemini-cli>|
376
-
|**OpenAI Codex CLI** (and any agents.md-aware tool) | OpenAI / community |`AGENTS.md` (agents.md standard) |Native OpenAI client; `OPENAI_BASE_URL` overridden to `MIOS_AI_ENDPOINT`for in-image use |<https://github.com/openai/codex> -- <https://agents.md/>|
369
+
The discovery files below are listed by **filename convention** (what the
370
+
tool looks for) and **client wiring** (how it resolves to the OpenAI-shaped
371
+
endpoint). Vendor names appear only as the upstream link target so a
372
+
reader can reach the tool's docs; they are not load-bearing in any
373
+
configuration in this repo.
374
+
375
+
|Discovery file | What looks for it | OpenAI-API client wiring | Upstream docs (link only)|
376
+
|---|---|---|---|
377
+
|`CLAUDE.md`, `.claude/settings.local.json`|A CLI agent that auto-loads `CLAUDE.md` from cwd | Wrapped via `mios-agent-claude` -- prompt injected; no network setting required because the wrapper exec's the local CLI which is configured against `MIOS_AI_ENDPOINT`|<https://docs.claude.com/en/docs/claude-code/overview>|
378
+
|`.github/ai-instructions.md`|Editor assistants that read `.github/` instruction files |Repo-side instructions only; in-image traffic still routes to `MIOS_AI_ENDPOINT`|<https://docs.github.com/en/copilot>|
379
+
|`.clinerules`| A VS Code agent that reads`.clinerules`from project root |"OpenAI-Compatible" provider in the agent's settings points at `MIOS_AI_ENDPOINT`|<https://github.com/cline/cline>|
380
+
|`.cursorrules`| An editor that reads`.cursorrules`from project root | "OpenAI-compatible" custom-model path set to `MIOS_AI_ENDPOINT`|<https://docs.cursor.com/>|
381
+
|`GEMINI.md`| A CLI that auto-loads `GEMINI.md`from cwd | Vendor-CLI's OpenAI-compatibility flag pointed at `MIOS_AI_ENDPOINT`; native vendor endpoint not used in-image |<https://github.com/google-gemini/gemini-cli>|
382
+
|`AGENTS.md` (agents.md standard) |Any agents.md-aware client (Codex CLI, etc.) |`OPENAI_BASE_URL`env var overridden to `MIOS_AI_ENDPOINT`|<https://agents.md/> -- <https://github.com/openai/codex>|
377
383
378
384
Aliasing files that all point to the same canonical prompt:
379
385
@@ -394,6 +400,24 @@ Aliasing files that all point to the same canonical prompt:
394
400
|`mios-mcp.service`| Local MCP server runtime |`usr/lib/systemd/system/mios-mcp.service`, `usr/libexec/mios/mcp-server-runner`|
|`mios-agent-claude`, `mios-agent-gemini`| Thin wrappers that pre-load the canonical system prompt before exec'ing the local CLI binary; no vendor logic beyond the exec |`/usr/local/bin/mios-agent-{claude,gemini}`|
405
+
406
+
### `USER` variable resolution at build entry
407
+
408
+
Every `USER` token in this codebase is a *placeholder*, not a hardcoded
409
+
identity. Resolution happens at install/build entry:
410
+
411
+
| Site | Form | Resolved by |
412
+
|---|---|---|
413
+
| Shell scripts (`*.sh`) |`$USER`, `$HOME`, `~`| The login shell at runtime |
414
+
| PowerShell scripts (`*.ps1`) |`$env:USERNAME`, `$env:USERPROFILE`| PowerShell at runtime |
415
+
| Markdown aggregates | literal `USER`| The bootstrap installer's sed pass at install entry (`install.sh` / `install.ps1` reads detected username and substitutes) |
0 commit comments