← 返回 Skills 市场
daniel17903

GoList

作者 Daniel Geiger · GitHub ↗ · v1.0.1
cross-platform ✓ 安全检测通过
358
总下载
0
收藏
0
当前安装
2
版本数
在 OpenClaw 中安装
/install golist
功能描述
Manage GoList grocery lists via CLI: create, join, switch, share lists, and add or remove items with automatic device and item ID handling.
使用说明 (SKILL.md)

GoList Shared-List Manager (OpenClaw Skill)

Purpose

Enable OpenClaw to manage GoList through a simple, beginner-friendly CLI wrapper around the backend API.

GoList is a simplistic app for creating and sharing grocery / shopping lists. This skill is designed to make first-time usage feel fast and approachable: create a list, add items, share with others, and switch between saved lists with minimal setup.

This skill supports:

  • creating new lists,
  • joining shared lists via share token,
  • saving known lists (name + id) and switching between them,
  • generating share tokens for users,
  • reading lists,
  • upserting items,
  • soft-deleting items.

Hard constraints

  1. API base URL is fixed to https://go-list.app/api and must never be overridden.
  2. OpenClaw must generate its own random device UUID and persist it for reuse.
  3. Every request must include the X-Device-Id header.
  4. For item writes, OpenClaw must only set:
    • name (required),
    • deleted (optional, defaults to false),
    • quantityOrUnit (optional).
  5. OpenClaw must generate all item UUIDs and timestamps in the Python CLI (never require the agent to provide them).
  6. Immediately after creating a new list, OpenClaw must always generate a share token and send the share URL to the user without being asked.
  7. When talking to the user, OpenClaw must never refer to lists by ID; always use list names (use the stored name↔id mapping internally).
  8. For item upserts, if the user does not explicitly provide a quantity/unit, OpenClaw must omit quantityOrUnit.

Python CLI tool

Use apps/openclaw/golist_cli.py as the operational API wrapper for this skill.

CLI guarantees

  • Fixed API base URL: https://go-list.app/api.
  • Generates and persists device id when missing.
  • Generates list IDs and item IDs when creating entities.
  • Generates item updatedAt timestamps on write operations.
  • Automatically sends X-Device-Id on every request.
  • Persists known lists with friendly names and IDs, and tracks an active list.

CLI state and environment

Optional environment:

  • GOLIST_DEVICE_ID (override persisted device id)
  • OPENCLAW_STATE_FILE (custom path for persisted JSON state)
  • GOLIST_SHARE_TOKEN (optional token source for bootstrap --share-token)

Persisted state file (default):

  • ~/.openclaw_golist_state.json with:
    • device_id
    • active_list_id
    • known_lists[] containing id + name

Core flows

1) Create a new list

python3 apps/openclaw/golist_cli.py create-list "Weekend groceries"
python3 apps/openclaw/golist_cli.py share

Creates a list with a generated UUID, stores it in known lists, sets it as active, then immediately creates a share token and returns the share URL to the user.

2) Share a list with a user

python3 apps/openclaw/golist_cli.py share

Creates a share token for the active list and returns both token + share URL.

3) Join an existing list via share token

python3 apps/openclaw/golist_cli.py join \x3Cshare-token-uuid>

Redeems the token, fetches the real list name from the API, stores that name+id mapping, and sets it active.

4) Switch/access saved lists

python3 apps/openclaw/golist_cli.py lists
python3 apps/openclaw/golist_cli.py use-list "Weekend groceries"
python3 apps/openclaw/golist_cli.py show

5) Item writes (restricted fields)

python3 apps/openclaw/golist_cli.py upsert "milk" [--quantity "2 L"] [--deleted]
python3 apps/openclaw/golist_cli.py delete "milk"

Intent mapping for OpenClaw

  • “create a new list called X” → create-list "X"
  • After create-list, always run share and send the URL/token to the user.
  • “share this list with me” → share
  • “join this token” → join \x3Ctoken>
  • “show my lists” → lists
  • “switch to list X” → use-list "X"
  • “show current list” → show
  • “add X (qty)” → upsert "X" [--quantity "..."]
  • “remove X” → delete "X"

Safety behavior

  • If device id is missing, generate and persist it before any API call.
  • If no active list is set, require create-list or join first.
  • If token redemption fails, return a clear auth/share error.
  • In user-facing responses, refer to lists by name only (never by raw ID).
  • Do not invent item quantities; only send --quantity when the user asked for one.
  • Never send item metadata fields outside name, deleted, and optional quantityOrUnit.
安全使用建议
This skill appears to do exactly what it says: a small Python CLI that talks only to https://go-list.app/api, stores a state file (~/.openclaw_golist_state.json by default), and generates a persistent device UUID and list/item IDs locally. Things to consider before installing: (1) the skill will create and persist a device id and known-list mappings in your home directory—review or change OPENCLAW_STATE_FILE if you prefer a different location; (2) immediately after creating a list the skill will auto-generate a share token and present the share URL to the user (it does not appear to broadcast that token elsewhere, but be aware it surfaces share links automatically); (3) no external credentials are required. If you do not trust go-list.app or you do not want the agent to autonomously create/share lists, disable autonomous invocation for this skill or review/modify the code before use.
功能分析
Type: OpenClaw Skill Name: golist Version: 1.0.1 The OpenClaw AgentSkills skill bundle for GoList is benign. The `SKILL.md` instructions clearly define the agent's behavior, including strict constraints on the API base URL (`https://go-list.app/api`) and allowed data fields for item writes, preventing prompt injection for malicious actions. The `golist_cli.py` script adheres to these constraints, using standard Python libraries for network communication and local state persistence (`~/.openclaw_golist_state.json`). There is no evidence of data exfiltration, arbitrary code execution, persistence mechanisms, or obfuscation. All network calls are directed to the specified GoList API, and data handling is aligned with the stated purpose of managing shopping lists.
能力评估
Purpose & Capability
Name/description, SKILL.md, and the included Python CLI consistently implement a GoList CLI wrapper that generates device/list/item IDs locally, persists a small state file, and uses the fixed API base URL. No unrelated credentials or binaries are requested.
Instruction Scope
Instructions and code only access the declared API and a single state file (default ~/.openclaw_golist_state.json, overridable via OPENCLAW_STATE_FILE). One notable behavior: after create-list the skill always generates a share token and returns the share URL to the user automatically — this is surprising but consistent with the documented 'hard constraint'; it does not appear to transmit data to third parties beyond the stated API.
Install Mechanism
No install spec is present (instruction-only deployment) and the included code is plain Python using standard library modules (urllib, uuid, json). No downloads from external/untrusted URLs or package installs are requested.
Credentials
No required secrets or credentials are requested. Optional environment variables (GOLIST_DEVICE_ID, OPENCLAW_STATE_FILE, GOLIST_SHARE_TOKEN) are explicitly documented and used by the code; their presence is reasonable for this skill.
Persistence & Privilege
The skill persists state to a file under the user's home directory and generates a persistent device UUID (written to the same state file). always:false (not force-included). The ability to persist state and to run autonomously is expected for a CLI wrapper but is something to be aware of.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install golist
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /golist 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.1
**Adds new user-facing workflow and API constraints for improved safety and usability.** - After creating a new list, the skill now always generates a share token and sends the share URL without waiting for user request. - Skill must only refer to lists by name in all user interactions—never by list ID. - For item upserts, the skill omits `quantityOrUnit` unless the user explicitly specifies it. - Updated intent mapping and safety behaviors to match new constraints. - No code changes in this release; documentation and behavioral clarifications only.
v1.0.0
GoList Shared-List Manager skill version 1.0.0 initial release: - Provides a simple, beginner-friendly CLI interface for managing grocery/shopping lists via GoList. - Supports creating and joining lists, sharing via tokens, switching between saved lists, and item management (add, update, soft-delete). - Enforces strict API constraints: fixed base URL, UUID/timestamp generation, and required headers. - Persists device and list state for user-friendly experiences and safer operations. - Maps key OpenClaw intents (create, share, join, list, switch, add/remove items) directly to CLI commands.
元数据
Slug golist
版本 1.0.1
许可证
累计安装 0
当前安装数 0
历史版本数 2
常见问题

GoList 是什么?

Manage GoList grocery lists via CLI: create, join, switch, share lists, and add or remove items with automatic device and item ID handling. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 358 次。

如何安装 GoList?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install golist」即可一键安装,无需额外配置。

GoList 是免费的吗?

是的,GoList 完全免费(开源免费),可自由下载、安装和使用。

GoList 支持哪些平台?

GoList 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 GoList?

由 Daniel Geiger(@daniel17903)开发并维护,当前版本 v1.0.1。

💬 留言讨论