# lazyfossil
[](https://github.com/geraldolsribeiro/lazyfossil/actions/workflows/release.yml)

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
## Current features
- Fossil checkout detection
- Working tree file list
- Diff / details pane
- Timeline / history view
- Temporary commit selection with `Space`
- Commit selected files, current file, or all files
- Keyboard and mouse navigation
## Commit flow
Fossil does not use a staging area.
Instead, lazyfossil builds commit commands like:
```bash
fossil commit file1 file2 file3 -m "commit message"
```
Extra files are added automatically before commit when needed.
## Roadmap
### Done
- Working tree MVP
- History timeline basics
- Temporary selection-based commit flow
- Inline commit message prompt
### Next
- Commit details and file history in the history pane
- Footer/status layout polish
- Better mouse interactions and scrolling
## Build
```bash
cargo build --release
```
## Run
```bash
cargo run
```
## Versioning
This project follows semantic versioning: `MAJOR.MINOR.PATCH`.
Current version: `0.3.2`.
## Credits
### [pi.dev](https://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](https://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](https://emojicombos.com/lazyfossil)
This source provided the project logo artwork used in the README and assets, helping give lazyfossil a recognizable visual identity.