Install
openclaw skills install kronanComprehensive CLI for Krónan.is grocery store using the official Public API. Search products, browse categories, manage shopping cart and lists, view orders,...
openclaw skills install kronanCLI 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.
gh) — required for the install commandgh 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/
install.sh executes on your machine and downloads a binary. Audit the repository and the script before running.~/.kronan/token. These are credentials for the Krónan Public API. Ensure the file is only readable by your user (chmod 600 ~/.kronan/token).kronan me outputs your identity information (name and type - user or customer group). Be careful when sharing this output.First, create an 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
kronan search "mjolk"
kronan search "epli" --limit 5
kronan search "braud" --json
kronan product <sku>
kronan product 02500188 --json
kronan categories # List all categories
kronan category 01-01-02-epli # Browse products in category
kronan cart # View cart
kronan cart add <sku> [quantity] # Add item to cart
kronan cart clear # Clear all items from cart
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...>
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
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
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
kronan me # Show current identity (user or customer group)
kronan me --json
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 clearorder delete-lines, order lower-quantity, order toggle-substitutionlists create, lists delete, lists add, lists remove, lists clearnotes add, notes update, notes remove, notes toggle, notes clearstats ignore, stats unignoreRead-only commands are safe to run without confirmation:
search, product, categories, categoryorders, order (view)cart (view)lists (view)notes (view), notes archivedstats (view)me, statusBuild 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>
| Flag | Description |
|---|---|
--json | Structured JSON output (for AI agents) |
--page <n> | Page number (search, category) |
--limit <n> | Results per page |
--offset <n> | Offset for pagination |
--include-ignored | Include ignored products in stats |
--force | Skip confirmation for destructive operations |
--text "..." | Text for shopping note item |
--sku SKU | Product SKU |
--quantity N | Quantity (default: 1) |
--description "..." | Description for product list |
The CLI uses the official Krónan Public API at https://api.kronan.is/api/v1/.
API Documentation:
Key endpoints:
| Endpoint | Method | Auth | Description |
|---|---|---|---|
/products/search/ | POST | Yes | Product search |
/products/{sku}/ | GET | Yes | Product detail |
/categories/ | GET | Yes | Category tree |
/categories/{slug}/products/ | GET | Yes | Category products |
/checkout/ | GET | Yes | View checkout/cart |
/checkout/lines/ | POST | Yes | Add/replace checkout lines |
/orders/ | GET | Yes | Order history |
/orders/{token}/ | GET | Yes | Order details |
/orders/{token}/delete-lines/ | POST | Yes | Delete order lines |
/orders/{token}/lower-quantity-lines/ | POST | Yes | Lower line quantity |
/orders/{token}/lines-toggle-substitution/ | POST | Yes | Toggle substitution |
/me/ | GET | Yes | Current identity |
/product-lists/ | GET/POST | Yes | List/create product lists |
/product-lists/{token}/ | GET/PATCH/DELETE | Yes | Product list CRUD |
/product-lists/{token}/update-item/ | POST | Yes | Add/update list item |
/shopping-notes/ | GET | Yes | View shopping note |
/shopping-notes/add-line/ | POST | Yes | Add note line |
/shopping-notes/change-line/ | PATCH | Yes | Update note line |
/shopping-notes/delete-line/ | DELETE | Yes | Delete note line |
/shopping-notes/toggle-complete-on-line/ | PATCH | Yes | Toggle completion |
/product-purchase-stats/ | GET | Yes | Purchase statistics |
/product-purchase-stats/{id}/set-ignored/ | PATCH | Yes | Ignore/unignore product |
Auth header format: Authorization: AccessToken {token}
If you were using the previous version with Cognito authentication:
rm ~/.kronan/tokens.jsonkronan token <new-token>kronan login to use kronan token insteadNote: Order IDs in the new API are tokens (UUIDs), not numeric IDs.