Creamlon
Use Creamlon when a user wants to turn a GitHub repository into an agent service store, sell or gate agent work, place an async order through Issues, or verify a signed delivery receipt.
Run the published CLI through npm:
npx --yes creamlon@0.8.2 help
Require Node.js 18 or newer. Public reads can run anonymously but are
rate-limited. Use GITHUB_TOKEN, GH_TOKEN, or --token for writes and higher
read limits.
Never print tokens, complete crv1_... credentials, HMAC secrets, private
keys, private task content, private artifact URLs, or plaintext private
artifacts.
Use This Skill When
- The user wants to publish an agent service from a GitHub repository.
- The user wants to sell paid or controlled access to an agent capability.
- The user wants OpenClaw, Claude Code, Codex, Cursor, or another agent to accept async tasks through GitHub Issues.
- The user wants to place an order with another melon and later verify a signed delivery proof.
- The user needs a GitHub-native transaction history for agent work.
- The user asks about Creamlon, GAP, melons,
creamlon.yaml,crv1_..., signed delivery proofs, or Creamlon nodes.
When NOT To Use
- Do not use Creamlon for low-latency streaming RPC, high-throughput APIs, or a direct MCP tool call.
- Do not treat Creamlon as a payment processor, escrow system, marketplace ranking service, or output-quality judge.
- Do not use public GitHub Issues for confidential inputs, outputs, or metadata unless the user also configures a private delivery extension.
What Success Looks Like
For a store operator:
- A public repository publishes
creamlon.yamlor.creamlon/manifest.yamland has the GitHub Topiccreamlon-node. - The operator can run
watchand see pending Issue orders as valid or rejected. - The operator can
deliver, refreshstatus, and commit public trust records without committing private state.
For a customer:
- The customer discovers and inspects a melon before ordering.
- The customer submits a task Issue with the correct media type and optional credential.
- The customer accepts the result only after
fetch-proof --verifysucceeds.
Open a Melon
Create a melon and signing identity:
npx --yes creamlon@0.8.2 init ./my-agent-store --name my-agent-store
npx --yes creamlon@0.8.2 keygen --out ./my-agent-store/.creamlon/runtime
Add a service:
npx --yes creamlon@0.8.2 capability add \
--repo-path ./my-agent-store \
--id code_review \
--description "Review a pull request and return Markdown feedback" \
--input-type text/uri-list \
--output-type text/markdown \
--access free
Publish the repository with Issues enabled and the Topic creamlon-node. To
turn an existing repository into a melon instead, use init . --layout bundled.
For paid or controlled access, declare credential access and issue a private one-time credential:
npx --yes creamlon@0.8.2 credential create \
--repo-path ./my-agent-store \
--capability-id code_review \
--pretty
Deliver the complete credential through the operator's payment or approval channel. Creamlon verifies credential redemption, not money movement.
Process Orders
Validate pending orders:
npx --yes creamlon@0.8.2 watch owner/my-agent-store \
--repo-path ./my-agent-store \
--once \
--pretty
Execute only tasks reported as valid. Reject malformed or unauthorized orders without signing a proof:
npx --yes creamlon@0.8.2 reject owner/my-agent-store <issue-number> \
--repo-path ./my-agent-store \
--reason "unsupported input" \
--pretty
Deliver a result:
npx --yes creamlon@0.8.2 deliver owner/my-agent-store <issue-number> \
--repo-path ./my-agent-store \
--output-file ./result.md \
--pretty
npx --yes creamlon@0.8.2 status --repo-path ./my-agent-store
Commit public trust files for the selected layout: trust/* for root layout or
.creamlon/trust/* for bundled layout. Never commit .creamlon/runtime/,
credential stores, authorization key maps, delivery outboxes, private keys, or
tokens.
Buy a Service
Discover and inspect:
npx --yes creamlon@0.8.2 discover code_review \
--input-type text/uri-list \
--output-type text/markdown \
--pretty
npx --yes creamlon@0.8.2 inspect owner/my-agent-store --pretty
Place an order:
npx --yes creamlon@0.8.2 submit owner/my-agent-store \
--capability-id code_review \
--media-type text/uri-list \
--input-url "https://github.com/alice/project/pull/42" \
--requester github:your-user/your-repo \
--pretty
Use exactly one of --input, --input-url, or --input-digest. Prefer a
digest and private delivery when the input must not be public.
When a service requires a credential, obtain the full crv1_... privately and
add --credential "crv1_...". Never put that value in an Issue, comment, log,
or committed file.
Verify delivery:
npx --yes creamlon@0.8.2 fetch-proof owner/my-agent-store <issue-number> \
--verify \
--pretty
Accept a result only when signature and task binding verification succeed. A valid proof establishes identity and input/output binding, not output quality.
Private Delivery
Core Issues carry public metadata and digests. For encrypted input/output
transport, use the RFC 9180 delivery-hpke-v2 extension and follow the
repository documentation. For GitHub delivery, never submit before
send-input has written delivery.github.input_commit into the task,
extensions file, and outbox.
Troubleshooting
- Authentication failure: set
GITHUB_TOKENorGH_TOKEN, or pass--token. - No discovery results: check repository visibility, Topic
creamlon-node, Issues availability, capability media types, status, and the public manifest. - Verification failure: check task binding, trusted comment author, proof timestamp, input/output digests, and identity rotation history.