shiki-cli 0.4.2

shiki: CLI + TUI entrypoint
shiki-cli-0.4.2 is not a library.

shiki (私記)

Personal notes, private log. A TUI note-taking app in Rust — three-pane Yazi-style navigation, notebooks as independent git repos, Markdown with frontmatter, inline and external editing, real per-note version history, themes, and fast fuzzy search.

License: MIT GitHub stars GitHub last commit GitHub repo size

Rust ratatui tokio git2 clap

See IDEA.md for the full design spec (keybinding tables, config schema, theme list) and CHANGELOG.md for release history.

Features

  • Three-pane TUI, Yazi-inspired: modal navigation (hjkl/arrows), collapsing Miller-columns layout, and fully responsive to terminal size — wide terminals get the 3-column layout, narrow/square ones stack panels vertically, very small ones show just the focused panel, full screen.
  • Notebooks are independent git repos — plain directories under the hood, each its own repo, with folders nested to any depth (nb-style). Frontmatter is optional on read, so a plain Markdown file dropped in from elsewhere still shows up.
  • Real per-note version history (not a separate versioning system): every commit that changed a specific note, browsable and revertible straight from the TUI.
  • Full git workflow per notebook: manual sync/push/pull, auto_sync (commit + push automatically every N changes), per-notebook policy overrides, robust HTTPS/SSH auth that reuses your system's own git credential store, and automatic fallback to the remote's actual default branch.
  • Six built-in themes (Catppuccin, Tokyo Night, Gruvbox, Nord, Solarized, and a terminal-native default that inherits your terminal's own palette) with a live-preview picker.
  • Config-driven keybindings, scoped by focus, fully remappable in config.toml — nothing hardcoded except plain navigation.
  • Global fuzzy search across every notebook, plus in-notebook fuzzy jump.
  • Notebook tree view, tags panel, daily notes with templates, moving notes between notebooks, cycling sort order, an optional date column in the notes list.
  • Inline editor built into the TUI, or your favorite external editor — auto-detected from $VISUAL/$EDITOR/the OS default, toggleable on the fly from the footer.
  • Logs modal recording every status message (so errors don't get lost), with one-key clipboard copy (OSC 52) for pasting elsewhere.
  • In-TUI self-update (leader+U) — checks GitHub Releases for a newer version, and on confirmation downloads, verifies, installs, and relaunches into it automatically.
  • shiki doctor — an environment health check that works even with a broken config.
  • CLI commands alongside the TUI (new, list, edit, show, search, daily, sync, notebook, theme, config, doctor) for quick one-off operations without opening the UI.

Install

Every tagged release (.github/workflows/release.yml) publishes prebuilt binaries for Linux, Windows, and macOS (Intel + Apple Silicon) as a GitHub Release, plus a SHA256SUMS.txt. Pick whichever of these fits your platform:

Arch Linux (yay/paru):

yay -S shiki-bin      # or: paru -S shiki-bin

Windows (Scoop):

scoop install https://raw.githubusercontent.com/sazardev/shiki/main/packaging/scoop/shiki.json

Prebuilt binary (Linux/Windows/macOS), no package manager:

Download the archive for your platform from the latest release, extract it, and put the shiki/shiki.exe binary on your $PATH.

With cargo, from crates.io (any platform with a Rust toolchain):

cargo install shiki-cli

Or straight from a clone, if you want to build from a specific branch/commit instead:

git clone https://github.com/sazardev/shiki
cd shiki
cargo install --path shiki-cli

Either way this builds the shiki binary in release mode and installs it to ~/.cargo/bin (make sure that's on your $PATHcargo install will tell you if it isn't). libgit2/OpenSSL are vendored and built from source (git2's vendored-libgit2/vendored-openssl features), so there's no system libgit2/OpenSSL dependency to install separately on any platform.

Prerequisites (source/cargo install only — prebuilt binaries/AUR/Scoop don't need a Rust toolchain):

  • A recent stable Rust toolchain (rustup).
  • git on $PATH — notebooks are git repos under the hood.
  • A Nerd Font in your terminal — the UI uses Nerd Font icons throughout; without one, icons render as boxes/blanks instead of glyphs.
  • Optional: gh (GitHub CLI) — if you use HTTPS remotes to private GitHub repos, having gh authenticated lets shiki's git credential lookup reuse it automatically.

Run shiki doctor after installing (see below) to check all of this in one shot.

Update

cd shiki
git pull
cargo install --path shiki-cli --force

Verify

shiki --version   # confirm the installed version
shiki doctor      # environment check: config, data dir, git, editor, terminal, notebooks

shiki doctor is safe to run any time, including right after install with no config yet — it reports what's missing rather than erroring out, and works even if a config file exists but is malformed (a normal shiki command would fail outright in that case; doctor diagnoses it).

Quick start

shiki                       # launches the TUI — no args
shiki notebook create work  # or from the TUI: `a` while NOTEBOOKS is focused
shiki new "My first note" --notebook work
shiki daily                 # today's daily note

Inside the TUI, press ? for a searchable list of every keybinding (also doubles as a command palette — type to filter, Enter runs the highlighted action). Full keybinding tables, config schema, and theme list are in IDEA.md.

Development

See CLAUDE.md for the crate layout, build/lint commands, and architecture notes.

License

MIT