lazyfossil 0.3.3

A lazygit-inspired TUI for Fossil SCM
lazyfossil-0.3.3 is not a library.

lazyfossil

Crates.io Multiplatform Release GitHub stars License: MIT

lazyfossil logo

A lazygit-inspired terminal UI for Fossil SCM.

Project goals

  • Fast terminal workflow for Fossil checkouts
  • Working tree and history browsing in one UI
  • Commit subsets of files without a staging area
  • Small, practical MVP first; polish later

Features

Repository browsing

  • Fossil checkout detection
  • Working tree file list
  • Diff / details pane
  • Timeline / history view
  • File-history timeline for selected path
  • Hidden-file listing (extras --dotfiles)
  • Keyboard and mouse navigation

Commit and sync flow

  • Temporary commit selection with Space
  • Commit selected files, current file, or all files
  • Extra-file commit support
  • Ignore-file editing via .fossil-settings/ignore-glob
  • Sync with remote via p / P
  • Inline commit and ignore prompts
  • Command logging to fossil-debug.log
  • Binary file handling before commit via binary-glob

Preview and UI polish

  • Binary preview fallback with friendly notice
  • Tab-expanded text preview (e.g. Makefiles)
  • Footer/input UX improvements
  • Reusable ASCII logo text asset

Project and release polish

  • Project logo asset and README branding
  • GitHub Actions release workflow fix for Windows executable naming
  • README credits section
  • Cargo package/versioning/release housekeeping
  • Additional test coverage for parsing, selection, and prompts

Commit flow

Fossil does not use a staging area. Instead, lazyfossil builds commit commands like:

fossil commit -m "commit message" file1 file2 file3

Extra files are added automatically before commit when needed.

Binary files are handled by setting:

fossil settings binary-glob "*.png,*.jpg,*.jpeg,*.gif,*.ico"

Roadmap

Done

  • Working tree MVP
  • History timeline basics
  • Temporary selection-based commit flow
  • Inline commit message prompt
  • Ignore-file support
  • Sync support
  • Binary preview fallback

Next

  • Commit details and file history in the history pane
  • Footer/status layout polish
  • Better mouse interactions and scrolling

Build

cargo build --release

Run

cargo run

Versioning

This project follows semantic versioning: MAJOR.MINOR.PATCH. Current version: 0.3.3.

Credits

pi.dev

Pi provides the agent harness used to shape and iterate on this project. Its tooling made it possible to refine the TUI, validate changes, and keep the implementation moving quickly.

crates.io/crates/lazyfossil

The crate listing is the distribution point for the Rust application, making the project available to the wider Rust ecosystem and simplifying installation and release management.

emojicombos.com/lazyfossil

This source provided the project logo artwork used in the README and assets, helping give lazyfossil a recognizable visual identity.