Skip to main content

title: Vyāsa

Vyāsa icon

Markdown feeds Python
Instant sites, no code juggling
CSS reigns supreme

Vyasa turns a folder of Markdown into a navigable site served by Python. It is for people who want notes, docs, books, or a blog to feel like a real site without adding a JavaScript build stack. This README is the shortest path from pip install vyasa to a working local site. By the end, you should know how to run it, what it is good at, and which manual page to open next when the simple path stops being enough.

Vyasa

Vyasa is a lightweight Markdown site engine built on FastHTML. It gives you a live local server, folder-aware navigation, rich Markdown features, CSS-first theming, and a static build path from the same content tree.

Start Here

pip install vyasa
mkdir my-notes
cd my-notes
printf '# Hello\n\nThis is my first Vyasa page.\n' > index.md
vyasa .

Open http://127.0.0.1:5001.

If you want Google login later, install pip install "vyasa[auth]". If you want a static export instead of a live server, run vyasa build . -o ./dist.

The First Configuration Most People Add

title = "My Notes"
theme_preset = "serene-manuscript"
sidebars_open = true

Put that in a .vyasa file at the root of your content folder. Configuration precedence is CLI args > .vyasa > environment variables > defaults, so you can start simple and still override behavior when you need to.

What It Buys You

  • Write plain Markdown, then opt into Vyasa features like callouts, tabs, Mermaid, D2, math, footnotes as sidenotes, and code snippet includes only when the page needs them.
  • Keep content organized as folders; index.md or README.md becomes the landing page for that branch.
  • Use a blog-style homepage at / when you want the newest posts first, or set home_sort = "name_asc" / home_sort = "name_desc" to order homepage cards by filename instead.
  • Style the site with normal CSS and bundled theme presets instead of introducing a component system.
  • Use the same content tree for a live local server and a static export.
  • Add auth and RBAC when the content stops being public or personal.

Feature Map

mindmap
  root((Vyasa))
    Authoring
      Markdown
      Callouts
      Tabs
      Footnotes as sidenotes
      Math
      Code snippet includes
      Tasks graphs
    Diagrams
      Mermaid
      D2
    Navigation
      Folder-aware tree
      README or index landing pages
      Breadcrumbs and TOC
      Present mode from docs
    Styling
      CSS-first theming
      Theme presets
      Custom CSS hooks
    Runtime
      Live Python server
      HTMX page swaps
      Search and rich page chrome
    Publishing
      Static export
      Blog-style homepage
      Manual, notes, docs, books in one tree
    Access
      Google auth
      RBAC rules

What A Content Tree Looks Like

my-notes/
├── .vyasa
├── index.md
├── posts/
│   ├── first-post.md
│   └── second-post.md
└── manual/
    ├── README.md
    └── architecture.md

Folders become navigation groups. index.md or README.md gives a folder its own landing page, so a blog, a manual, and a notebook can live in the same tree without special routing setup.

When You Need The Next Layer

If your next question is about shaping the site, open the configuration guide. If the question is about what the authoring surface can do, go to Markdown writing features. Diagram-specific behavior lives in the Mermaid guide and the D2 guide, while shell styling and theme presets are covered in theming.

Use security when the site needs login or path rules, architecture demo when you want the request and rendering model in graph form, and advanced behavior when you are past the happy path and want the edges. The items/tasks graph surface now supports markdown links inside attr values like spec: [API](guide#api), plus group color inheritance where child nodes use the nearest colored parent group unless they set their own color. Shared palettes can live in one JSON file via color_palette_source: shared-palettes.json with node_color_palettes and edge_color_palettes inside it.

The manual itself starts at vyasa manual/README.md, but you should not need it before the quick start above works.

Release files for vyasa 0.6.119

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

Source distribution (sdist)

Source distribution for vyasa 0.6.119
File Size Uploaded
vyasa-0.6.119.tar.gz 3.9 MB Details

Built distribution (wheel)

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

Total release size: 7.8 MB

Release files / vyasa-0.6.119.tar.gz

Download URL vyasa-0.6.119.tar.gz
Size 3.9 MB
Tags Source
SHA-256 checksum
How to use checksums
ffd491c96dc4d465cdf535ee55537df957a8accadaae29694c128730187560c2
BLAKE2b-256 checksum
How to use checksums
2d15d52541a2b4bfb6a1d60bccab72d7525d85efd6015017679c230d4e72a83a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release files / vyasa-0.6.119-py3-none-any.whl

Download URL vyasa-0.6.119-py3-none-any.whl
Size 3.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
129c24d721b03713e38bf4afefbb8aedba8dc79d0c2867ede58414710446dd0e
BLAKE2b-256 checksum
How to use checksums
7d815ba570a9974b414e5013476cced4cb0155548b40f86f936adf5d9f32b7d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release history Release notifications | RSS feed

This release

0.6.119 This release

2 release files

0.6.96

2 release files

0.6.95

2 release files

0.6.94

2 release files

0.6.93

2 release files

0.6.92

2 release files

0.6.91

2 release files

0.6.90

2 release files

0.6.89

2 release files

0.6.88

2 release files

0.6.87

2 release files

0.6.79

2 release files

0.6.78

2 release files

0.6.77

2 release files

0.6.76

2 release files

0.6.75

2 release files

0.6.74

2 release files

0.6.73

2 release files

0.6.72

2 release files

0.6.71

2 release files

0.6.70

2 release files

0.6.69

2 release files

0.6.68

2 release files

0.6.67

2 release files

0.6.66

2 release files

0.6.65

2 release files

0.6.64

2 release files

0.6.63

2 release files

0.6.62

2 release files

0.6.61

2 release files

0.6.60

2 release files

0.6.59

2 release files

0.6.58

2 release files

0.6.57

2 release files

0.6.56

2 release files

0.6.55

2 release files

0.6.54

2 release files

0.6.53

2 release files

0.6.52

2 release files

0.6.51

2 release files

0.6.50

2 release files

0.6.49

2 release files

0.6.48

2 release files

0.6.47

2 release files

0.6.46

2 release files

0.6.27

2 release files

0.6.26

2 release files

0.6.25

2 release files

0.6.24

2 release files

0.6.23

2 release files

0.6.22

2 release files

0.6.21

2 release files

0.6.20

2 release files

0.6.19

2 release files

0.6.18

2 release files

0.6.17

2 release files

0.6.16

2 release files

0.6.15

2 release files

0.6.14

2 release files

0.6.13

2 release files

0.6.12

2 release files

0.6.11

2 release files

0.6.10

2 release files

0.6.9

2 release files

0.6.8

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.16

2 release files

0.5.15

2 release files

0.5.14

2 release files

0.5.13

2 release files

0.5.12

2 release files

0.5.11

2 release files

0.5.10

2 release files

0.5.9

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.20

2 release files

0.4.19

2 release files

0.4.18

2 release files

0.4.17

2 release files

0.4.16

2 release files

0.4.15

2 release files

0.4.14

2 release files

0.4.13

2 release files

0.4.12

2 release files

0.4.11

2 release files

0.4.10

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.65

2 release files

0.3.64

2 release files

0.3.63

2 release files

0.3.62

2 release files

0.3.61

2 release files

0.3.60

2 release files

0.3.59

2 release files

0.3.58

2 release files

0.3.57

2 release files

0.3.56

2 release files

0.3.55

2 release files

0.3.54

2 release files

0.3.53

2 release files

0.3.52

2 release files

0.3.51

2 release files

0.3.50

2 release files

0.3.49

2 release files

0.3.48

2 release files

0.3.47

2 release files

0.3.46

2 release files

0.3.45

2 release files

0.3.44

2 release files

0.3.43

2 release files

0.3.42

2 release files

0.3.41

2 release files

0.3.40

2 release files

0.3.36

2 release files

0.3.35

2 release files

0.3.33

2 release files

0.3.32

2 release files

0.3.31

2 release files

0.3.30

2 release files

0.3.29

2 release files

0.3.28

2 release files

0.3.27

2 release files

0.3.26

2 release files

0.3.25

2 release files

0.3.23

2 release files

0.3.22

2 release files

0.3.21

2 release files

0.3.20

2 release files

0.3.19

2 release files

0.3.18

2 release files

0.3.8

2 release files

0.3.6

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