Uncluttered
Cooking, clarified.
AI-powered recipe extraction for the terminal. Type a search query, get clean ingredients and steps. No ads, no life stories, no scrolling.
Install
pip install uncluttered
By default, only the Gemini provider is included. To use other LLM providers:
pip install "uncluttered[openai]" # For OpenAI
pip install "uncluttered[anthropic]" # For Anthropic Claude
pip install "uncluttered[ollama]" # For Ollama (local)
pip install "uncluttered[all]" # All providers
Or install from source:
git clone https://github.com/brendaninnis/uncluttered-cli.git
cd uncluttered-cli
pip install -e .
Setup
You'll need API keys for a search provider and an LLM provider:
- LLM (AI extraction) — choose one:
- Gemini (default): https://aistudio.google.com/apikey
- OpenAI: https://platform.openai.com/api-keys
- Anthropic: https://console.anthropic.com/settings/keys
- Ollama: https://ollama.com (runs locally, no API key needed)
- Tavily (recipe search): https://tavily.com (free tier available)
Create a .env file in your working directory:
cp .env.example .env
Then use a text editor to update the file with your keys:
# Choose your LLM provider (default: gemini)
LLM_PROVIDER=gemini
# Only the key for your chosen provider is required:
GEMINI_API_KEY=your-gemini-key
# OPENAI_API_KEY=your-openai-key
# ANTHROPIC_API_KEY=your-anthropic-key
# For Ollama: no API key needed, just set LLM_PROVIDER=ollama and LLM_MODEL
# LLM_MODEL=llama3.1
TAVILY_API_KEY=your-tavily-key
Usage
Search for recipes
uncluttered search "chocolate chip cookies"
This searches for recipes, extracts them using AI, saves them locally, and displays the top results ranked by trust score.
Options:
--fetch N/-f N: Number of recipes to fetch (default: 5)--display N/-d N: Number of results to display (default: 3)
View a saved recipe
uncluttered show classic-chocolate-chip-cookies
List saved recipes
uncluttered list "chocolate chip cookies"
Delete recipes
# Delete a single recipe by slug
uncluttered delete classic-chocolate-chip-cookies
# Delete all recipes for a search term
uncluttered delete --search-term "chocolate chip cookies"
# Delete all saved recipes
uncluttered delete --all
Trust Scores
Each recipe gets an AI-assessed trust score (0-100) reflecting how reliably it would produce a good result. The LLM evaluates recipes holistically, considering measurement precision, instruction completeness, source credibility, and whether the techniques make culinary sense.
- 85-100: Exceptional — precise, well-tested, confidently recommended
- 65-84: Solid — clear and complete with minor gaps
- 45-64: Adequate — functional but vague in places
- Below 45: Unreliable — significant gaps or questionable techniques
Recipes are sorted by trust score, so the best ones appear first.
Data Storage
Recipes are saved locally in ~/.local/share/uncluttered/uncluttered.db (SQLite).
License
MIT
Metadata
Release files for uncluttered 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| uncluttered-0.1.2.tar.gz | 19.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| uncluttered-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.6 kB
Release files / uncluttered-0.1.2.tar.gz
| Download URL | uncluttered-0.1.2.tar.gz |
|---|---|
| Size | 19.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3a38b64e2a8d830ab74651db3874e8a17b6e74b9b1585a9d749a5973fbde2e8e
|
|
BLAKE2b-256 checksum How to use checksums |
611b7b495b6d88b2db1f5d33dcb77bd90b44bee9dd4bec3ffd438e2d85dac31d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 1, 2026.
Transparency logRelease files / uncluttered-0.1.2-py3-none-any.whl
| Download URL | uncluttered-0.1.2-py3-none-any.whl |
|---|---|
| Size | 22.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1f1c08c828b4dc3d544febf5ac0966125349870f301eed0536a06c1f44c156cb
|
|
BLAKE2b-256 checksum How to use checksums |
80d5080691c0e85c82d5c23938d4133d580a3cc17663816d778a0a5b8ec008eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 1, 2026.
Transparency log