Krónan

v1.0.3

Comprehensive CLI for Krónan.is grocery store using the official Public API. Search products, browse categories, manage shopping cart and lists, view orders,...

0· 185· 4 versions· 0 current· 0 all-time· Updated 6h ago· MIT-0

Install

openclaw skills install kronan

kronan-cli

CLI tool for shopping at Krónan.is, Iceland's grocery store chain. Uses the official Krónan Public API. Designed for both humans and AI agents.

Prerequisites

Install

gh repo clone arnif/kronan-cli /tmp/kronan-cli && bash /tmp/kronan-cli/install.sh

What this does: clones the repo to /tmp/kronan-cli, then install.sh downloads a pre-built binary from the latest GitHub release and places it at ~/.local/bin/kronan (override with INSTALL_DIR).

To build from source instead:

gh repo clone arnif/kronan-cli && cd kronan-cli
bun install && bun build --compile src/index.ts --outfile kronan
mv kronan ~/.local/bin/

Security and privacy

  • Install script: install.sh executes on your machine and downloads a binary. Audit the repository and the script before running.
  • Token storage: Access tokens are stored at ~/.kronan/token. These are credentials for the Krónan Public API. Ensure the file is only readable by your user (chmod 600 ~/.kronan/token).
  • PII: kronan me outputs your identity information (name and type - user or customer group). Be careful when sharing this output.
  • API Access: Tokens are created in your Krónan account settings and can be revoked at any time at https://kronan.is/adgangur/adgangslyklar

Authentication

First, create an access token:

  1. Go to https://kronan.is/adgangur/adgangslyklar
  2. Log in with Auðkenni (Icelandic e-ID)
  3. Create a new access token

Then save it with the CLI:

kronan token <your-access-token>

The token will be validated and saved locally.

kronan logout    # Clear stored token
kronan status    # Check authentication status

Commands

Search products

kronan search "mjolk"
kronan search "epli" --limit 5
kronan search "braud" --json

Product details

kronan product <sku>
kronan product 02500188 --json

Browse by category

kronan categories                    # List all categories
kronan category 01-01-02-epli        # Browse products in category

Cart management

kronan cart                         # View cart
kronan cart add <sku> [quantity]    # Add item to cart
kronan cart clear                   # Clear all items from cart

Order history and modifications

kronan orders                # Recent orders
kronan orders --json         # JSON output for parsing
kronan order <token>         # Specific order details (use order token, not ID)

# Modify orders (before fulfillment)
kronan order delete-lines <token> <lineId1> [lineId2...]
kronan order lower-quantity <token> <lineIds...> --quantity N
kronan order toggle-substitution <token> <lineIds...>

Product lists (full CRUD)

kronan lists                                    # List all product lists
kronan lists create <name> [--description "..."] # Create new list
kronan lists view <token>                       # View list details
kronan lists delete <token> [--force]           # Delete a list
kronan lists add <list-token> <sku> [qty]       # Add item to list
kronan lists remove <list-token> <sku>          # Remove item from list
kronan lists clear <token> [--force]            # Clear all items

Shopping notes (Skundalisti)

kronan notes                                    # View shopping note
kronan notes add [--text "..."] [--sku SKU] [--quantity N]
kronan notes update <line-token> [--text "..."] [--quantity N]
kronan notes remove <line-token>                # Remove item
kronan notes toggle <line-token>               # Mark complete/incomplete
kronan notes clear [--force]                   # Clear all items
kronan notes archived                          # View completed items

Purchase statistics

kronan stats [--limit N] [--offset N]          # View purchase history
kronan stats --include-ignored                 # Include hidden products
kronan stats ignore <id>                       # Hide product from stats
kronan stats unignore <id>                     # Unhide product

User identity

kronan me              # Show current identity (user or customer group)
kronan me --json

AI Agent Usage

All commands support --json for structured output. This makes kronan-cli suitable as a tool for AI agents managing grocery shopping.

Important: Commands that change state can modify the user's real data. Agents must ask for explicit user confirmation before running any state-changing command.

State-changing commands:

  • cart add, cart clear
  • order delete-lines, order lower-quantity, order toggle-substitution
  • lists create, lists delete, lists add, lists remove, lists clear
  • notes add, notes update, notes remove, notes toggle, notes clear
  • stats ignore, stats unignore

Read-only commands are safe to run without confirmation:

  • search, product, categories, category
  • orders, order (view)
  • cart (view)
  • lists (view)
  • notes (view), notes archived
  • stats (view)
  • me, status

Example agent workflows

Build a weekly cart from frequently purchased items:

# 1. Get purchase statistics to find frequently bought items
kronan stats --limit 50 --json

# 2. Add top items to cart at their typical quantities
kronan cart add 100224198 6    # Nýmjólk x6
kronan cart add 02200946 1     # Heimilisbrauð

# 3. Review the cart
kronan cart --json

Create a shopping list for a recipe:

# 1. Create a new list
kronan lists create "Pizza Night" --description "Ingredients for homemade pizza"

# 2. Search for products and add to list
kronan search "mozzarella" --json
kronan lists add <list-token> 100246180 2

kronan search "pizzasósa" --json
kronan lists add <list-token> 100221958 1

# 3. View the completed list
kronan lists view <list-token>

Manage shopping with notes (Skundalisti):

# 1. Add items to shopping note
kronan notes add --text "Mjólk"
kronan notes add --sku 100224198 --quantity 2

# 2. Mark items as you shop
kronan notes toggle <line-token>

# 3. View remaining items
kronan notes

# 4. View completed items
kronan notes archived

Analyze and optimize purchases:

# View purchase frequency for all products
kronan stats --json

# Hide irrelevant products from stats
kronan stats ignore <id>

Flags

FlagDescription
--jsonStructured JSON output (for AI agents)
--page <n>Page number (search, category)
--limit <n>Results per page
--offset <n>Offset for pagination
--include-ignoredInclude ignored products in stats
--forceSkip confirmation for destructive operations
--text "..."Text for shopping note item
--sku SKUProduct SKU
--quantity NQuantity (default: 1)
--description "..."Description for product list

API Reference

The CLI uses the official Krónan Public API at https://api.kronan.is/api/v1/.

API Documentation:

Key endpoints:

EndpointMethodAuthDescription
/products/search/POSTYesProduct search
/products/{sku}/GETYesProduct detail
/categories/GETYesCategory tree
/categories/{slug}/products/GETYesCategory products
/checkout/GETYesView checkout/cart
/checkout/lines/POSTYesAdd/replace checkout lines
/orders/GETYesOrder history
/orders/{token}/GETYesOrder details
/orders/{token}/delete-lines/POSTYesDelete order lines
/orders/{token}/lower-quantity-lines/POSTYesLower line quantity
/orders/{token}/lines-toggle-substitution/POSTYesToggle substitution
/me/GETYesCurrent identity
/product-lists/GET/POSTYesList/create product lists
/product-lists/{token}/GET/PATCH/DELETEYesProduct list CRUD
/product-lists/{token}/update-item/POSTYesAdd/update list item
/shopping-notes/GETYesView shopping note
/shopping-notes/add-line/POSTYesAdd note line
/shopping-notes/change-line/PATCHYesUpdate note line
/shopping-notes/delete-line/DELETEYesDelete note line
/shopping-notes/toggle-complete-on-line/PATCHYesToggle completion
/product-purchase-stats/GETYesPurchase statistics
/product-purchase-stats/{id}/set-ignored/PATCHYesIgnore/unignore product

Auth header format: Authorization: AccessToken {token}

Migration from v0.1.x

If you were using the previous version with Cognito authentication:

  1. Remove old tokens: rm ~/.kronan/tokens.json
  2. Get a new access token from https://kronan.is/adgangur/adgangslyklar
  3. Run kronan token <new-token>
  4. Update any scripts using kronan login to use kronan token instead

Note: Order IDs in the new API are tokens (UUIDs), not numeric IDs.

Version History

  • v0.3.0 - Added comprehensive commands: categories, order modifications, product lists CRUD, shopping notes, purchase statistics
  • v0.2.0 - Migrated to Krónan Public API with AccessToken authentication
  • v0.1.0 - Initial release with Cognito authentication

Version tags

latestvk97eqxk0hr1n5hk30h7jmnaa2s84hzxk

Runtime requirements

🛒 Clawdis