entwine

Open source / Experimental 0.1.0

Project knowledge,
connected.

Turn the Markdown in your repository into navigable documentation, relationships, graphs, backlinks, validation, and structured context.

Read the documentation See a live example Open a project graph

Both sites are generated by Entwine from plain Markdown. Your Markdown remains the source of truth.

docs/ index.md Your project starts here.
docs/ architecture.md Decisions become connections.
docs/specs/ search.md Links carry the relationships.
EntwineOne knowledge model
DocsRead & navigate GraphFollow connections ContextReuse knowledge

The knowledge is already there.

Architecture notes. Specifications. Decisions. They live beside your code, but the connections disappear between files.

Entwine follows the links you already write. It gives each document a page, builds navigation from folders, and shows where each page is referenced. A normal repository with a docs/ directory is enough.

Try it on
your repository.

Download a prebuilt entwine binary for Linux, macOS, or Windows from GitHub Releases, or build from source with Rust stable. No account, documentation app, or configuration file.

Every release lists SHA-256 checksums. Packages for npm or Homebrew do not exist yet.

This site's documentation and the example project were compiled by Entwine itself.

# Download from GitHub Releases, or from a source checkout:
cargo install --path crates/entwine-cli

# In your own repository
mkdir -p docs
printf '# My project\n' > docs/index.md
entwine check
entwine dev

# Publish dist/ to any static host, even below a subpath
entwine build
entwine context --json

Local preview at localhost:4173. Refresh after edits.

Five commands. One source of truth.

entwine dev
Read your docs locally. Rebuild when Markdown changes.
entwine build
Publish plain HTML and CSS to any static host.
entwine check
Catch broken links, bad metadata, and route collisions.
entwine graph
See documents and their directed relationships.
entwine context --json
Export structured knowledge for your own tools.

Small by design.
Clear at the boundaries.

Parse once, project many ways

A Rust engine compiles Markdown into one canonical knowledge model. Site, graph, and context all derive from it. The renderer is not the knowledge model.

Repository-native and stack-agnostic

Your application can use any language or framework. Generated documentation is static HTML and CSS, with no Entwine runtime in production.

Predictable, inspectable output

File-based routes. Stable ordering. Automatically derived backlinks. A linked SVG graph. Markdown or JSON context. No AI inference or network requests during builds.