
Research
/Security News
Popular Rust Crates Compromised in Build-Time Supply Chain Attack
Three compromised Rust crates pulled in a malicious dependency that downloaded and executed cross-platform malware during Cargo builds.
@mfittko/repo-wiki
Advanced tools
Node.js CLI and library for compiling any Git repository and its validated documentation into a GitHub Wiki knowledge base.
repo-wiki is a Node.js CLI and library that compiles a Git repository into a source-grounded wiki knowledge base for humans and coding agents.
It follows the LLM Wiki pattern described in docs/PLAN.md: scan the repository at a pinned commit, ingest markdown as secondary evidence, compile durable wiki pages, and lint the result before publishing. GitHub Wiki is the primary publication target today, and GitHub Pages is also supported.
.llmwiki/wiki/.llmwiki/graph.json for internal traversal and incremental mappingHUMAN_NOTES and skips human-owned or unmanaged pages.llmwiki/search/ and exposes repo-wiki search, repo-wiki query, repo-wiki path, and repo-wiki explainToday the package includes:
incremental is wired through the CLI, but scanning is still broad rather than diff-minimal)Documentation-Debt-Report.mdArchitecture.md behind a validated provider boundary@mfittko/repo-wiki is published to the npm registry with each GitHub Release. After the first release, the supported downstream install path is:
npm install @mfittko/repo-wiki
For local verification or offline installs, you can also install from a tarball produced with npm pack:
tarball=$(npm pack | tail -n 1)
npm install "./$tarball"
After install, the runnable CLI is exposed through dist/bin/repo-wiki.js declared in package.json#bin:
npx repo-wiki --help
No clone or local build step is required for normal downstream consumption. The package guarantees the files listed in package.json#files, including dist/, README.md, CHANGELOG.md, .llmwiki/schema.md, .llmwiki/config.json, and the docs/, prompts/, and skills/ trees. Local development from a source clone should use npm install instead (the prepare script runs the build).
@mfittko/repo-wiki also ships as a pi-coding-agent extension. After installing the npm package, enable the extension and skill:
npm install @mfittko/repo-wiki
npx @mfittko/repo-wiki extension install
To install into the global pi agent directory instead of the current project:
npx @mfittko/repo-wiki extension install --global
If a previous shim or skill already exists at the target location, the installer refuses to overwrite it. Re-run with --force to replace:
npx @mfittko/repo-wiki extension install --force
Inside pi, run /reload to load the extension. You can then use the slash command and tools:
/repo_wiki scan --repo .
/repo_wiki compile --scan .llmwiki/run --plan .llmwiki/bootstrap-plan.json --wiki .llmwiki/wiki
/repo_wiki lint --wiki .llmwiki/wiki
Registered tools include:
repo_wiki_cli – run raw CLI argumentsrepo_wiki_scan, repo_wiki_plan, repo_wiki_compile, repo_wiki_lint, repo_wiki_publishrepo_wiki_search, repo_wiki_query, repo_wiki_path, repo_wiki_explainThe extension entrypoint is published as @mfittko/repo-wiki/extension and the skill is shipped in skills/repo-wiki-cli/SKILL.md.
Initialize a repository for repo-wiki:
npx repo-wiki init --repo . --write-agents
Run a full local bootstrap:
npx repo-wiki run \
--mode bootstrap \
--repo . \
--scan .llmwiki/run \
--plan .llmwiki/bootstrap-plan.json \
--wiki .llmwiki/wiki
The default workflow writes:
.llmwiki/config.json.llmwiki/schema.md.llmwiki/run/manifest.json and card artifacts.llmwiki/wiki/*.md.llmwiki/graph.json.llmwiki/search/index.json--write-agents is usedrepo-wiki init Add .llmwiki config/schema files to a repository.
repo-wiki scan Scan source files and markdown docs into cards and a manifest.
repo-wiki plan Create a bootstrap or incremental wiki compilation plan.
repo-wiki lint-docs Validate ingested markdown documentation before compilation.
repo-wiki compile Generate or update local wiki markdown pages.
repo-wiki lint Validate generated wiki pages.
repo-wiki publish Publish local wiki pages to GitHub Wiki or GitHub Pages.
repo-wiki search Search local wiki pages through the built-in offline index.
repo-wiki query Answer from local wiki/search/graph evidence.
repo-wiki path Traverse `.llmwiki/graph.json` between two nodes or paths.
repo-wiki explain Explain a page or graph node with local evidence.
repo-wiki run Run scan -> plan -> lint-docs -> compile -> lint, optionally followed by publish.
run blocks compilation and publish when lint-docs reports error-level issues.
Search is fully local and page-first:
repo-wiki search "scanner" --wiki .llmwiki/wiki
repo-wiki search "architecture" --wiki .llmwiki/wiki --json
repo-wiki query "How does compile work?" --wiki .llmwiki/wiki --json
repo-wiki path Architecture.md src/compiler.ts --graph .llmwiki/graph.json --json
repo-wiki explain Module-compiler-ts.md --wiki .llmwiki/wiki --json
The built-in index is rebuilt deterministically from local wiki pages and stored at .llmwiki/search/index.json. Results include page identity, kind, snippet/summary, source paths, and lightweight internal-link graph context for routing follow-up investigation. query and explain are offline, extractive v1 surfaces: they assemble answers from ranked wiki pages plus graph provenance and include evidence references for material claims. path uses the persisted graph artifact for deterministic shortest-path traversal. Hosted synthesis, file-back, and runtime transports are deferred.
The compiler now emits .llmwiki/graph.json as a deterministic local artifact. Current v1 graph contract includes:
page, source, documentation, modulewiki_link, provenance, affects, ownsThe graph is an additive internal foundation used by planner/linter/incremental helpers. .llmwiki/wiki remains the primary derived artifact and publication surface.
Code at the pinned commit is authoritative. Tests, CI/configuration, and generated schemas are stronger evidence than markdown. Markdown docs are still ingested because they often contain intent, terminology, onboarding, and runbook context.
The default documentation config is loaded from src/config.ts and includes:
documentation.ingest=trueauthority="secondary"README.md, docs/**/*.md, ADR/**/*.md, and .github/**/*.mdrepo-wiki lint-docs validates documented package scripts/commands, checks relative links and referenced repo paths, and compares route/API claims against scanner-extracted route surfaces when available.
The default compiler mode is deterministic.
LLM mode is also shipped:
compiler.mode to llm in .llmwiki/config.json, orLLMWIKI_COMPILER_MODE=llmIn LLM mode:
Architecture.md are synthesized through the provider boundaryUseful environment variables include:
LLMWIKI_COMPILER_MODELLMWIKI_LLM_PROVIDERLLMWIKI_LLM_BASE_URLLLMWIKI_LLM_MODELLLMWIKI_LLM_API_KEYLLMWIKI_LLM_SYSTEM_PROMPTLLMWIKI_LLM_SYSTEM_PROMPT_FILELLMWIKI_LLM_TEMPERATURELLMWIKI_LLM_MAX_OUTPUT_TOKENSLLMWIKI_LLM_TIMEOUT_MSLLMWIKI_LLM_REASONING_EFFORTLLMWIKI_LLM_RETRIESLLMWIKI_LLM_VALIDATION_RETRIESLLMWIKI_LLM_ARCHITECTURE_MODELLLMWIKI_LLM_ARCHITECTURE_MAX_OUTPUT_TOKENSLLMWIKI_LLM_ARCHITECTURE_TIMEOUT_MSLLMWIKI_LLM_ARCHITECTURE_REASONING_EFFORTPublish to GitHub Wiki:
repo-wiki publish \
--target github-wiki \
--wiki .llmwiki/wiki \
--remote https://github.com/OWNER/REPO.wiki.git
Publish to GitHub Pages:
repo-wiki publish \
--target github-pages \
--wiki .llmwiki/wiki \
--remote https://github.com/OWNER/REPO.git \
--branch gh-pages \
--pages-path .
Notes:
frontmatter=provenancefrontmatter=preserve--frontmatter-policy and --frontmatter are both accepted--dry-run reports target, branch/path, page count, and frontmatter policy without pushingLLMWIKI_PUBLISH_REMOTE is the primary publish remote env var; GitHub Wiki publishing also falls back to GITHUB_WIKI_REMOTEThe repository also ships .github/workflows/wiki.yml, which compiles on main, publishes the GitHub Wiki on main, publishes GitHub Pages automatically on pushes to main, and can also publish Pages on manual dispatch when publish_pages=true.
import {
initProject,
scanRepository,
createBootstrapPlan,
lintDocs,
compileWiki,
lintWiki,
publishWiki
} from '@mfittko/repo-wiki';
Advanced exports also expose prompt-building, provider configuration, frontmatter policies, wiki-patch validation, and page-ownership helpers.
npm install
npm run build
npm run lint:code
npm run check
npm run coverage
npm run pack:check
npm run self:wiki
npm run lint:docs
npm run lint:local
npm run changelog:ensure
Notes:
npm test aliases npm run checkdist/npm run coverage enforces a 95% line-coverage gate on compiled sourcenpm run self:wiki runs the package against this repositoryThe current package ships a working CLI, scanner, docs linting, deterministic compiler, LLM page synthesis path, wiki linting, publisher, and CI workflows.
Still planned rather than shipped are user-facing doctor, diff, backend graph adapters (for example Neo4j/SQLite), filed-back query pages, hosted answer synthesis, and runtime transport surfaces described in docs/PLAN.md and docs/plans/wiki-graph.md. The shipped search/query/path/explain surfaces are built-in local page-first commands; external adapters and richer file-back layers remain deferred.
FAQs
Node.js CLI and library for compiling any Git repository and its validated documentation into a GitHub Wiki knowledge base.
We found that @mfittko/repo-wiki demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Three compromised Rust crates pulled in a malicious dependency that downloaded and executed cross-platform malware during Cargo builds.

Research
/Security News
Socket uncovered 77 linked Firefox extensions, including 40 that steal wallet secrets or credentials and 37 deceptive sports-score shells.

Security News
NIST disclosed an unreleased AI tool called V-etalon and opened a broad inquiry into NVD modernization after years of automation plans produced no public enrichment system.