| Crates.io | recollect |
| lib.rs | recollect |
| version | 1.0.0 |
| created_at | 2025-10-12 16:56:17.682764+00 |
| updated_at | 2025-10-12 16:56:17.682764+00 |
| description | Storage, Management and Retrieval of things you'd like to remember (recollect). |
| homepage | https://github.com/tristanpoland/recollect |
| repository | https://github.com/tristanpoland/recollect |
| max_upload_size | |
| id | 1879451 |
| size | 96,439 |
A powerful, fast, and beautiful CLI tool for managing your code snippets, commands, and notes. Built with Rust for maximum performance and reliability.
$EDITOR for creating and editing~/.recollectionscargo install recollect
git clone https://github.com/tristanpoland/recollect
cd recollect
cargo install --path .
Download pre-built binaries from the releases page.
# Create your first recollection
recollect new git
# List all recollections
recollect list
# Display a recollection
recollect git
# Search for content
recollect search "docker"
# Edit an existing recollection
recollect edit git
# Remove a recollection
recollect remove git
# Create a simple recollection
recollect new mycommand
# Create a recollection in a category
recollect new docker/compose
This opens your $EDITOR (or $VISUAL) to write the content. Save and close to create the recollection.
# List all recollections
recollect list
# List recollections in a specific category
recollect list docker
# Aliases
recollect ls
# Show a recollection
recollect git
# Also works with the show command
recollect show git
# Alias
recollect cat git
If you don't remember the exact name, recollect will help you find it:
recollect do
# Output: Did you mean: 'docker/compose'?
If multiple matches are found, recollect shows suggestions:
recollect ra
# Output:
# Unable to find a recollection matching 'ra'
# You might have meant:
# raid
# rails
# unicorn/rack
Search through all recollections with regex support:
# Basic search
recollect search "postgres"
# Case-insensitive search
recollect search -i "POSTGRES"
# Regex search
recollect search "git (push|pull)"
# Edit a recollection
recollect edit git
# Works with fuzzy matching
recollect edit gi
Add content to a recollection without opening an editor:
recollect append git "git stash pop"
# Remove with confirmation prompt
recollect remove git
# Force remove without confirmation
recollect remove git --force
# Alias
recollect rm git
Recollect uses your system's default editor. Set it with:
export EDITOR=vim # or nano, emacs, code, etc.
export VISUAL=vim # fallback if EDITOR is not set
All recollections are stored as plain text files in:
~/.recollections/
Each recollection is saved with a .txt extension (hidden from the CLI for convenience).
Categories are simply subdirectories:
~/.recollections/
├── git.txt
├── docker/
│ ├── compose.txt
│ └── networking.txt
└── kubernetes/
├── pods.txt
└── deployments.txt
recollect new git
# In your editor, add:
# Show current branch
git branch --show-current
# Create and switch to new branch
git checkout -b feature/new-feature
# Interactive rebase last 5 commits
git rebase -i HEAD~5
recollect new docker/compose
# Add common docker-compose commands
recollect new deployment
# Store your deployment procedures:
# 1. Run tests
# 2. Build containers
# 3. Push to registry
# 4. Deploy to production
Since recollections are just text files, you can sync them with any tool:
# Using Git
cd ~/.recollections
git init
git add .
git commit -m "Initial commit"
git remote add origin <your-repo>
git push -u origin main
# Using Dropbox, Syncthing, etc.
ln -s ~/Dropbox/recollections ~/.recollections
Recollect includes convenient aliases:
list → lsnew → addedit → modifyremove → rmsearch → findshow → catappend → add-lineAdd functions to your .bashrc or .zshrc:
# Quick recollection lookup
alias r='recollect'
# List all recollections
alias rl='recollect list'
# Search recollections
alias rs='recollect search'
# Clone the repository
git clone https://github.com/tristanpoland/recollect
cd recollect
# Build
cargo build --release
# Run tests
cargo test
# Install locally
cargo install --path .
Recollect is built in Rust and optimized for speed:
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ and Rust