Skip to main content

Turn any folder of Markdown into a beautiful website — instantly.

Project description

oriel

Turn any folder of Markdown into a beautiful website — instantly.

CI Python 3.11+ License: MIT

oriel rendering a folder of agent output as a live site — nav, prose, KaTeX math, and an inline figure

pip install oriel
oriel serve .        # live site → http://127.0.0.1:18787
oriel build .        # or freeze to ./dist to publish

Every Markdown file becomes a page, images become a gallery, and edits refresh the browser on their own. It looks like a publication, not a file listing — with no build step, no front matter, no config.

[!TIP] Especially good for what agents leave behind. Point oriel at a folder Claude Code or a research run just wrote and read it as a real site — dated notes, plots, \(…\) math and all — instead of scrolling raw files. → examples/agent-run

Why not MkDocs / markserv / GitHub?

oriel MkDocs · Quarto markserv GitHub
No build, no config
Live on every refresh ~
Looks like a publication ~
Figures wall + dashboards ~
Obsidian [[wikilinks]]
One pip install, static export

oriel is the middle that was missing: a tiny read-only server you keep running next to a folder.

What you get

📂 Any folder → a site. Loose Markdown at the top level and subfolders both show up; a root README.md is the home page; images become a gallery. Obsidian vaults and agent dumps work as-is.

✍️ Real Markdown. Syntax-highlighted code with copy buttons, KaTeX math in $…$ or \(…\), tables, an auto table-of-contents, and GitHub-style > [!NOTE] callouts.

🔗 Obsidian & agent-native. [[wikilinks]] / ![[embeds]] resolve, dated notes (YYYY-MM-DD_*.md) become a browsable journal, generated plots collect into a figures wall.

⚡ Live & self-contained. Edits auto-refresh the browser — no manual reload; KaTeX is cached locally so math works offline; light/dark themes with a toggle and six presets.

📊 Dashboards via plugins. Drop in an oriel_plugins.py for custom pages — the bundled example adds run-manifest and LLM-spend dashboards.

🚀 Publish anytime. oriel build freezes everything to static HTML — figures and KaTeX bundled, search still works (client-side index) — ready for GitHub Pages.

Publish (static export)

oriel build .                    # → ./dist, ready to deploy
oriel build docs --base /oriel   # subpath hosting (e.g. project GitHub Pages)

URLs stay identical, math renders offline (bundled KaTeX), and search keeps working via a client-side index. A .nojekyll ships for GitHub Pages.

Configure (optional)

Zero config works. To customize, drop an oriel.toml at the folder root:

title   = "My Notes"
preset  = "ocean"          # terracotta · newsprint · forest · ocean · plum · rose
landing = "guide/intro.md"

…or pick a look from the CLI: oriel serve . --theme forest. Every key is in examples/oriel.toml and the docs.

Plugins

A plugin is a register(site) function that adds pages:

def register(site):
    @site.page("/status", "status")
    def status():                       # return an HTML body; oriel adds the chrome
        return site.markdown((site.root / "STATUS.md").read_text())

See examples/oriel_plugins.py for a real one.

[!WARNING] A plugin is ordinary Python that oriel executes — same trust level as running the repo. Don't point oriel at a folder you don't trust.

Security

oriel is a read-only viewer with a shared-secret key — for a personal machine, an SSH tunnel, or behind a reverse proxy, not a public unauthed service on plain HTTP. See SECURITY.md.

Develop

pip install -e ".[dev]"
make dev      # serve ./docs locally (theme gallery, live reload)
make test     # pytest
make lint     # ruff

make help lists every target. The full docs in docs/ are themselves an oriel site.


An oriel is a bay window that projects out from a wall for a wider view — a window onto a folder.

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oriel-0.1.0.tar.gz (172.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oriel-0.1.0-py3-none-any.whl (47.7 kB view details)

Uploaded Python 3

File details

Details for the file oriel-0.1.0.tar.gz.

File metadata

  • Download URL: oriel-0.1.0.tar.gz
  • Upload date:
  • Size: 172.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for oriel-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b89091bffc6329c4b8ac47344d9bd6bf0d186d23ce04454503f7126f7ec6d58a
MD5 dfd0b5249f28650d68c8e40398d97081
BLAKE2b-256 e7715dfb6b6329520be89e0c0cfcaad70466701c6553844c78973aa63f6530c8

See more details on using hashes here.

File details

Details for the file oriel-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: oriel-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 47.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for oriel-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3ba2cdfb49f4762502534ffe9cf895dee67d49b570a30a6a22acb8252a2fa793
MD5 3fc64fb85c72496071f381b15814bb25
BLAKE2b-256 b0761ff2002512e6d25207b20353d506242830b49591a711c8d5e0ded55ffc9e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page