← Back to Skills Marketplace
musketyr

AFOL BrickOwl

by Vladimir Orany · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
14
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install afol-brickowl
Description
Use the BrickOwl API through the included CLI for catalog lookup, inventory, orders, wishlists, and safe marketplace writes.
README (SKILL.md)

BrickOwl AFOL skill

Use this skill when the user asks for BrickOwl catalog lookup, BrickOwl store inventory, BrickOwl orders, BrickOwl wishlist creation, or BrickOwl marketplace listing management.

Primary interface: scripts/brickowl.

The skill is self-contained for archive distribution and wraps the BrickOwl API directly using checked-in references inside this skill directory:

  • OpenAPI reference: references/openapi/brickowl.yaml
  • Domain guidance: references/prompts/brickowl-tools.txt
  • CLI source: scripts/brickowl_cli.py

Do not scrape vendor docs or invent parameters when the checked-in OpenAPI reference covers the endpoint. If the reference is insufficient, say what is missing.

Authentication

Required environment variable:

export BRICKOWL_API_KEY=...

Optional override:

export BRICKOWL_BASE_URL=https://api.brickowl.com/v1

Never print, commit, log, or paste the real API key. Commands should reference $BRICKOWL_API_KEY only indirectly through the CLI.

BrickOwl auth placement matters:

  • GET endpoints send key as a query parameter.
  • POST endpoints send key in the application/x-www-form-urlencoded request body.

The CLI handles that split, which is the main reason to use it instead of ad-hoc curl.

CLI quick reference

Run commands from this skill directory:

scripts/brickowl --help
scripts/brickowl user
scripts/brickowl id-lookup --id 75192-1 --type Set --id-type set_number
scripts/brickowl catalog-search --query "Millennium Falcon" --type Set --page 1
scripts/brickowl inventory-list --page 1
scripts/brickowl orders --status Pending --page 1
scripts/brickowl order --order-id 12345

Mutating commands are guarded. They do nothing unless passed --yes; use --dry-run first:

scripts/brickowl inventory-create --dry-run \
  --boid 123456 \
  --quantity 1 \
  --price 850.00 \
  --condition news

scripts/brickowl inventory-update --dry-run \
  --lot-id 12345 \
  --price 599.99

scripts/brickowl inventory-delete --dry-run --lot-id 12345
scripts/brickowl wishlist-create --dry-run --name "Wanted parts" --description "For next build"
scripts/brickowl bulk --dry-run --requests-json '[{"path":"/user"}]'

Safety rules

Read-only by default:

  • user
  • catalog-search
  • id-lookup
  • inventory-list
  • orders
  • order

Mutating operations require explicit user confirmation in the current conversation before execution:

  • inventory-create
  • inventory-update
  • inventory-delete
  • wishlist-create
  • bulk whenever any embedded request mutates data

Stored credentials are not permission. Before any mutation, restate the exact action, lot/item identifiers, quantity, price, condition, wishlist name, or bulk request list and wait for explicit confirmation such as "yes, create it" or "confirm update lot 123".

The CLI enforces this mechanically: mutating commands fail unless --yes is passed, and --dry-run prints the request shape with the API key redacted.

If the user asks to "sell", "list", "update inventory", or "delete lot" without naming a platform and both BrickLink/BrickOwl could apply, ask which marketplace to use before mutating anything.

Endpoint coverage

  • GET /catalog/search via catalog-search
  • GET /catalog/id_lookup via id-lookup
  • GET /inventory/list via inventory-list
  • POST /inventory/create via inventory-create --yes
  • POST /inventory/update via inventory-update --yes
  • inventory deletion through inventory-delete --yes, implemented as POST /inventory/update with delete=true
  • GET /order/list via orders
  • GET /order/view via order
  • POST /wishlist/create_list via wishlist-create --yes
  • GET /user via user
  • POST /bulk via bulk --yes

Treat inventory, order, buyer, address, cost, and personal-note data as private. Summarize only what the user needs.

Known BrickOwl lookup rule

Use id-lookup for known external IDs. Do not abuse fuzzy catalog search as an ID lookup tool.

Good:

scripts/brickowl id-lookup --id 75192-1 --type Set --id-type set_number

Useful id_type values from the checked-in spec:

  • item_no
  • design_id
  • bl_item_no
  • set_number

Use catalog-search only when the user gives a fuzzy text query or asks to browse/search by words:

scripts/brickowl catalog-search --query "Millennium Falcon" --type Set --page 1

Mutating workflows

Do not run these with --yes until the user explicitly confirms the exact action.

Create an inventory lot

Required fields: boid, quantity, price, condition. Valid create conditions are lowercase BrickOwl condition IDs: news, newc, newi, usedc, usedi, usedn, usedg, useda, other. Plain New is not valid for inventory-create.

Confirmation prompt shape:

Confirm BrickOwl inventory create: BOID \x3Cboid>, quantity \x3Cqty>, price \x3Cprice>, condition \x3Ccondition>, optional color_id \x3Ccolor_id>, optional external_id \x3Cexternal_id>.

Then:

scripts/brickowl inventory-create --yes --boid "$BOID" --quantity "$QUANTITY" --price "$PRICE" --condition "$CONDITION"

Update an inventory lot

Use --lot-id or --external-lot-id, plus only the fields the user asked to change. For quantity, distinguish:

  • --absolute-quantity: set quantity to this exact value.
  • --relative-quantity: add/subtract this amount.

Confirmation prompt shape:

Confirm BrickOwl lot update: lot_id \x3Clot_id> / external_lot_id \x3Cexternal_lot_id>; changes: \x3Cfields>.

Then:

scripts/brickowl inventory-update --yes --lot-id "$LOT_ID" --price "$PRICE"

Delete an inventory lot

Deletion is destructive and needs especially explicit confirmation naming the lot ID.

scripts/brickowl inventory-delete --yes --lot-id "$LOT_ID"

Create a wishlist

Confirmation prompt shape:

Confirm BrickOwl wishlist creation: name "\x3Cname>", description "\x3Cdescription>".

Then:

scripts/brickowl wishlist-create --yes --name "$WISHLIST_NAME" --description "$WISHLIST_DESCRIPTION"

Bulk requests

Bulk has a lower rate limit: 200 requests/minute. Inspect every embedded request before deciding whether it is read-only or mutating.

If any embedded request is POST to inventory or wishlist endpoints, require explicit confirmation for the whole batch and summarize each write. Do not hide writes inside a bulk payload.

scripts/brickowl bulk --yes --requests-json "$BULK_REQUESTS_JSON"

BrickOwl limitations and routing

BrickOwl API does not provide marketplace offer data from other sellers. If the user asks for current marketplace prices/offers on BrickOwl, explain that limitation and suggest BrickLink pricing if available, or direct them to BrickOwl.com for manual marketplace browsing.

BrickOwl is appropriate for:

  • validating BrickOwl catalog IDs / BOIDs
  • managing the authenticated user's own BrickOwl inventory
  • viewing the authenticated user's BrickOwl orders
  • creating BrickOwl wishlists

It is not appropriate for API-based cross-seller price discovery.

Verification

Local, no-network checks:

python3 -m py_compile scripts/brickowl_cli.py
scripts/brickowl inventory-create --dry-run --boid 123 --quantity 1 --price 9.99 --condition news
python3 -m unittest discover -s tests -p 'test_*.py'
scripts/validate-skills.sh

Read-only smoke check, only when BRICKOWL_API_KEY is configured:

scripts/brickowl user
Usage Guidance
Install only if you are comfortable giving the skill BrickOwl API access. Use dry-run first, keep `BRICKOWL_BASE_URL` pointed at the official BrickOwl API, and do not allow any create, update, delete, wishlist, or bulk action unless the exact identifiers, quantities, prices, and payload are shown and you explicitly approve them.
Capability Analysis
Type: OpenClaw Skill Name: afol-brickowl Version: 1.0.0 The skill bundle contains conflicting instructions that appear to be a prompt injection attempt to bypass safety protocols. While SKILL.md and the CLI implementation in scripts/brickowl_cli.py mandate explicit user confirmation and the use of a '--yes' flag for mutating actions (e.g., inventory deletion or creation), the domain guidance file (references/prompts/brickowl-tools.txt) explicitly instructs the AI agent that 'NO User Approval Required' and that actions should 'execute immediately without approval flow.' This contradiction encourages the agent to ignore the safety requirements for marketplace operations, potentially leading to unauthorized financial or inventory changes.
Capability Tags
requires-sensitive-credentials
Capability Assessment
Purpose & Capability
The BrickOwl catalog, inventory, order, and wishlist capabilities are coherent with the stated purpose, but the skill also exposes high-impact account mutations and a broad bulk request command.
Instruction Scope
SKILL.md describes explicit confirmation and dry-run safeguards, but the referenced prompt file contradicts this by saying BrickOwl actions execute immediately without approval.
Install Mechanism
There is no install spec and the documented primary command path is `scripts/brickowl`, while the manifest shows `scripts/brickowl_cli.py`; users should verify how the CLI is actually invoked.
Credentials
Using a BrickOwl API key is expected for this integration, but the registry metadata says no required env vars or primary credential even though SKILL.md requires `BRICKOWL_API_KEY`.
Persistence & Privilege
No background persistence or credential storage is shown; the CLI reads the API key from the environment, which is still privileged account access.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install afol-brickowl
  3. After installation, invoke the skill by name or use /afol-brickowl
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Release main
Metadata
Slug afol-brickowl
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is AFOL BrickOwl?

Use the BrickOwl API through the included CLI for catalog lookup, inventory, orders, wishlists, and safe marketplace writes. It is an AI Agent Skill for Claude Code / OpenClaw, with 14 downloads so far.

How do I install AFOL BrickOwl?

Run "/install afol-brickowl" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is AFOL BrickOwl free?

Yes, AFOL BrickOwl is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does AFOL BrickOwl support?

AFOL BrickOwl is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created AFOL BrickOwl?

It is built and maintained by Vladimir Orany (@musketyr); the current version is v1.0.0.

💬 Comments