Skip to main content
Glama
yuelinghuashu

yuelinghuashu/story-cli

📚 story-cli

中文 English License Node CI npm version npm downloads

Null-Deployment, Git-natives Markdown-Content-Management-CLI. Verwalte Geschichten/Papiere/Notizen/Tutorials mit einfachen Verzeichnis-Konventionen, generiere automatisch README, exportiere EPUB, zweisprachig Chinesisch/Englisch.


✨ Funktionen

  • Einfache Verzeichnis-Konvention — Inhalt ist ein Ordner: NN-名称/ enthält config.json + text.md

  • Automatische README-Generierung — Jeder Eintrag und das Root-Index werden automatisch generiert (templategesteuert, anpassbar)

  • Seriengruppierung und Sortierungseries / seriesOrder steuern die Anzeigereihenfolge, beliebiges Einfügen ohne Neuordnung

  • Laufzeitvalidierung — Konfiguration wird vor dem Build geprüft (Pflichtfelder, Enums, Formate)

  • Compliance-Prüfungstory validate prüft nach Story-Repo-Spezifikation (Verzeichnisbenennung / UTF-8 / doppelte Nummern / Schema)

  • Verknüpfte Geschichtenstory link verwaltet schwache Verknüpfungen; story build schlägt automatisch Kandidaten für Serienverknüpfungen vor

  • Zweisprachige Unterstützung — Chinesisch/Englisch-Inhalte + automatisch generierte lokalisierte READMEs

  • Kapitel + Wortanzahl — Automatische Extraktion von Kapitelüberschriften und sprachbewusste Wortstatistik

  • Mehrformat-Export — EPUB (Cover-Rendering/Layout-Stile/Serienmetadaten) / HTML / TXT / JSON / Markdown / embeddings, unterstützt --stdout-Pipes

  • Allgemeine Content-Plattform — Wissensdatenbank-Modus (Papiere/Interviews/Notizen), Technische-Dokumentation-Modus (Tutorials/API)

  • MCP-Server — KI-Clients (Claude / Cursor) können direkt auf die Inhaltsbibliothek lesen und schreiben

  • GitHub Action — Null-Konfigurations-CI-Einstieg (yuelinghuashu/story-cli@v1), ein Klick für „Push → Build → Veröffentlichen"

  • Watch-Modus — Automatischer Neubau bei Dateiänderungen


Related MCP server: obsidian-kb

🚀 Schnellstart

# 安装(需要 Node.js >= 22)
npm install -g @yuelinghuashu/story-cli

# 创建示例仓库并查看效果
story demo

# 初始化仓库
story init

# 创建内容并编写
story new "我的新故事"

# 构建所有 README
story build

# 导出 EPUB / 统计
story epub --all
story stats
make init                 # 初始化
make new TITLE="我的故事"  # 新建并自动构建
make commit               # 构建 + 提交
make push                 # 构建 + 提交 + 推送
make stats                # 查看创作统计
make analyze              # 写作质量分析(重复短语 / 字数过期 / 章节趋势,需 jq)

Windows-Benutzer können auch den von story init generierten story.ps1 (PowerShell-Workflow) verwenden: .\story.ps1 init / .\story.ps1 new -Title '我的故事' / .\story.ps1 build.


🌱 Mehr als nur Geschichten

Allgemeine Inhaltsverwaltung — Jedes Text-Asset, das „normalisiert" werden kann, kann mit demselben Workflow verwaltet werden:

Vorlagenmodus

Inhaltstyp

Typisches Szenario

--template=story (Standard)

Roman / Geschichte

Original, Fan-Werke

--template=knowledge

Paper / Interview / Blog / Notizen

Wissensdatenbank, Forschungsbibliothek

--template=tech

Tutorial / API-Dokumentation / Änderungsprotokoll

Technischer Blog, Projektdokumentation

story init --template=knowledge
story init --template=tech

🤖 Lass KI deine Inhaltsbibliothek verwalten

story-cli enthält einen integrierten MCP-Server – KI-Clients (Claude Desktop / Cursor / VSCode Copilot Chat) können direkt auf deine Inhaltsbibliothek lesen und schreiben. Die KI kann den vollständigen Kreislauf „Erstellen → Schreiben → Bauen → Statistiken" eigenständig durchführen, ohne manuelle Befehle im Terminal.

💡 Token-Effizienz: Die MCP-Tools sind von Anfang an darauf ausgelegt, KI-Aufrufkosten zu sparen. scan_stories liefert standardmäßig kompakte Ausgaben (Verzeichnisdurchsicht spart ~80-95%), read_chapter unterstützt bedarfsgesteuertes Abschneiden (Fortsetzungsszenarien sparen ~95%+), stats liefert alle Daten mit einem Aufruf (~99%) – jedes Detail reduziert den Token-Verbrauch für deinen KI-Workflow.

Fähigkeit

MCP-Tool

Beschreibung

📖 Durchsuchen

scan_stories / read_chapter

Geschichten auflisten, Kapitel lesen (unterstützt bedarfsgesteuertes Laden und Abschneiden am Ende, spart Token)

✍️ Schreiben

write_chapter / create_story

Neue Geschichte erstellen, Text atomar schreiben (optional mit Compliance-Prüfung nach dem Schreiben)

✅ Verwaltung

edit_config / build / validate

Metadatenfelder direkt ändern, README-Neubau ausführen, Konfigurationsgültigkeit prüfen

📊 Statistiken

stats

Gesamtwortzahl / Kapitelanzahl / Serienfortschritt / Gesundheitszustand abrufen

# 启动 MCP Server(需在故事仓库根目录;--root 可从任意目录指定仓库)
story mcp-server

💡 Detaillierte Konfiguration und Beispiele findest du in docs/mcp.md. Der MCP-Server liest und schreibt alle Dateien im aktuellen Arbeitsverzeichnis. Bitte nur in vertrauenswürdigen Repositories ausführen.

🎯 Vorbereitung von Feintuning-Daten (SFT / Embedding)

Die strukturierte Ausgabe der Geschichtsbibliothek eignet sich natürlich als Datenquelle für das Training großer Modelle – config.json enthält Klassifikations-Tags, export json schneidet präzise nach Kapiteln, export embeddings gibt reine Textblöcke aus. In Kombination mit --stdout + Unix-Toolchain, eine einzige Pipeline-Zeile reicht, um in ein Standard-Feintuning-Format zu konvertieren:

# 导出为指令微调 JSONL(summary → instruction,正文 → output)
story export json --stdout | jq -c '.stories[] | {messages: [{role: "user", content: .summary}, {role: "assistant", content: .content}]}' > sft_data.jsonl

# 导出为 Embedding 训练格式
story export embeddings --stdout | jq -c '{text: .content, metadata: {title: .title, series: .series}}' > embedding_data.jsonl

# 快速分析数据配比(总字数/章节分布/重复短语)
story stats --json | jq '{words: .totalWords, chapters: .totalChapters, repeated: .analysis.repeated}'

💡 story-cli stellt sicher: UTF-8-Kodierung (GBK automatische Erkennung mit Warnung), Kapitel-Slicing (vermeidet semantische Unterbrechungen), vollständige Metadaten (type/series/summary können natürlich als Klassifikations-Tags verwendet werden). Kein zusätzliches Bereinigungsskript erforderlich.


🛠️ Häufige Befehle

Befehl

Beschreibung

story init [--template=story|knowledge|tech]

Repository initialisieren (Standard: Geschichten-/Wissensdatenbank-/Technische-Dokumente-Modus)

story new "标题" [--type] [--lang] [--author] [--creator]

Neuen Eintrag erstellen

story build [--validate-only] [--save-counts] [--watch]

README erstellen

story epub "标题" [--all] [--split-by-volume] [--output=dir] [--css=path]

EPUB exportieren

story export html / txt / json / md / embeddings [--stdout]

Mehrere Formate exportieren (embeddings als Textblock-JSONL)

story import json --file=xxx.json

Massenimport aus JSON

story stats [--json]

Schreibstatistiken

story validate [--json]

Compliance-Prüfung (Story-Repo-Spezifikation)

story link "A" "B" [--remove=...] [--list]

Geschichtenverknüpfungen verwalten (schwache Verknüpfungen)

story mcp-server

MCP-Server starten (KI-Verbindungseinstieg)

Alle Befehlsaliase, Unterbefehle, Parameter und Kategorien findest du in docs/commands.md (zweisprachig Chinesisch/Englisch).

Benutzerdefinierte Geschichtstypen/Status und lokalisierte Tags:

{
  "types": ["original", "fanfic", "translation"],
  "statuses": ["completed", "ongoing", "planned"],
  "typeLabels": { "translation": { "zh": "翻译", "en": "Translation" } }
}

Die integrierten Enums enthalten bereits Tags, keine doppelte Konfiguration erforderlich. Das Löschen der Datei setzt auf die Standardwerte zurück.


📚 Dokumentation

Dokument

Chinesisch

English

Inhalt

Designphilosophie

design.md

design.en.md

Projektphilosophie

Repository-Spezifikation

specification.md

specification.en.md

Datenspezifikation

Wie man Inhalte hinzufügt

add-story.md

add-story.en.md

Verzeichnis-Konvention

Inhaltsexport

export.md

export.en.md

Exportanleitung

EPUB / PDF

epub.md

epub.en.md

EPUB-Export

CI

ci.md

ci.en.md

GitHub Actions

MCP Server

mcp.md

mcp.en.md

KI-Verbindungsanleitung

Architektur

architecture.md

architecture.en.md

Moduldesign

Befehlsreferenz

commands.md

commands.en.md

Vollständige Befehlsliste

Änderungsprotokoll

CHANGELOG.md

CHANGELOG.en.md

Änderungsprotokoll


⚠️ Kodierungsanforderungen

Alle Dateien müssen in UTF-8 kodiert sein. Bei Erkennung von GBK/GB2312 wird eine Warnung ausgegeben, aber der Build wird nicht blockiert.


🧪 Tests

make test         # 或 pnpm test

550+ Tests alle bestanden. Abgedeckt: Scanner, Seriengruppierung, Validierung, Template-Rendering, Wortzählung, Internationalisierung, README-Generierung, EPUB-Export, CLI-End-to-End (Smoke-Tests decken alle Befehle ab), .storyignore, MCP-Protokoll, JSON-Import, GitHub-Action-Struktur, Compliance-Prüfung, Verknüpfungsvorschläge, inkrementeller Build-Cache, Embeddings-Export usw.


☕ Sponsoring-Unterstützung


⚖️ License

MIT


🤝 Mitwirken

Wir freuen uns über Issues (Bug-Meldungen / Funktionsvorschläge, mit Formularvorlage); wenn du Code beitragen möchtest, lies bitte CONTRIBUTING.md und erfahre mehr über die Projektausrichtung in ROADMAP.md.

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    Git-backed MCP server for creating and maintaining an Obsidian-style markdown knowledge base with full CRUD, search, and git sync.
    7
  • A
    license
    -
    quality
    B
    maintenance
    A dynamic, governed memory layer for Markdown notes that serves knowledge to AI clients and humans through a secure MCP server, with scoped access, git-audited changes, and optional LLM-powered semantic search.
    Apache 2.0
  • A
    license
    B
    quality
    A
    maintenance
    Personal multi-LLM memory repository using Markdown as source of truth, SQLite FTS5 for retrieval, and MCP tools for search, context, and write proposals.
    74
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • MCP-native collaborative markdown editor with real-time AI document editing

  • MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.

  • Generate PDFs from templates via AI chat. Works with Claude, ChatGPT, Cursor, and any MCP client.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yuelinghuashu/story-cli'

If you have feedback or need assistance with the MCP directory API, please join our Discord server