/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
- GitHub CLI (
gh) — required for the install command - A Krónan account with Auðkenni (Icelandic e-ID) login
- An Access Token from https://kronan.is/adgangur/adgangslyklar
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.shexecutes 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 meoutputs 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:
- Go to https://kronan.is/adgangur/adgangslyklar
- Log in with Auðkenni (Icelandic e-ID)
- Create a new access token
Then save it with the CLI:
kronan token \x3Cyour-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 \x3Csku>
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 \x3Csku> [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 \x3Ctoken> # Specific order details (use order token, not ID)
# Modify orders (before fulfillment)
kronan order delete-lines \x3Ctoken> \x3ClineId1> [lineId2...]
kronan order lower-quantity \x3Ctoken> \x3ClineIds...> --quantity N
kronan order toggle-substitution \x3Ctoken> \x3ClineIds...>
Product lists (full CRUD)
kronan lists # List all product lists
kronan lists create \x3Cname> [--description "..."] # Create new list
kronan lists view \x3Ctoken> # View list details
kronan lists delete \x3Ctoken> [--force] # Delete a list
kronan lists add \x3Clist-token> \x3Csku> [qty] # Add item to list
kronan lists remove \x3Clist-token> \x3Csku> # Remove item from list
kronan lists clear \x3Ctoken> [--force] # Clear all items
Shopping notes (Skundalisti)
kronan notes # View shopping note
kronan notes add [--text "..."] [--sku SKU] [--quantity N]
kronan notes update \x3Cline-token> [--text "..."] [--quantity N]
kronan notes remove \x3Cline-token> # Remove item
kronan notes toggle \x3Cline-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 \x3Cid> # Hide product from stats
kronan stats unignore \x3Cid> # 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 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 unignore
Read-only commands are safe to run without confirmation:
search,product,categories,categoryorders,order(view)cart(view)lists(view)notes(view),notes archivedstats(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 \x3Clist-token> 100246180 2
kronan search "pizzasósa" --json
kronan lists add \x3Clist-token> 100221958 1
# 3. View the completed list
kronan lists view \x3Clist-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 \x3Cline-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 \x3Cid>
Flags
| Flag | Description |
|---|---|
--json |
Structured JSON output (for AI agents) |
--page \x3Cn> |
Page number (search, category) |
--limit \x3Cn> |
Results per page |
--offset \x3Cn> |
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 |
API Reference
The CLI uses the official Krónan Public API at https://api.kronan.is/api/v1/.
API Documentation:
- Swagger UI: https://api.kronan.is/api/v1/schema/swagger-ui/
- ReDoc: https://api.kronan.is/api/v1/schema/redoc/
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}
Migration from v0.1.x
If you were using the previous version with Cognito authentication:
- Remove old tokens:
rm ~/.kronan/tokens.json - Get a new access token from https://kronan.is/adgangur/adgangslyklar
- Run
kronan token \x3Cnew-token> - Update any scripts using
kronan loginto usekronan tokeninstead
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
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install kronan - After installation, invoke the skill by name or use
/kronan - Provide required inputs per the skill's parameter spec and get structured output
What is Krónan?
Comprehensive CLI for Krónan.is grocery store using the official Public API. Search products, browse categories, manage shopping cart and lists, view orders,... It is an AI Agent Skill for Claude Code / OpenClaw, with 176 downloads so far.
How do I install Krónan?
Run "/install kronan" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Krónan free?
Yes, Krónan is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Krónan support?
Krónan is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Krónan?
It is built and maintained by arnif (@arnif); the current version is v1.0.3.