Skills cosin
Use this skill when an agent needs to operate the `cosin` CLI from the terminal. `cosin` accepts only relative paths, lists available skills through the `skills` subcommand, can call COS API paths directly, and can call `/cos/...` skills by turning them into x402 pay-and-call requests to the COS backend. This skill is for using the CLI, not for editing the cosin source code.
git clone https://github.com/openclaw/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/0xcipher0/cosin" ~/.claude/skills/clawdbot-skills-cosin && rm -rf "$T"
skills/0xcipher0/cosin/SKILL.mdCosin CLI
Use
cosin to call the COS API and COS-backed skills from the terminal.
What the CLI does
cosin now accepts only relative paths.
There are three request styles:
-
Callsskills
directly and prints the upstream body directly.https://skills.bankofuniverse.org/skills -
Normal COS API paths such as
These are sent directly to the COS API host./v1/me -
Skill paths under
These are converted internally into x402 pay-and-call requests:/cos/...
- keeps the same request path
- builds the target URL from
SKILLS_BASE_URL - sends that target URL to
on the COS API hostPOST /agent/pay-and-call
Users should not pass absolute URLs to the CLI anymore.
Gather inputs
Collect these inputs before running the CLI:
- A COS bearer token for
--key - An HTTP method
- A relative path starting with
/ - Optional JSON for
--json - Optional repeatable headers for
or--header-H - Optional
override for normal COS API calls--base-url
Ask for the token if the user has not provided one. Treat it as sensitive.
Protect credentials
- Treat the
value as sensitive--key - Do not print, commit, or hardcode the token
- Keep the token in the command line argument, not in repo files
Run the CLI
Use one of these command shapes:
cosin --key <token> <METHOD> <PATH> [--json '<json>'] [--header 'Name: value'] [--base-url <url>] cosin --key <token> agent [status|me] [--base-url <url>] cosin --key <token> skills
Important flags:
for the required bearer token--key <token>
for an optional JSON request body--json <json>
or--header 'Name: value'
for repeatable custom headers-H 'Name: value'
to override the default COS API base URL for direct API calls--base-url <url>
or--version
to print the installed CLI version-v
or--help
to print usage-h
Subcommand notes:
does not acceptskills--json
does not accept custom headersskills
does not acceptagent--json
does not accept custom headersagent
Supported paths
Built-in catalog
Use this to discover available skills:
cosin --key <token> skills
Expected upstream skills include:
Returns a random value from the Chainlink-based skill endpoint./cos/crypto/chainlink/random
Returns the latest price for a supported token symbol./cos/crypto/price/:symbol
Supported symbols for
/cos/crypto/price/:symbol:
BTCETHHYPESOLTRXUSDTUSDC
Direct COS API calls
Use normal API paths to call COS directly:
cosin --key <token> GET /v1/me cosin --key <token> POST /v1/orders --json '{"symbol":"BTCUSDT"}'
Skill calls through /cos/...
/cos/...Use
/cos/... when you want to call a skill through COS:
cosin --key <token> GET /cos/crypto/chainlink/random cosin --key <token> GET /cos/crypto/price/BTC
Internally, the CLI turns those into x402 pay-and-call requests to the COS backend.
Use the agent shortcut
Use
agent, agent status, or agent me as a convenience alias for GET /agent/me.
cosin --key <token> agent cosin --key <token> agent status cosin --key <token> agent me
Do not combine
agent with --json or custom headers.
Validate inputs before running
- Ensure the path starts with
/ - Do not pass absolute URLs
- Use
, notskillsGET /skills - Ensure
is valid JSON--json - Ensure headers use
Name: value - For
, only use/cos/crypto/chainlink/randomGET - For
, only use/cos/crypto/price/:symbol
and only the supported symbolsGET
Read the output
Expect the CLI to:
- Print an HTTP status line for normal API requests,
skill calls, and/cos/...agent - Print only the upstream body for the
subcommandskills - Pretty-print JSON response bodies
- Print
for empty responses<empty response body> - Return a non-zero exit code for unsuccessful HTTP responses or CLI argument errors
Work locally in this repo
Use the local build when working inside this repository:
bun run build ./dist/index.js --key <token> agent ./dist/index.js --key <token> skills ./dist/index.js --key <token> GET /v1/me ./dist/index.js --key <token> GET /cos/crypto/chainlink/random
Use the published command shape locally when that is more convenient:
bun x cosin --key <token> agent bun x cosin --key <token> skills bun x cosin --key <token> GET /v1/me bun x cosin --key <token> GET /cos/crypto/price/BTC