Skip to main content

Furatena — live documentation from markdown

Furatena turns markdown into a documentation site that updates as you edit — with built-in search, navigation, static export, and agent-readable catalog data from the same corpus.

The CLI is fura (short for Furatena).

Under the hood: markdown is indexed into a queryable graph and served as hypermedia fragments (htmx) inside a persistent shell — no static rebuild loop, no client framework. Export to GitHub Pages or feed /catalog.json to agents from the same corpus.

Quick start

From a checkout:

uv sync --group dev
uv run fura init /tmp/my-docs --name "My Docs"
uv run fura --app-root /tmp/my-docs check --content-only
uv run fura --app-root /tmp/my-docs serve

After the package is published to PyPI (PYPI.md):

pip install furatena
# or: uv tool install furatena
fura init ./my-docs --name "My Docs"
fura --app-root ./my-docs serve

uv run fura serve is the canonical zero-install command from a checkout. uv sync installs fura into the project environment, but does not place a bare fura command on your global shell path. make serve and ./app/run are convenience launchers for the same CLI path.

To opt into a bare, globally available command backed by this checkout:

uv tool install --editable .
fura --help
fura serve

If the install reports that the uv tool directory is missing from PATH, run uv tool update-shell, restart the shell, and retry fura --help. Use uv tool dir --bin to inspect the executable directory.

Open http://127.0.0.1:8001/

The default app/ instance dogfoods the Furatena documentation corpus under content/furatena/.

Commands

uv run fura serve              # hybrid when app/frozen/ exists
uv run fura init ./docs-site   # scaffold a standalone docs app
uv run fura serve --author     # force live index
uv run fura freeze             # catalog IR + HTML + assets → app/frozen/
uv run fura export             # static HTML → app/public/
uv run fura check              # Chirp contracts + corpus lint
uv run fura query --directive tabs
uv run fura migrate --dry-run  # preview MDX → Patitas markdown lowering
uv run fura recipes --json     # stable agent workflow recipes
uv run fura mcp --describe --json
uv run fura author status docs/get-started --json

Contributor and CI validation use the same risk-based Make targets. See CI lanes for dependencies, scope, and expected runtimes.

Layout

app/           Default deployment (docs.yaml, theme, mounts)
content/       Markdown corpora (content/furatena = default; content/chirp = test fixture)
data/          Collections, glossary, rewrites
config/        Autodoc and shared config
src/furatena/  Library (catalog graph, directives, CLI)
docs/          Furatena design notes (Dual IR, views, roadmap)
tests/         Catalog and runtime tests

Naming

  • Furatena — the product (from the Muzo legend of Fura and Tena)
  • Fura — CLI and shorthand
  • Itoco — internal name for the catalog graph (optional vocabulary)

Chirp dependency

Furatena depends on the released bengal-chirp package from PyPI. The supported runtime line is pinned in pyproject.toml (>=0.9.0,<0.10.0) so a fresh uv sync --group dev does not depend on any local Chirp checkout.

The production server boundary is also pinned directly to bengal-pounce>=0.9.2,<0.10.0 so deploys retain structured readiness JSON during listener drain and complete large buffered responses under downstream backpressure.

Docs

Metadata

Release files for furatena 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for furatena 0.1.1
File Size Uploaded
furatena-0.1.1.tar.gz 2.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for furatena 0.1.1
File Interpreter ABI Platform
furatena-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 5.0 MB

Release files / furatena-0.1.1.tar.gz

Download URL furatena-0.1.1.tar.gz
Size 2.5 MB
Tags Source
SHA-256 checksum
How to use checksums
fffb8fde6ccbd423bd6b688f22ee946b27ef34eccad3f68eb47dd8dbe7f550bd
BLAKE2b-256 checksum
How to use checksums
dc58f046cf1cd42cbd2898e1f2abf0da766533e213f98324c603dd43f96f2ae2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.

Transparency log

Release files / furatena-0.1.1-py3-none-any.whl

Download URL furatena-0.1.1-py3-none-any.whl
Size 2.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
3ae24ae6429faf90604aec8bc090aed34e17c5351579824924edb960b0388f2e
BLAKE2b-256 checksum
How to use checksums
0c9698f72d0b6d7d8e47a9b4caf010f5e16cdf446ca78b75fc88c68a743dd456
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page