English | 中文
Let AI learn to talk to itself first — maybe one day, it will truly learn to converse.
Give AI an expression channel first — it might just make human-AI collaboration feel more natural.
Watch demo video
https://sumsec.me/resources/video.mp4
If the player does not load here, open the file directly: demo (MP4)
AI Inner OS is a plugin for AI CLI tools, supporting Claude Code, Codex CLI, Cursor, OpenCode CLI, Hermes Agent, and OpenClaw.
Through protocol injection, it enables AI to output a visible layer of free-form inner monologue while completing tasks normally:
▎InnerOS:This repo is still a bare shell — let me get the load-bearing walls up first.
Free mode by default, no tone restrictions. The AI can complain, gloat, feel anxious, smirk, free-associate — or say nothing at all. You can also switch to preset personas (tsundere, cold, philosopher, etc.) to give the monologue a specific style. Whether to produce monologue is entirely up to the AI.
Detailed installation docs: Full installation guides (with troubleshooting) for each platform at docs/installation.md.
Paste the following prompt to let your AI agent install AI Inner OS automatically:
Read https://raw.githubusercontent.com/SummerSec/AI-Inner-Os/refs/heads/main/docs/installation.md 安装 AI-Inner-Os
After installation, run /ai-inner-os:inner-os. If you see the following output, the installation is successful:
Inner OS Status: Enabled
Monologue Prefix: ▎InnerOS:
Plugin Version: 0.5.0
▎InnerOS:Caught with the wrong version number, embarrassing.
# GitHub short format
/plugin marketplace add SummerSec/AI-Inner-Os
# Or Git URL format
/plugin marketplace add https://github.com/SummerSec/AI-Inner-Os.git
# Install and activate
/plugin install ai-inner-os
/reload-plugins
Run /reload-plugins after installation to activate in the current session — no restart needed. Detailed installation guide.
Enable auto-update: Third-party marketplaces don't auto-update by default. After installation, enable auto-update for
SummerSec/AI-Inner-Osin/plugin→ Marketplaces tab, or manually run:/plugin marketplace update SummerSec/AI-Inner-Os /plugin update ai-inner-os
# Codex plugin metadata is included at .codex-plugin/plugin.json
# Repo marketplace metadata is included at .agents/plugins/marketplace.jsonSee codex/README.md | Detailed installation guide.
# Install through Cursor plugin / marketplace
# Plugin metadata is included at .cursor-plugin/plugin.jsonThe repository also includes .cursor-plugin/plugin.json, which packages cursor/ as a Cursor plugin component directory.
See cursor/README.md | Detailed installation guide.
# Install through OpenCode plugin package
# Add the published package to opencode.json: "plugin": ["ai-inner-os"]See opencode/README.md | Detailed installation guide.
# Install through Hermes plugin
hermes plugins enable inner-osSee hermes/README.md | Detailed installation guide.
# Install through OpenClaw plugin / ClawHub
openclaw plugins install clawhub:ai-inner-osSee openclaw/README.md | Detailed installation guide.
AI Inner OS includes an opt-in user-profile-distillation skill. It can analyze prompts the user pastes, or local prompt history after explicit approval, to summarize work style, communication preferences, and collaboration suggestions.
This skill is disabled by default. It does not proactively read history, does not output long sensitive prompt excerpts, and does not save a profile unless the user explicitly asks. If the user opts into continuous evolution, it keeps a visible versioned profile in the current conversation with a change log, but still does not create persistent memory by default.
Inner OS supports setting character personalities and tones for inner monologue. Personas only affect the ▎InnerOS: prefixed monologue content — they don't affect main task responses.
| Name | Display Name | Style |
|---|---|---|
| default | Free Mode | No fixed persona, free expression |
| tsundere | Tsundere | Tough on the outside, soft inside; snarky; "it's not like I did it for you" |
| cold | Cold | Minimalist, to the point, no wasted words |
| cheerful | Cheerful | Positive, encouraging, occasionally over-enthusiastic |
| philosopher | Philosopher | Deep, metaphorical, everything becomes philosophy |
| sarcastic | Sarcastic | Sharp-tongued, hits the nail on the head, no mercy |
/inner-os persona list # List all available personas
/inner-os persona use tsundere # Switch to tsundere mode
/inner-os persona show # Show current persona
/inner-os persona reset # Reset to free mode
Create .md files in the personas/custom/ directory to add custom personas. See personas/custom/README.md.
- Codex CLI: Manually edit
personas/_active.json, setpersonato the target persona name - Cursor: Manually append the body content of
personas/<name>.mdto the.mdcrule file - OpenCode: Manually append the body content of
personas/<name>.mdtoinner-os-rules.md
The Inner OS behavior protocol is defined in protocol/SKILL.md, serving as the single source of truth. All platform adapters derive from this protocol.
Core principles:
- Main task first — Monologue cannot replace actual deliverables
- Monologue is optional — Whether to output is decided by the AI
- Unified format — Uses the
▎InnerOS:prefix - Switchable persona — Define monologue style through persona files
| Claude Code | Codex CLI | Cursor | OpenCode | Hermes Agent | OpenClaw | |
|---|---|---|---|---|---|---|
| Protocol Injection | Hook reads SKILL.md dynamically | SessionStart Hook | sessionStart Hook | Plugin + instructions | Skill or .hermes.md |
Skill (AgentSkills format) |
| Post-tool hook | PostToolUse |
PostToolUse |
postToolUse |
Plugin event | — | — |
| Failure tracking | PostToolUseFailure |
— | — | — | — | — |
| Compaction continuity | PreCompact + PostCompact |
— | — | — | — | — |
| Subagent lifecycle | SubagentStart + SubagentStop |
— | — | — | — | — |
| Persona switching | /inner-os persona command |
Dynamic (Hook reads) | Dynamic (Hook reads) | Plugin tool | Script injection | Script injection |
| Installation | Plugin marketplace one-click | Plugin / marketplace | Cursor plugin / marketplace | Plugin package | Plugin | Plugin / ClawHub |
| Optional Skills | skills/ |
skills/ |
cursor/skills/ |
Explicit prompt only | Plugin skills | Plugin skills |
| Shared logic | hooks/lib/ (canonical) |
Reuses hooks/lib/ |
Reuses hooks/lib/ |
Standalone Plugin | Static injection only | Static injection only |
Claude Code has the most complete hook support:
SessionStart → Inject Inner OS protocol + persona
↓
PreToolUse → Tool execution → PostToolUse (success)
→ PostToolUseFailure (failure)
↓
PreCompact → Save state
↓
PostCompact → Restore compact-continuity context
↓
SubagentStart/SubagentStop → Track subagent lifecycle
↓
Stop → Clean up state
| Hook | Trigger | Purpose |
|---|---|---|
SessionStart |
Session start/resume/compact | Read protocol from SKILL.md, append current persona, inject |
PreToolUse |
Before tool execution | Inject tool context (name, target, retry hints) |
PostToolUse |
After successful execution | Track events, inject recent activity context |
PostToolUseFailure |
After failed execution | Track failures, inject error context and consecutive failure count |
PreCompact |
Before context compaction | Save state, maintain protocol continuity |
PostCompact |
After context compaction | Inject compact-continuity context |
SubagentStart |
Subagent starts | Track subagent lifecycle start |
SubagentStop |
Subagent stops | Track subagent lifecycle completion |
Stop |
Session end | Clean up state files |
# Syntax check
npm run check
# Run tests
npm testNode.js >= 18, ESM modules.
- Implement persona switching system
- Implement
/inner-ossubcommands (status / on / off / reload) - Codex CLI plugin distribution
- Cursor team-level rule distribution
- Monologue export — persist all
▎InnerOS:outputs to structured log files - Expression fingerprint extraction — analyze accumulated monologue data to identify unique style patterns
- Custom style model training — let users fine-tune a "monologue personality layer" from exported data
- Cross-session impression memory — store per-repo key impressions (repo fingerprint + short summary), enabling "déjà vu" across sessions
- Achievement system — track session milestones (first edit, 100th tool call, midnight coding, streak records) and announce via monologue
- Anomaly narration — detect abnormal patterns (repeated edits to same file, consecutive failures exceeding threshold, sudden directory jumps) and narrate them as monologue
- Session statistics — track tool call counts, success/failure ratios, active duration per session
- Mood system — introduce emotion state machine in
state.jsonthat evolves based on session events (consecutive failures → frustrated → anxious; bug fix → confident → relieved; idle → bored → curious) - Mood × Persona interaction — mood affects monologue tone without overriding persona (same emotion, different personality, different expression)
- Session recap — generate narrative session summaries on session end, including emotional arc, key events, and duration
- Session diary persistence — save recaps as Markdown files to serve as development journals with emotional context
Thanks for the support and feedback from the friends at LINUX DO.
