<p align="center">
<img src="https://github.com/user-attachments/assets/c3582cb8-c1cc-41ab-9ed1-f8fbde4d8c21" width="200" alt="fur logo"/>
</p>
<h1 align="center">FUR</h1>
<p align="center">
<strong>Forkable, Unearthable, Recursive memory tracker</strong><br/>
Like git, but for conversations, ideas, and AI chats.
</p>
<p align="center">
π For a more visual overview, see the <a href="https://furchats.vercel.app/">FURChats portfolio site</a>.
</p>
---
## π€ What is FUR?
Scrolling through endless chats to find that one reply is painful.
FUR makes it easy to **track, branch, and preserve** your conversations as trees you can navigate, fork, and export.
With FUR you can:
* **Jot** quick notes or attach Markdown files.
* **Chat** long-form messages interactively (paste documents straight in).
* **Branch & fork** conversations into multiple timelines.
* **Jump** backward or forward to any message.
* **See** threads as timelines or trees.
* **Switch** between multiple threads easily.
* **Assign avatars** (π¦ you, π€ bots, π€ others β customizable).
* **Script conversations with `.frs` files**.
* **Export** threads to Markdown or PDF.
* **(New)** Use **Git passthrough commands** directly through FUR.
* **(New)** View **Git status** integrated into `fur status` when inside a Git repo.
Think of it as a **version control system for your thoughts** β with optional Git integration when you want it.
---
## π Whatβs New in v0.4.1 β Git-Powered Status & Passthrough β‘
### β
Git-enhanced `fur status`
If the project is inside a Git repository, `fur status` now:
* Shows your active FUR thread *and*
* Shows `git status` output (fully colorized and real Git output)
No changes if thereβs no `.git` β FUR stays minimal.
---
### β
Git passthrough commands (optional, zero-config)
FUR now exposes thin wrappers for common Git commands:
```bash
fur add <args...>
fur commit <args...>
fur push <args...>
fur pull <args...>
```
Everything after the subcommand is forwarded **raw** to Git:
* `fur commit -m "message"`
* `fur commit --amend`
* `fur add .`
* `fur push --force-with-lease`
Flags, hyphens, editor opens β everything works exactly like native git.
If no `.git` repo is found:
```
β οΈ No Git repository detected in this project.
```
Git passthrough is strictly **opt-in**.
FUR does not modify `.gitignore` and never writes to Git config.
---
## π How it works
FUR keeps everything inside a local `.fur/` folder:
* `.fur/index.json` β global state
* `.fur/threads/*.json` β one file per thread
* `.fur/messages/*.json` β one file per message
* `.fur/avatars.json` β avatar mappings
This folder is **local**, simple, and human-readable.
### Example commands
```bash
# Start fresh
fur new "Penguin talks"
# Manage avatars
fur avatar andrew # set yourself (π¦ main)
fur avatar tengu --emoji πΊ # create custom avatar
fur avatar --view
# Quick jot
fur jot "Just finished reading about quantum time crystals."
# Jot with a custom avatar
fur jot dr-strange "Weβre in the endgame now."
# Paste long text or Markdown interactively
fur chat gpt5
# Attach an existing Markdown file
fur jot ai-helper --file examples/chats/QUANTUM_MANIFESTO.md
# Run an .frs script
fur run examples/quantum_playground.frs
# Export views
fur timeline --contents --out CONVO.md
fur timeline --contents --out convo.pdf
# Git passthrough (if inside a Git repo)
fur add .
fur commit -m "message"
fur push
fur status # shows git status too
```
---
## π Installation
### From crates.io
```bash
cargo install fur-cli
```
### From source
```bash
cargo install --path . --force
```
---
## πΎ Philosophy
FUR is **minimal**.
It's not an AI client. It's a **memory tracker** that respects:
* Your brain's tendency to branch.
* Your need to retrace steps.
* Your desire to keep *everything*.
Git integration is optional β FUR uses it only when present, and gets out of the way when not.
**Goal:** Make recursive thinking natural.
---
## π£ Roadmap to v1.0
β
**Already complete (v0.4)**
* Threads (`fur new`, `fur thread`)
* Avatars (`fur avatar`)
* Jot & Chat (`fur jot`, `fur chat`)
* Trees & Timelines
* Forking & jumping
* `.frs` scripting system
* Thread import/export
* PDF & Markdown exports
* Git passthrough (add/commit/push/pull)
* Git-enhanced `fur status`
π **Planned for future releases**
* `fur rm` β delete messages in the CLI
* `fur move` β reorder/replace messages
* `fur branch` β interactive branch creation
* More editing tools
* Richer exports (metadata, tags, avatars)
* Optional helper: `fur gitignore`
π **v1.0 Milestone**
* Full editing suite
* Round-trip-safe `.frs` import/export
* Robust test coverage
* Consider cross-platform packaging (Homebrew, Scoop, etc.)
---
## π License
MIT, like almost everything else that's friendly and open-source.