<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>
---
## π€ 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.
* **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.0
**Highlights**
* **`.frs` scripting** β Write branching chats declaratively and load them into FUR.
* **Import / export** β Save any thread back into `.frs` or load existing ones.
* **Rich exports** β Export timelines to Markdown or PDF, with branches preserved.
* **FurScript syntax highlighting** β Official [VS Code extension](https://marketplace.visualstudio.com/items?itemName=andrewgarcia.fur-frs) for `.frs` files.
---
## π 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
# Jot a message as yourself (π¦)
fur jot "Just finished reading about quantum time crystals."
# Jot a message as a custom avatar (π€ or π€ depending on name/emoji)
fur jot dr-strange "Weβre in the endgame now."
# Attach a markdown file
fur jot ai-helper --file examples/chats/QUANTUM_MANIFESTO.md
# Provide both text and file (text will show in timeline, file in exports)
fur jot ai-helper "Hereβs the updated draft." --file examples/chats/QUANTUM_MANIFESTO.md
# Longform main user entry (text + equations doc)
fur jot --text "Nonlocality still breaks my brain." --markdown examples/chats/ENTANGLEMENT_EQS.md
# Work with scripts
fur load examples/quantum_playground.frs
fur save --out meeting_notes.frs
# Export views
fur timeline --contents --out convo.md
fur timeline --contents --out convo.pdf
```
---
## π Examples
The repo ships with an `examples/` directory full of ready-to-run `.frs` scripts and linked Markdown files.
These make it easy to try FUR without writing anything from scratch.
```bash
# Quantum demo with multiple AI avatars + branching
fur load examples/quantum_playground.frs
fur timeline --contents
# Outer-wordly penguin encounter
fur load examples/penguin_verses.frs
fur tree
# Practical meeting notes - with attached report
fur load examples/department_meeting.frs
fur timeline --out meeting.pdf
```
Contents include:
* **Quantum Playground** β cinematic physics, math, and startup pitch branches
* **Penguin Verses** β recursive alien penguin gospel, with linked docs like *Meeponomicon*
* **Department Meeting** β structured business chat w/ attached summary report
* **Dad Jokes** β humor tree with branching punchlines
* Plus extra flavor texts in `examples/chats/` (manifestos, equations, poems, absurdities)
---
## π 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.