InkosBLOCK
Story Creation AI Agent for novel, scripts, translation, interactive games, and IP content
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Story Creation AI Agent面向长短篇小说、剧本剧作、互动影游、IP 内容与多语言翻译的创作智能体系统
English | 中文 | 日本語
InkOS 网页版上线! 立刻体验
InkOS 是一个面向故事创作与多语言翻译的 AI Agent 系统:长篇连载、独立短篇、剧本剧作、同人番外、仿写续写、互动影游、开放世界和长文翻译,都可以从同一个工作台开始。支持 Studio、TUI、CLI 交互形式,把创意、设定、角色、记忆、审稿、修订、封面、互动状态和跨语言交付交给智能体统一管理。
🎉🎉 InkOS 入选首批 KIMI 开源合作伙伴 🎉🎉
感谢 [Kim
a71b880c8dc6OBSERVED · 2026-10-20Install
Commands as the repository documents them. They are shown, not run.
git clone https://github.com/Narcooo/inkos.git
npm i -g @actalk/inkos
npm i -g @actalk/inkos
npm i -g @actalk/inkos
Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| claude-code | mentioned | |
| openclaw | mentioned |
What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: inkos description: Use InkOS as a Pi-agent creative harness for novels, short fiction, scripts, storyboards, interactive films, open worlds, derivative works, and long-document translation. --- # InkOS Creative Harness InkOS is a text-creation harness. The main Pi agent understands the request, activates professional Skills, invokes typed capability actions, and reports only persisted results. ## Core contract - Discussion stays discussion. Creation and mutation happen only through capability actions. - A successful action is proven by its `ActionResult` and artifact revision, never by assistant prose. - User intent, current Work constraints, established facts, and explicit prohibitions outrank model defaults. - Skills provide professional methods but never grant write permission. - Review returns evidence-backed observations. It does not score prose, reject a chapter, or authorize an automatic rewrite. - Revision is an explicit action. Preserve source revisions and report the new artifact revision. - Context is assembled per task: LLM semantic selection chooses relevant source sections after deterministic candidate discovery. Protected intent and selected current facts are never compressed; lower-priority context is semantically compiled only on budget overflow. ## Creation profiles - `longform-novel`: foundation, chapter planning, writing, review, revision, state projection, forecast, cover. - `short-fiction`: complete short story, plan, review notes, sales package, cover. - `script`: screenplay, vertical short drama, audio drama, interactive script. - `storyboard`: editable storyboard, typed image-prompt assets, image generation. - `interactive-film`: story tree, flags, script, storyboard, image assets, playable graph, export. - `play-world`: open-world or guided interaction with persistent entities, relationships, time, evidence, inventory, scenes, and images. - `fanfic`, `spinoff`, `imitation`, `continuation`: derivative creation with explicit lineage and source canon. - `translation`: multilingual long-document translation with terminology and resumable artifacts. ## Natural-language use Use normal conversation to discuss or request work. The agent chooses the relevant profile and Skill. A creation proposal may require confirmation; recoverable edits inside the current Work can run directly. Force a Skill when needed: ```text @inkos-story-review review chapter 8 against the current reader promise @inkos-imitation-writing keep the reference cadence but create a new story ``` Inspect available Skills and Works through the agent tools rather than guessing storage paths. ## Explicit CLI actions ```bash inkos studio inkos tui inkos book create --title "My Story" --genre other --lang en inkos write next <book-id> --count 3 inkos revise <book-id> <chapter> --mode rewrite inkos review <book-id> inkos short run --title "A Short Story" inkos fanfic init --title "Derived Story" --from source.txt --mode canon inkos export <book-id> --format epub ``` Internal planning, semantic context selection, writing, state projection, and review are one Harness trajectory. `review` displays persisted qualitative observations. ## Revision modes - `spot-fix`: exact local text patches applied by the host. - `polish`: prose-surface changes only. - `rewrite`: rewrite the affected passage or chapter while preserving authority. - `rework`: restructure scenes when the user explicitly requests structural change. - `anti-detect`: explicit prose cleanup using the activated de-slop Skill. ## Context and persistence - Human-readable story assets remain Markdown. - Host-consumed state and action results use typed JSON/tool schemas. - Planner, writer, reviewer, reviser, settler, Play, translation, and production-document compilers submit typed results through Pi tools. - Conversation compaction and story-context compaction are separate. Both preserve protected current intent and use semantic compilation only after budget overflow. - Work manifests, artifact revisions, episode events, and model-call traces provide observable lineage. ## Failure handling - Model/provider failures remain operational errors; they are never converted into fictional world outcomes or content verdicts. - A failed optional asset is reported as an observation without invalidating a successfully persisted manuscript. - Interrupted actions preserve the last committed artifact and can be retried from persisted state. - Never claim a file was created or changed without an artifact reference from the action result.
Trust audit
BLOCKgrade D · trust 66/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- declared (5 observation(s))
- Shell
- declared (5 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (25)
return match?{raw:match[1]!,data:yaml.load(match[1]!) as Record<string,unknown>}:undefined;data: yaml.load(frontmatter),
console.log(` ${c("3", cyan)} ${c(copy.steps.apiKey, gray)}`);console.log(c(` ${copy.hints.apiKey}`, dim));.node-version
expect(getNarrativeForecastPreviewDetails(exec({expect(getNarrativeForecastPreviewDetails(exec({expect(getNarrativeForecastPreviewDetails(exec({ kind: "narrative_forecast_created" }))).toBeNull();expect(getNarrativeForecastPreviewDetails(exec({exec: exec({ kind: "narrative_forecast_created", forecastId: forecast.forecastId, forecast }),await expect(restoreBookBackup(projectRoot, "evilbook", "../../books/evilbook"))
const { version: currentVersion } = require("../../package.json") as { version: string };import type { ForecastBranch, ForecastModelBranch, NarrativeForecast } from "../../forecast/schema.js";import { buildRuntimeStateArtifacts, createInitialRuntimeState, saveRuntimeStateSnapshot } from "../../state/runtime-state-store.js";const maliciousId = "../../../../../escape";
const client=createLLMClient({service:'custom',provider:'openai',configSource:'studio',model:'fixture',apiKey:'fixture',baseUrl:`http://127.0.0.1:${(server.address() as {port:number}).port}/v1`,apiForconst client=createLLMClient({service:'custom',provider:'openai',configSource:'studio',model:'fixture',apiKey:'fixture',baseUrl:`http://127.0.0.1:${(server.address() as {port:number}).port}/v1`,apiForconst client=createLLMClient({service:'custom',provider:'openai',configSource:'studio',model:'fixture',apiKey:'fixture',baseUrl:`http://127.0.0.1:${(server.address() as {port:number}).port}/v1`,apiForvi.stubEnv('INKOS_COVER_ENDPOINT',`http://127.0.0.1:${(server.address() as {port:number}).port}/v1/images/generations`);const client=createLLMClient({service:'custom',provider:'openai',configSource:'studio',model:'fixture',apiKey:'fixture',baseUrl:`http://127.0.0.1:${(server.address() as {port:number}).port}/v1`,apiForcommander, dotenv, epub-gen-memory, ink-text-input, marked, marked-terminal, react, @types/marked-terminal
@sinclair/typebox, dotenv, epub-gen-memory, js-yaml, unpdf, zod, @types/js-yaml, typescript
@hono/node-server, hono, @base-ui/react, @fontsource-variable/geist, @playwright/test, @radix-ui/react-use-controllable-state, @streamdown/cjk, @streamdown/code
assets/inkos-short-demo-cover.png
assets/play-item-warcraft.png
Gates applied: no_behavioural_pass.
a71b880c8dc6full audit observations/trust-audit/skill/narcooo__inkos.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-20 | a71b880c8dc6 | BLOCK | D | 66 | first audit |
Questions
What does the inkos — narcooo/inkos skill do?
Story Creation AI Agent for novel, scripts, translation, interactive games, and IP content
Is inkos — narcooo/inkos safe to install?
No — not without reading the findings first. The audit graded it D (66/100) and found 2 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What can inkos — narcooo/inkos access on my machine?
The audit observed that it reaches the network, runs shell commands and reads or writes files. Each of those is consistent with what it says it does. Secrets in the source: none found.
Which assistants does inkos — narcooo/inkos work with?
Its documentation mentions claude-code and openclaw. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (a71b880c8dc6), read on 2026-10-20. The repository is watched, and a new audit runs when it changes — this is the first audit.
Add this badge to your README
Shows this page's audit result and links back to it. It updates when the audit does.
[](https://modelsatlas.com/skills/narcooo/inkos/)
Not your listing, or something out of date? Claim or update your listing.