shiki (私記)
Rust · TUI · Git-native

Your notes.
Your terminal.
Actually yours.

shiki is a three-pane, Yazi-inspired note-taking app that never leaves the terminal. Every notebook is its own git repository, every note has real version history for free, and every pixel of the UI — including this page — is themeable.

Quick install (Cargo):

cargo install shiki-cli

See all install options.

shiki — demo
Animated demo of shiki: browsing notebooks and nested folders, global and in-notebook fuzzy search, tags, multi-select batch delete, creating and moving folders, writing a full note, a git commit, and live theme switching
Make it yours

16 built-in themes. Pick one below — this whole page changes with it.

Go on, click around. Whatever you land on is exactly what's waiting for you in your terminal — no surprises.

shiki — theme: gruvbox-dark
shiki TUI with the selected theme applied

Live screenshot shown for this theme.

Why shiki

Notes software that respects how you actually work.

Most note apps bolt sync, versioning, and organization on top as separate systems you have to trust. shiki builds all three on top of something you already trust: git.

Notebooks are real git repos

Not a database, not a proprietary sync format — each notebook is an independent git repository from the moment you create it. Push it, clone it, inspect it with plain git log, host it anywhere.

Real per-note version history

Every commit that touched a note is browsable and revertible straight from the TUI — because it's the actual git history, not a bolted-on versioning system that can drift from what's on disk.

100% keyboard, fully remappable

Yazi-inspired modal navigation (hjkl, visual mode, leader key) with every binding defined in config.toml. Nothing hardcoded except the basics.

Responsive 3-pane layout

Wide terminals get the full Notebooks / Notes / Preview layout; narrow or square ones stack panels or collapse to a single focused view — no broken rendering at any size.

Auto-sync, your way

Per-notebook policy for auto-commit and auto-push, robust HTTPS/SSH auth reusing your system's own git credential store, and automatic fallback to the remote's real default branch.

Self-updating, self-diagnosing

Check for a new release and install it without leaving the TUI. shiki doctor diagnoses your setup — config, git, editor, terminal — even when the config itself is broken.

Bring your own notes directory

Point a whole vault or individual notebooks at any existing directory on disk — an Obsidian vault, a plain markdown folder, anywhere — via data_dir or a per-notebook path. No migration, no symlinks, no duplicated files.

Every task, across every notebook, in one view

Plain - [ ] checkboxes anywhere in your notes become a single urgency-sorted list — overdue, due today, future, undated — with an optional @due(tomorrow)/@due(fri) tag that pins itself to a real date the moment you save. Daily notes open with a "Due today" agenda built from all of them.

See how your notes actually connect

shiki graph draws your [[wikilink]] network right in the terminal — a deterministic, force-directed layout with hubs, edges, and orphans called out. The links modal also surfaces "Mentions (unlinked)" — plain-text mentions you probably meant to link — one keypress away from becoming a real backlink.

Real syntax highlighting for code in your notes

Fenced code blocks render with actual per-token coloring in PREVIEW, matched to your active theme's light/dark bias — not flat dimmed text. Mermaid fences get their own accent treatment instead of blending into a plain blockquote.

❯_

A real CLI, not just a TUI with flags

--json on every read command, non-interactive note creation (--body/--stdin/--tags, no $EDITOR required), and scriptable tasks/graph output — built for cron jobs, status bars, and shell pipelines, not just the terminal UI.

Export and publish, your format

shiki export bundles a whole notebook into one self-contained HTML or Markdown file. shiki publish goes further — a themed PDF (17 built-in themes) rendered through go-pretty-pdf, fetched automatically the first time you need it.

Get started

Install

However you like to install things, we've probably got you covered — a package manager, one cargo command, or just the raw binary. Every tagged release ships prebuilt for Linux, Windows, and macOS (Intel + Apple Silicon), checksums included.

Arch Linux (yay / paru)

yay -S shiki-bin

or yay -S shiki to build from source instead of the prebuilt binary.

Homebrew (macOS)

brew install sazardev/shiki/shiki

Use the fully-qualified name — homebrew/core already has an unrelated formula also called shiki, and a plain brew tap + brew install shiki installs that one instead.

Cargo (any platform)

cargo install shiki-cli

Scoop (Windows)

scoop bucket add sazardev https://github.com/sazardev/shiki
scoop install shiki

Getting Couldn't find manifest for 'shiki'? Run the scoop bucket add line first if you haven't, or scoop update if you added the bucket a while ago, then retry scoop install shiki.

Prebuilt binary

Grab the archive for your OS from the latest release, extract it, and put the binary on your $PATH.

See the full README for every install method and upgrade notes.

Learn more

Documentation

Forgot a keybinding mid-flow? Need the exact shape of config.toml? It's all here — every keybinding, every command, every option, on one page you can actually search.

Read the full documentation →
Thank you

Contributors

shiki gets better every time someone outside the project jumps in — a pull request, a bug report, an idea. If you've got one, we'd love to see it: here's how to contribute →

Loading contributors…