Skip to main content

Nemlig Shopper 🛒

A CLI tool for shopping on Nemlig.com (Danish online grocery store). Parse recipes, search products, and add items to your cart.

Installation

# Install from PyPI
uv tool install nemlig-shopper

# Or run directly with uvx
uvx nemlig-shopper --help

Quick Start

# Log in to Nemlig.com
nemlig-shopper login

# Parse a recipe to see ingredients
nemlig-shopper parse "https://www.valdemarsro.dk/pasta-carbonara/"

# Search for products
nemlig-shopper search "mælk"

# Add a product to cart (by product ID from search results)
nemlig-shopper add 701015

# View your cart
nemlig-shopper cart

Commands

Command Description
login Authenticate with Nemlig.com
logout Clear saved credentials
parse <url> Parse recipe and display ingredient list
search <query> Search Nemlig products
add <product_id> Add product to cart
cart View current cart contents

Usage Examples

Parse a Recipe

# From URL (supports 100+ recipe sites)
nemlig-shopper parse "https://www.valdemarsro.dk/lasagne/"

# From text input
nemlig-shopper parse --text "500g hakket oksekød
1 løg
2 fed hvidløg
400g hakkede tomater"

Search Products

# Basic search
nemlig-shopper search "økologisk mælk"

# Limit results
nemlig-shopper search "ost" --limit 5

Add to Cart

# Add single item
nemlig-shopper add 701015

# Add with quantity
nemlig-shopper add 701015 --quantity 2

Configuration

Credentials can be provided via:

  1. Environment variables (.env file):

    NEMLIG_USERNAME=your-email@example.com
    NEMLIG_PASSWORD=your-password
    
  2. Saved credentials: Run nemlig-shopper login to save credentials locally

Credentials are stored in ~/.nemlig-shopper/credentials.json (chmod 600).

Supported Recipe Sites

Uses recipe-scrapers supporting 100+ sites including:

  • Valdemarsro (Danish)
  • Mummum (Danish)
  • AllRecipes
  • BBC Good Food
  • Serious Eats
  • And many more...

Development

# Clone and install
git clone https://github.com/mhattingpete/nemlig-shopper.git
cd nemlig-shopper
uv sync

# Run tests
uv run pytest

# Run CLI locally
uv run nemlig --help

Using with Claude Code or LLM Agents

This CLI is designed to be agent-friendly. An LLM agent (Claude Code, custom agents, etc.) can drive the full shopping workflow by chaining CLI commands.

Prerequisites

  1. Install the CLI (see Installation)
  2. Set up credentials via environment variables or nemlig-shopper login
  3. Point your agent at SKILL.md for the full command reference

Agent Workflow

A shopping list can contain a mix of recipe URLs and plain ingredients. The agent workflow is:

Shopping List (URLs + plain items)
  ├─ Recipe URLs → nemlig-shopper parse <url> → extract ingredients
  ├─ Plain items → use directly
  ↓
For each ingredient:
  → nemlig-shopper search "<danish ingredient name>" → get product IDs
  → nemlig-shopper add <product_id> --quantity <n> → add to cart
  ↓
nemlig-shopper cart → verify final cart

Example: Agent Shopping Session

# 1. Parse a recipe URL to get ingredients
nemlig-shopper parse "https://www.valdemarsro.dk/pasta-carbonara/"
# Output: list of ingredients with quantities and units

# 2. Search for each ingredient (Danish names work best)
nemlig-shopper search "spaghetti"
nemlig-shopper search "pancetta"
nemlig-shopper search "æg"
nemlig-shopper search "parmesan"

# 3. Add selected products by ID
nemlig-shopper add 701015 --quantity 1
nemlig-shopper add 503220 --quantity 1
nemlig-shopper add 100042 --quantity 1
nemlig-shopper add 504100 --quantity 1

# 4. Verify the cart
nemlig-shopper cart

Tips for Agent Integration

  • Translation: Nemlig.com is Danish. Translate English ingredient names to Danish before searching (e.g., "milk" → "mælk", "onion" → "løg", "chicken" → "kylling").
  • Product selection: Search results include product ID, name, price, size, and stock status. Pick products that are in stock and match the needed quantity/size.
  • Quantities: The parse command outputs quantities and units per ingredient. Use these to determine how many units of a product to add.
  • Multiple recipes: Process each recipe URL separately with parse, then search and add all ingredients.
  • Plain items: Items like "mælk" or "rugbrød" that aren't from a recipe can be searched directly without parsing.
  • Skill file: See SKILL.md for the complete agent-readable command reference.

Notes

  • Uses an unofficial Nemlig.com API
  • Danish ingredient/product names work best
  • Product IDs are shown in search results

License

MIT License - See LICENSE file for details

Metadata

Release files for nemlig-shopper 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nemlig-shopper 1.0.1
File Size Uploaded Provenance
nemlig_shopper-1.0.1.tar.gz 82.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for nemlig-shopper 1.0.1
File Interpreter ABI Platform
nemlig_shopper-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 102.4 kB

Release files / nemlig_shopper-1.0.1.tar.gz

Download URL nemlig_shopper-1.0.1.tar.gz
Size 82.7 kB
Tags Source
SHA-256 checksum
How to use checksums
db4d19e173fe1376766d8c8d72748e4981741c2b15b76d9b0b75a812b7b7a748
BLAKE2b-256 checksum
How to use checksums
178961e508fcb28226d17623620aca2a8c9bb233a35ba8cef59c083edd376d20
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 Feb 7, 2026.

Transparency log

Release files / nemlig_shopper-1.0.1-py3-none-any.whl

Download URL nemlig_shopper-1.0.1-py3-none-any.whl
Size 19.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b9418eef65809d47f1e77ec1ad69b06e2f591779aaec5bd9a4d37252a120887b
BLAKE2b-256 checksum
How to use checksums
87692a992d5f86255b773c1d80f07f9399c5013f568f758f83aa4bd4bf8300f1
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 Feb 7, 2026.

Transparency log

Security for nemlig-shopper 1.0.1

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for nemlig_shopper-1.0.1.tar.gz

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 Feb 7, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page