Initial Marktplaats CLI scaffold
Create mrktplaats-cli from twdehands-cli, updating module/import names, command branding, and token paths while preserving command behavior and payload formats.
This commit is contained in:
153
SKILLS.md
Normal file
153
SKILLS.md
Normal file
@@ -0,0 +1,153 @@
|
||||
# mrktplaats CLI — Skill Guide for AI Agents
|
||||
|
||||
## What You Can Do
|
||||
|
||||
You have a `mrktplaats` CLI tool to interact with marktplaats.nl (Belgian marketplace). Use it to:
|
||||
- **Search** for items (phones, RAM, electronics, etc.)
|
||||
- **Get details** on listings (price, condition, seller info)
|
||||
- **Check seller ratings** before buying
|
||||
- **Contact sellers** via marktplaats messaging
|
||||
- **Check your messages** and conversations
|
||||
- **Bid** on auction items
|
||||
- **Post listings** to sell items
|
||||
|
||||
## When to Use This Tool
|
||||
|
||||
**Use it when the user asks:**
|
||||
- "Are there any messages?" → Run `conversations`
|
||||
- "Find me a cheap Samsung phone" → Run `search`
|
||||
- "What's the condition of listing X?" → Run `listing --urn X`
|
||||
- "Is seller Y trustworthy?" → Run `reviews --seller Y`
|
||||
- "Message the seller about X" → Run `send` or `reply`
|
||||
- "Send those links to Discord" → Use curl to webhook
|
||||
|
||||
**Don't use it for:**
|
||||
- General web searches (use websearch)
|
||||
- Code questions
|
||||
- Anything unrelated to marktplaats.nl
|
||||
|
||||
## Quick Reference
|
||||
|
||||
```bash
|
||||
# Search (most common)
|
||||
./mrktplaats search --query "TERMS" --size 50 --sort PRICE_ASC
|
||||
|
||||
# Get details
|
||||
./mrktplaats listing --urn URN
|
||||
|
||||
# Check seller
|
||||
./mrktplaats reviews --seller ID
|
||||
|
||||
# Messages
|
||||
./mrktplaats conversations --limit 10
|
||||
./mrktplaats messages --conv CONV_ID --limit 10
|
||||
|
||||
# Contact seller (NEW listing)
|
||||
./mrktplaats send --urn URN --text "MESSAGE"
|
||||
|
||||
# Contact seller (EXISTING conversation)
|
||||
./mrktplaats reply --conv CONV_ID --text "MESSAGE"
|
||||
|
||||
# Discord webhook
|
||||
curl -X POST WEBHOOK_URL -H "Content-Type: application/json" -d '{"content": "..."}'
|
||||
```
|
||||
|
||||
## Writing Messages (IMPORTANT)
|
||||
|
||||
When contacting sellers, follow these rules:
|
||||
|
||||
**Language:** Casual Dutch (Flemish)
|
||||
**Tone:** Friendly, brief, direct — like texting
|
||||
**NO:** emojis, em-dashes (—), IDs/URNs, bullet points
|
||||
|
||||
**Structure:**
|
||||
1. Greeting: "Hoi", "Hallo", "Beste [Naam]"
|
||||
2. Body: 1-2 short sentences
|
||||
3. Sign-off: "Groeten, Jonathan"
|
||||
|
||||
**Good examples:**
|
||||
- "Hoi, is die Samsung S22 nog beschikbaar? Groeten, Jonathan"
|
||||
- "Hoi, kan ik hem morgen ophalen? Groeten, Jonathan"
|
||||
|
||||
**Never do:**
|
||||
- "Hi — I'm interested in your listing (URN: m123456). Please respond."
|
||||
- Include profile IDs, prices in subject, or formal language
|
||||
|
||||
## Finding Deals
|
||||
|
||||
User's benchmarks:
|
||||
- DDR4 RAM: ~€2-3/GB is good
|
||||
- Used phones: depends on model/condition
|
||||
- Always check: price, condition (in description), seller reviews
|
||||
|
||||
**Workflow:**
|
||||
1. Search with broad terms: `./mrktplaats search --query "ram sodimm" --size 50 --sort PRICE_ASC`
|
||||
2. Analyze top results
|
||||
3. Get details: `./mrktplaats listing --urn URN`
|
||||
4. Check seller: `./mrktplaats reviews --seller ID`
|
||||
5. Present findings with links
|
||||
|
||||
**Links format:** `https://link.marktplaats.nl/{URN}`
|
||||
|
||||
## Discord Integration
|
||||
|
||||
**Webhook URL:**
|
||||
```
|
||||
https://discord.com/api/webhooks/1478131681033588859/xjPSaVsePMWrmXI1jGtvnvAaQ2L4jeBVZt9KzXY2LAH3KmHATsLIkqsgjzcMa31oYcnY
|
||||
```
|
||||
|
||||
**Send message:**
|
||||
```bash
|
||||
curl -X POST WEBHOOK_URL \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"content": "Your message here"}'
|
||||
```
|
||||
|
||||
## Errors & Solutions
|
||||
|
||||
| Error | Meaning | Solution |
|
||||
|-------|---------|----------|
|
||||
| `401 Unauthorized` | Token expired | Ask user to login |
|
||||
| `403 VERIFICATION_NOT_FOUND` | 2FA blocked | Wait hours, then retry login |
|
||||
| `dial tcp: lookup app.marktplaats.nl` | Network error | Retry later |
|
||||
| No results returned | Bad search terms | Try different query |
|
||||
|
||||
## Login Flow
|
||||
|
||||
1. Ask user for email/password (or token)
|
||||
2. Run: `./mrktplaats login --email EMAIL --password PASS`
|
||||
3. If 2FA required → ask for SMS code
|
||||
4. Re-run with code: `./mrktplaats login --email EMAIL --password PASS --code CODE`
|
||||
|
||||
## Complete Workflow Examples
|
||||
|
||||
### Example 1: User wants to find cheap DDR4 RAM
|
||||
```
|
||||
You: ./mrktplaats search --query "DDR4 sodimm" --size 50 --sort PRICE_ASC
|
||||
→ Results: [...]
|
||||
|
||||
You: Analyze and calculate €/GB for top items
|
||||
|
||||
You: Present table with best deals
|
||||
```
|
||||
|
||||
### Example 2: User wants to contact a seller
|
||||
```
|
||||
You: ./mrktplaats send --urn m1234567890 --text "Hoi, is die nog beschikbaar? Groeten, Jonathan"
|
||||
→ {"status": "sent", ...}
|
||||
```
|
||||
|
||||
### Example 3: User wants to check messages
|
||||
```
|
||||
You: ./mrktplaats conversations --limit 10
|
||||
→ Shows conversations with unread count
|
||||
|
||||
You: ./mrktplaats messages --conv CONV_ID --limit 5
|
||||
→ Shows message history
|
||||
```
|
||||
|
||||
### Example 4: User wants to send deal links to Discord
|
||||
```
|
||||
You: curl -X POST WEBHOOK_URL -H "Content-Type: application/json" \
|
||||
-d '{"content": "DDR4 RAM deals:\n- 16GB - €50: https://link.marktplaats.nl/m123"}'
|
||||
```
|
||||
Reference in New Issue
Block a user