UXC Skill
Use this skill when a task requires calling a remote interface and the endpoint can expose machine-readable schema metadata.
When To Use
- You need to call APIs/tools from another skill and want one consistent CLI workflow.
- The interface may be OpenAPI, GraphQL, gRPC reflection, MCP, or JSON-RPC/OpenRPC.
- You need deterministic, machine-readable output (
ok, kind, data, error).
Do not use this skill for pure local file operations with no remote interface.
Prerequisites
uxc is installed and available in PATH.
- For gRPC runtime calls,
grpcurl is installed and available in PATH.
Install uxc
Choose one of the following methods:
Homebrew (macOS/Linux):
brew tap holon-run/homebrew-tap
brew install uxc
Install Script (macOS/Linux, review before running):
curl -fsSL https://raw.githubusercontent.com/holon-run/uxc/main/scripts/install.sh -o install-uxc.sh
# Review the script before running it
less install-uxc.sh
bash install-uxc.sh
Cargo:
cargo install uxc
For more options, see the Installation section in the UXC README.
Core Workflow
- Discover operations:
- Inspect a specific operation:
uxc <host> <operation> -h
- Execute with structured input:
uxc <host> <operation> key=value
uxc <host> <operation> '<payload-json>'
- Parse result as JSON envelope:
- Success:
.ok == true, consume .data
- Failure:
.ok == false, inspect .error.code and .error.message
- For disambiguation, use operation-level help first:
uxc <host> <operation> -h
- For auth-protected endpoints, use the right auth track:
- simple bearer / single-secret API key: see
references/auth-configuration.md
- multi-field auth or request signing: see
references/auth-configuration.md
- OAuth flows: see
references/oauth-and-binding.md
Link-First Workflow For Wrapper Skills
Wrapper skills should default to a fixed local link command instead of calling uxc <host> ... directly on every step.
- Pick a fixed command name during skill development:
- naming convention:
<provider>-mcp-cli
- examples:
notion-mcp-cli, context7-mcp-cli, deepwiki-mcp-cli
- Check whether the command already exists:
- If command is missing, create it:
uxc link <link_name> <host>
- For OpenAPI services whose schema is hosted at a separate fixed URL, create the link with
uxc link <link_name> <host> --schema-url <schema_url>
- For stdio hosts that need credential-driven child env auth, create the link with
uxc link <link_name> <host> --credential <credential_id> --inject-env NAME={{secret}}
- Validate link command:
- Use only the link command for the rest of the skill flow.
Naming Governance
- Link naming is a skill author decision, not a runtime agent decision.
- Resolve ecosystem conflicts during skill development/review.
- Do not implement dynamic rename logic inside runtime skill flow.
- If runtime detects a command conflict that cannot be safely reused, stop and ask for skill maintainer intervention.
Equivalence Rule
<link_name> <operation> ... is equivalent to uxc <host> <operation> ....
- If the link was created with
--schema-url <schema_url>, it is equivalent to uxc <host> --schema-url <schema_url> <operation> ....
- If the link was created with
--credential <credential_id> --inject-env NAME={{secret}}, it is equivalent to uxc --auth <credential_id> --inject-env NAME={{secret}} <host> <operation> ....
- Callers can still override that persisted schema by passing
--schema-url <other_url> explicitly at runtime.
- Use
uxc <host> ... only as a temporary fallback when link setup is unavailable.
Input Modes
- Preferred (simple payload): key/value
uxc <host> <operation> field=value
- Bare JSON positional:
uxc <host> <operation> '{"field":"value"}'
Do not pass raw JSON through --args; use positional JSON.
Output Contract For Reuse
Other skills should treat this skill as the interface execution layer and consume only the stable envelope:
- Success fields:
ok, kind, protocol, endpoint, operation, data, meta
- Failure fields:
ok, error.code, error.message, meta
Default output is JSON. Do not use --text in agent automation paths.
Reuse Rule For Other Skills
- If a skill needs remote API/tool execution, reuse this skill instead of embedding protocol-specific calling logic.
- Wrapper skills should adopt a fixed link command (
<provider>-mcp-cli) as the default invocation path.
- Upstream skill inputs should be limited to:
- target host
- operation id/name
- JSON payload
- required fields to extract from
.data
Reference Files (Load On Demand)
- Workflow details and progressive invocation patterns:
references/usage-patterns.md
- Protocol operation naming quick reference:
references/protocol-cheatsheet.md
- Public endpoint examples and availability notes:
references/public-endpoints.md
- Authentication configuration (simple
secret, named fields, headers/query params, and request signers):
references/auth-configuration.md
- OAuth and credential/binding lifecycle:
references/oauth-and-binding.md
- Failure handling and retry strategy:
references/error-handling.md
1---2name: uxc3description: Discover and call remote schema-exposed interfaces with UXC. Use when an agent or skill needs to list operations, inspect operation schemas, and execute OpenAPI, GraphQL, gRPC, MCP, or JSON-RPC calls via one CLI contract.4---56# UXC Skill78Use this skill when a task requires calling a remote interface and the endpoint can expose machine-readable schema metadata.910## When To Use1112- You need to call APIs/tools from another skill and want one consistent CLI workflow.13- The interface may be OpenAPI, GraphQL, gRPC reflection, MCP, or JSON-RPC/OpenRPC.14- You need deterministic, machine-readable output (`ok`, `kind`, `data`, `error`).1516Do not use this skill for pure local file operations with no remote interface.1718## Prerequisites1920- `uxc` is installed and available in `PATH`.21- For gRPC runtime calls, `grpcurl` is installed and available in `PATH`.2223### Install uxc2425Choose one of the following methods:2627**Homebrew (macOS/Linux):**28```bash29brew tap holon-run/homebrew-tap30brew install uxc31```3233**Install Script (macOS/Linux, review before running):**34```bash35curl -fsSL https://raw.githubusercontent.com/holon-run/uxc/main/scripts/install.sh -o install-uxc.sh36# Review the script before running it37less install-uxc.sh38bash install-uxc.sh39```4041**Cargo:**42```bash43cargo install uxc44```4546For more options, see the [Installation](https://github.com/holon-run/uxc#installation) section in the UXC README.4748## Core Workflow49501. Discover operations:51 - `uxc <host> -h`522. Inspect a specific operation:53 - `uxc <host> <operation> -h`543. Execute with structured input:55 - `uxc <host> <operation> key=value`56 - `uxc <host> <operation> '<payload-json>'`574. Parse result as JSON envelope:58 - Success: `.ok == true`, consume `.data`59 - Failure: `.ok == false`, inspect `.error.code` and `.error.message`605. For disambiguation, use operation-level help first:61 - `uxc <host> <operation> -h`626. For auth-protected endpoints, use the right auth track:63 - simple bearer / single-secret API key: see `references/auth-configuration.md`64 - multi-field auth or request signing: see `references/auth-configuration.md`65 - OAuth flows: see `references/oauth-and-binding.md`6667## Link-First Workflow For Wrapper Skills6869Wrapper skills should default to a fixed local link command instead of calling `uxc <host> ...` directly on every step.70711. Pick a fixed command name during skill development:72 - naming convention: `<provider>-mcp-cli`73 - examples: `notion-mcp-cli`, `context7-mcp-cli`, `deepwiki-mcp-cli`742. Check whether the command already exists:75 - `command -v <link_name>`763. If command is missing, create it:77 - `uxc link <link_name> <host>`78 - For OpenAPI services whose schema is hosted at a separate fixed URL, create the link with `uxc link <link_name> <host> --schema-url <schema_url>`79 - For stdio hosts that need credential-driven child env auth, create the link with `uxc link <link_name> <host> --credential <credential_id> --inject-env NAME={{secret}}`804. Validate link command:81 - `<link_name> -h`825. Use only the link command for the rest of the skill flow.8384### Naming Governance8586- Link naming is a skill author decision, not a runtime agent decision.87- Resolve ecosystem conflicts during skill development/review.88- Do not implement dynamic rename logic inside runtime skill flow.89- If runtime detects a command conflict that cannot be safely reused, stop and ask for skill maintainer intervention.9091### Equivalence Rule9293- `<link_name> <operation> ...` is equivalent to `uxc <host> <operation> ...`.94- If the link was created with `--schema-url <schema_url>`, it is equivalent to `uxc <host> --schema-url <schema_url> <operation> ...`.95- If the link was created with `--credential <credential_id> --inject-env NAME={{secret}}`, it is equivalent to `uxc --auth <credential_id> --inject-env NAME={{secret}} <host> <operation> ...`.96- Callers can still override that persisted schema by passing `--schema-url <other_url>` explicitly at runtime.97- Use `uxc <host> ...` only as a temporary fallback when link setup is unavailable.9899## Input Modes100101- Preferred (simple payload): key/value102 - `uxc <host> <operation> field=value`103- Bare JSON positional:104 - `uxc <host> <operation> '{"field":"value"}'`105Do not pass raw JSON through `--args`; use positional JSON.106107## Output Contract For Reuse108109Other skills should treat this skill as the interface execution layer and consume only the stable envelope:110111- Success fields: `ok`, `kind`, `protocol`, `endpoint`, `operation`, `data`, `meta`112- Failure fields: `ok`, `error.code`, `error.message`, `meta`113114Default output is JSON. Do not use `--text` in agent automation paths.115116## Reuse Rule For Other Skills117118- If a skill needs remote API/tool execution, reuse this skill instead of embedding protocol-specific calling logic.119- Wrapper skills should adopt a fixed link command (`<provider>-mcp-cli`) as the default invocation path.120- Upstream skill inputs should be limited to:121 - target host122 - operation id/name123 - JSON payload124 - required fields to extract from `.data`125126## Reference Files (Load On Demand)127128- Workflow details and progressive invocation patterns:129 - `references/usage-patterns.md`130- Protocol operation naming quick reference:131 - `references/protocol-cheatsheet.md`132- Public endpoint examples and availability notes:133 - `references/public-endpoints.md`134- Authentication configuration (simple `secret`, named `fields`, headers/query params, and request signers):135 - `references/auth-configuration.md`136- OAuth and credential/binding lifecycle:137 - `references/oauth-and-binding.md`138- Failure handling and retry strategy:139 - `references/error-handling.md`