Command-line interface for gurkerl.at online grocery shopping (Austria).
β Working Features: Login, Product Search, Shopping Lists, Shopping Cart
β³ Coming Soon: Orders, Checkout
- π Authentication - Secure login with macOS Keychain β
- π Product Search - Search the product catalog β
- π Shopping Lists - Create and manage shopping lists β
- π Shopping Cart - Add, remove, and view cart items β
- π¦ Order History - View past orders β³
- π» CLI-first - Human-friendly interface with JSON output for scripting
- π¨ Rich formatting - Beautiful tables and colors
# Via Homebrew (recommended)
brew tap pasogott/tap
brew install gurkerlcli
# Or via UV
git clone https://github.com/pasogott/gurkerlcli.git
cd gurkerlcli
uv sync# 1. Login
gurkerlcli auth login
# 2. Search for products
gurkerlcli search "bio milch"
# 3. Create shopping list
gurkerlcli lists create "Wochenende"
# 4. Show lists
gurkerlcli lists list# Login (credentials stored in macOS Keychain)
gurkerlcli auth login
# Check status
gurkerlcli auth whoami
# Logout
gurkerlcli auth logoutFor non-macOS systems or CI/CD, you can use a .env file:
# Copy example and fill in credentials
cp .env.example .env
# Edit .env with your credentials
# Or use environment variables
export GURKERL_EMAIL=your-email@example.com
export GURKERL_PASSWORD=your-passwordNote: .env file is less secure than Keychain. Use it only when Keychain is not available.
# Basic search
gurkerlcli search "bio milch" --limit 5
# JSON output for scripting
gurkerlcli search "Γ€pfel" --json | jq '.[0]'# List all shopping lists
gurkerlcli lists list
# Create new list
gurkerlcli lists create "Wochenende Grillen"
# Show list details
gurkerlcli lists show 12345
# JSON output
gurkerlcli lists list --json# View cart
gurkerlcli cart list
# Add product to cart
gurkerlcli cart add 4659 --quantity 2
# Remove product from cart
gurkerlcli cart remove 4659
# Clear entire cart
gurkerlcli cart clear --force
# JSON output
gurkerlcli cart list --json# Will be available soon:
gurkerlcli orders list
gurkerlcli orders show G-123456- Session:
~/.config/gurkerlcli/session.json(expires after 7 days) - Credentials (priority order):
- macOS Keychain (most secure, macOS only)
.envfile (fallback for Linux/Windows)- Environment variables
GURKERL_EMAIL,GURKERL_PASSWORD(CI/Docker)
# Enable debug output
gurkerlcli search "test" --debug
gurkerlcli lists list --debug# Find cheapest bio milk
gurkerlcli search "bio milch" --json | jq 'sort_by(.price) | .[0]'
# Export shopping lists
gurkerlcli lists list --json > my_lists.json
# Search and filter
gurkerlcli search "bio" --json | jq '.[] | select(.price < 5)'# Install dev dependencies
uv sync --group dev
# Run tests
uv run pytest tests/ -v
# Lint
uv run ruff check src/
# Format
uv run ruff format src/β
POST /services/frontend-service/login
β
GET /services/frontend-service/user
β
GET /services/frontend-service/autocomplete-suggestion
β
GET /api/v1/products/card
β
GET /api/v1/components/shopping-lists
β
GET /api/v2/shopping-lists/id/{id}
β
POST /api/v1/shopping-lists
β
GET /services/frontend-service/v2/cart-review/check-cart
β
PUT /services/frontend-service/v2/cart-review/item/{orderFieldId}
β³ GET /services/frontend-service/v2/user-profile/orders
- No official API documentation
- Endpoints may change without notice
- No checkout/payment via CLI
- Rate limiting may apply
- Use responsibly!
gurkerlcli auth logout
gurkerlcli auth logingurkerlcli --debug search "test"MIT License - see LICENSE file
Unofficial tool, not affiliated with gurkerl.at or REWE International AG. Use at your own risk.
- π Issues: GitHub Issues
- π Docs: GitHub Wiki