Bring in the source.
Ingest a note through a copilot CLI, or propose pages that you or your agent wrote. The result is a plan and page previews.
plan.json + preview/*.mdWIKI-STUDIO
Turn source notes into a curated Markdown knowledge base. Propose changes, review what will land, and give your agents knowledge they can read, cite, and maintain.
python -m pip install wiki-studioPython 3.11–3.13 · Standard library only.
Use it independently or alongside MemKernel’s wiki bridge.
A DECISION WITH ITS CONTEXT
Keep concurrent inventory updates and order writes in one transaction.
path: notes/database-decision.mdIllustrative page excerpt · Drafts stay reviewable.
Keep decisions, concepts, workflows, and incident lessons in typed pages, connected by an index and an edit log. Every stage leaves files you can inspect.
Ingest a note through a copilot CLI, or propose pages that you or your agent wrote. The result is a plan and page previews.
plan.json + preview/*.mdInspect the proposal before promotion. Wiki-Studio validates the staged pages and links before applying the changes.
wiki-studio promote … --dry-runQuery the wiki with citations, find pages without a model, and lint the structure as your project’s knowledge changes.
wiki-studio lint --healthThe structural gate checks page shape, placement, links, and reachability. Reviewing the facts and the quality of the prose remains part of curation.
Install the package in a Python environment, initialize your wiki, and inspect its layout. Add a copilot backend when you want model-assisted ingestion and answers.
From your project directory on macOS or Linux, using an installed Python 3.11, 3.12, or 3.13:
python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install wiki-studio
wiki-studio --version
wiki-studio init --title "My project knowledge"
wiki-studio info
wiki-studio lintOn Windows, use py -3.11 -m venv .venv and activate with .venv\Scripts\Activate.ps1 in PowerShell. init creates missing index and log files and preserves existing ones.
Choose an existing source file within your project. This example uses Claude Code, installed and authenticated separately.
# Replace the path with an existing source file.
wiki-studio ingest notes/database-decision.md --backend claude
# Inspect the printed proposal directory:
# plan.json describes edits; preview/ contains pages.
# Replace PROPOSAL_DIR with that directory.
wiki-studio promote "PROPOSAL_DIR" --dry-run
wiki-studio promote "PROPOSAL_DIR"
wiki-studio query "Why did we choose PostgreSQL?" --backend claude
wiki-studio lint --healthPromote after reviewing the proposal and a successful dry run. An ingest can reject a source or fail validation; use the reported rationale before proceeding.
Bring your copilot. Supported backends are claude, codex, cursor (the cursor-agent binary), and pi (the pi-code binary). Choose one with --backend or WIKI_STUDIO_BACKEND. Source text and selected pages are passed to that CLI. Initialization, direct proposals, promotion, page finding, and structural linting need no LLM.
| Purpose | Default location |
|---|---|
| Project root | Git repository root, or the current directory outside Git |
| Curated wiki | <root>/knowledge/wiki |
| Pending proposals | <root>/doc_internal/proposals |
| Query log | <root>/doc_internal/wiki-query-log.jsonl |
| Ingest audit log | <wiki-dir>/.audit/ingest-log.md |
Override locations with --root, --wiki-dir, and --proposals-dir, or their WIKI_STUDIO_* environment variables. Flags take precedence. Run wiki-studio info --json to inspect the resolved paths.
Use the shell directly or let your agent call it. Each command has its own help: wiki-studio <command> --help.
| Command | What it does | Model needed? |
|---|---|---|
init | Create missing wiki index and log files. | No |
ingest <source> | Evaluate a source and draft a proposal containing one or more page edits. | Yes |
propose --from <dir> | Validate pages you supply and package them as a proposal. | No |
promote <proposal-dir> | Validate and apply a proposal; supports a dry run. | No |
query "question" | Load the index and selected pages, then produce an answer with citations. | Yes |
find "question" | Show the pages a query would select, without generating an answer. | No |
lint | Check page metadata, structure, links, reachability, and audit format. | Only for the optional contradiction check |
audit-flush | Explicitly commit pending ingest audit entries to Git; supports a dry run. | No |
info | Show active paths, their configuration sources, and the selected schema. | No |
find and query start with the index, then rank linked pages by word overlap with the question. The default limit is five additional pages; set --max-pages to change it. This is keyword-based selection and can miss relevant pages.
lint --health adds stale source, orphan, and cross-link checks. Add --backend for contradiction checks and --strict to make audit and health findings fail the command.
Use wiki_studio.api in a harness, an automation, or your own application. The CLI calls the same functions.
WikiPaths defines the project root, wiki, and proposals directories.
Typed results expose selected pages, applied edits, citations, and validation findings.
Pass your own page edits to api.propose, or use api.ingest and api.query with a backend.
from pathlib import Path
from wiki_studio import api
from wiki_studio.paths import WikiPaths
paths = WikiPaths.for_root(Path.cwd())
api.init(paths, title="Project knowledge")
# Search the pages already in your wiki.
result = api.find(
"database decision", paths, max_pages=5
)
for page in result.pages:
print(page.title, page.file)
# Inspect structural and health findings.
report = api.lint(paths, health=True)
print(report.passed, report.violations)
if report.health:
print(report.health.findings)A new wiki has no content pages yet. Add pages through ingest or propose, then promote them before searching.
MemKernel retains and retrieves a copilot’s working context. Wiki-Studio maintains structured Markdown knowledge. Their shared page schema connects memory to a wiki people can review.
Export long-term memories as draft pages with source references.
Review and maintain decisions, concepts, and workflows in Markdown.
Import curated wiki pages back into long-term memory.
Run these commands from your project root. Call MemKernel’s wiki_export and wiki_import tools from your MCP client; use Wiki-Studio’s CLI to inspect and lint the shared pages.
For an MCP client, also set MEMKERNEL_WIKI_DIR to that same absolute path in the server configuration. The shell exports configure processes started from this shell.
export MEMKERNEL_WIKI_DIR="$PWD/knowledge/wiki"
export WIKI_STUDIO_WIKI_DIR="$MEMKERNEL_WIKI_DIR"
wiki-studio info
wiki-studio lint --healthmemkernel[wiki] dependency and routes exports through Wiki-Studio’s proposal/promotion gate. That extra is not included in the published MemKernel 0.4.1 metadata. Check the MemKernel releases before using the gated integration.Wiki-Studio also works on its own. You don’t need MemKernel to create, curate, or query a wiki.
Install from PyPI, read the schema, and see how other tools use the same API.
Package details and published releases.
02Flags, configuration, backends, and exit codes.
03Page types, required sections, and source metadata.
04Recipes for MemKernel and other consumers.
Content describes Wiki-Studio 0.4.1. Package metadata and integration status checked October 20, 2026.
Start with your project’s notes. Build knowledge you can carry forward.