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
or, the universal fallback: cargo install shiki-cli
See all install options.
Go on, click around. Whatever you land on is exactly what's waiting for you in your terminal — no surprises.
Live screenshot shown for this theme.
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.
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.
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.
Yazi-inspired modal navigation (hjkl, visual mode, leader key) with every
binding defined in config.toml. Nothing hardcoded except the basics.
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.
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.
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.
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.
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.
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.
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.
--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.
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.
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.
yay -S shiki-bin
or yay -S shiki to build from source instead of the prebuilt binary.
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 install shiki-cli
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.
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.
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.
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…