<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 futures.
* **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.
Think of it as a **version control system for your thoughts**.
---
## π Whatβs New in v0.3.5 β Enter the Chat Den π¦π¬
* **`fur chat`** β interactive, long-form jotting.
Paste Markdown, essays, or multi-line rants directly into the CLI.
By default, FUR suggests saving inside a `chats/` folder.
* **Better ergonomics** β `chat` is the natural sibling of `jot`.
- `fur jot` β quick scratches.
- `fur chat` β longer tales.
* **Tests** β new `tests/chat.rs` covers file + message creation.
---
## π How it works
FUR keeps everything inside a local `.fur/` folder:
* `.fur/index.json` β global state
* `.fur/threads/*.json` β one per thread
* `.fur/messages/*.json` β one per message
* `.fur/avatars.json` β avatar mappings
### Example commands
```bash
# Start fresh
fur new "Penguin talks"
# Manage avatars
fur avatar andrew # set yourself (π¦ main)
fur avatar tengu --emoji πΊ # create a custom avatar with emoji
fur avatar --view
# Quick jot
fur jot "Just finished reading about quantum time crystals."
# Jot as a custom avatar
fur jot dr-strange "Weβre in the endgame now."
# Long-form interactive jot (paste Markdown or docs)
fur chat gpt5
# Attach an existing markdown file
fur jot ai-helper --file examples/chats/QUANTUM_MANIFESTO.md
# Work with scripts
fur run examples/quantum_playground.frs
# or just:
fur examples/quantum_playground.frs
# Export views
fur timeline --contents --out CONVO.md
fur timeline --contents --out convo.pdf
---
## π 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*.
Avatars keep things clear: π¦ (you), π€ (AI/bots), π€ (others). But you can always customize them (`fur avatar tengu --emoji πΊ`).
**Goal:** Make recursive thinking natural.
---
## π£ Roadmap to v1.0
β
**Already complete (v0.3)**
* Threads (`fur new`, `fur thread`)
* Avatars (`fur avatar`)
* Jotting text & files (`fur jot`)
* Tree / Timeline views
* Jumping & forking
* `.frs` scripting system (branching supported here)
* VS Code highlighting for `.frs`
* Thread import / export
* Markdown & PDF rendering
* Polished exports (Markdown/PDF with styles, embedded assets)
π **Planned for future releases**
* `fur rm` β delete messages directly in the CLI
* `fur move` β replace / reorder messages in a thread
* `fur branch` β create branches interactively in the CLI (currently only in `.frs` scripts)
* Interactive editing flows for power users
* Richer exports (metadata, tags, avatars)
π **v1.0 Milestone**
* Full editing suite: add, delete, move, replace, fork, branch β all stable
* Rock-solid `.frs` import/export parity (round-trip safe)
* Robust test coverage & docs
* Consider cross-platform packaging (Homebrew, Scoop, etc.)
---
## π License
MIT, like almost everything else that's friendly and open-source.