fur-cli 2.1.1

Turn your AI chats into a durable, local-first diary. Save messages, attach notes, organize conversations, and stop losing context every time the model forgets you exist.
Documentation
<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">
  <a href="https://crates.io/crates/fur-cli"><img src="https://img.shields.io/crates/v/fur-cli.svg" /></a>
  <a href="https://github.com/andrewrgarcia/fur-cli"><img src="https://img.shields.io/github/stars/andrewrgarcia/fur-cli" /></a>
  <img src="https://img.shields.io/badge/platform-linux%20%7C%20macos%20%7C%20windows-blue" />
</p>

<p align="center">
  <strong>Your AI conversations, archived as plain Markdown.</strong><br/>
  Local, searchable, and readable without FUR.
</p>

<p align="center">
  <a href="https://andrewcomputing.com/fur">Docs, technical brief, and the case for FUR →</a>
</p>

---

> **Security notice for 1.x users:** `fur lock` did not encrypt conversations stored in subfolders.
> If you locked a project on an affected build, run `fur unlock` and then `fur lock` again with this version.

## Install

```bash
cargo install fur-cli
```

## The idea

Each conversation is a folder containing a `convo.md` file and any attachments. **Those files are the archive.** `.fur/` is only an index: delete it and FUR rebuilds it from the Markdown.

```
my-research/
├── chats/
│   └── peirce-icon-index-symbol-8f0c4a2e/
│       ├── convo.md
│       └── CHAT-20260809-012744.md
└── .fur/          # rebuildable, safe to delete
```

```markdown
---
fur_schema: 1
title: Peirce on icon, index, symbol
tags: [semiotics]
---

<!-- fur:msg id=3a7f9c21 avatar=andrew ts=2026-08-09T01:23:58Z -->

Is the icon/index distinction exhaustive?
```

They're just text files. You can open them in any editor, copy them anywhere, and read them even if you uninstall FUR. If an attached file gets changed later, FUR can tell.

## How it's used

```bash
fur new "Peirce on signs"      # start a conversation
fur jot "Is the icon/index distinction exhaustive?"   # your prompt (short, inline)
fur chat gpt5                  # paste the AI's long response
fur convo                      # list conversations
fur convo 8f0c4a2e             # switch to one
fur printed                    # full transcript of the active one, as Markdown
```

`jot` is for the short side of the exchange, usually you. `chat` is for the long side, usually the model.

## Commands

| Command | Does |
| --- | --- |
| `fur new <name>` | New conversation |
| `fur jot "<text>" [--file f.md]` | Short message, optional attachment |
| `fur chat [avatar]` | Long-form entry |
| `fur msg` | Edit or delete a message |
| `fur convo [id]` | List or switch conversations |
| `fur convo --tag <t>` / `--clear-tags` / `--delete <id>` | Tagging and deletion |
| `fur timeline` / `fur tree` / `fur jump <id>` | Navigate |
| `fur search "<q1, q2>"` | Search the whole project |
| `fur clone [-i <id>]` | Deep-copy a conversation |
| `fur rebuild` | Rebuild `.fur/` from `chats/` |
| `fur export [--all]` | Write conversations into `chats/` (also used for 1.x migration) |
| `fur printed` / `fur save` | Flat Markdown copy / `.frs` script |
| `fur onboard` / `fur doctor` | Set avatars / repair attachments |
| `fur lock` / `fur unlock` | AES-256-GCM encryption of the whole project |

**Upgrading from 1.x:** run `fur export --all`. It deletes nothing. See [CHANGELOG.md](CHANGELOG.md).

## License

MIT