Skip to main content

AI-powered recipe extraction. No ads, no stories, just ingredients and steps.

Project description

Uncluttered

CI Python 3.11+

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:

  1. LLM (AI extraction) — choose one:
  2. 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uncluttered-0.1.0.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uncluttered-0.1.0-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

Details for the file uncluttered-0.1.0.tar.gz.

File metadata

  • Download URL: uncluttered-0.1.0.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for uncluttered-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d21f5f7767539195412efa61d4029cde7edaadb05d63758a42ff42fc9d753316
MD5 57d70665ea9399d00ae4dc9968a033e2
BLAKE2b-256 ae58be6346801410681d3541ffd8ab30ec8e5734bb3512468eec3b68e51056c2

See more details on using hashes here.

File details

Details for the file uncluttered-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: uncluttered-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 21.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for uncluttered-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5e8a6589c1d3d8017c08dbfd940487d8b5acb903786c7b62022dc4365c714b81
MD5 a54c509a1ff7236c2ddd2cc792669a84
BLAKE2b-256 a8df9fe18770d75c4be4d190816b921722fa20c058928966700c60d22e0d7043

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page