uxc
Original:🇺🇸 English
Translated
1 scripts
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.
4installs
Sourceholon-run/uxc
Added on
NPX Install
npx skill4agent add holon-run/uxc uxcTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →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.
Docs Search & Support
- UXC docs support full-text search at .
https://uxc.holon.run/api/search?q=<query> - Prefer searching docs first when operation names, auth flags, or protocol behavior are unclear.
- If docs are unclear or behavior looks wrong, open an issue in :
holon-run/uxchttps://github.com/holon-run/uxc/issues/new/choose- include command, endpoint, and the JSON envelope (,
ok,error) for faster triage.meta
Prerequisites
- is installed and available in
uxc.PATH - For gRPC runtime calls, is installed and available in
grpcurl.PATH
Install uxc
Choose one of the following methods:
Homebrew (macOS/Linux):
bash
brew tap holon-run/homebrew-tap
brew install uxcInstall Script (macOS/Linux, review before running):
bash
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.shCargo:
bash
cargo install uxcFor more options, see the Installation section in the UXC README.
Core Workflow
- Discover operations:
uxc <host> -h
- Inspect a specific operation:
uxc <host> <operation> -h
- Execute with structured input:
uxc <host> <operation> key=valueuxc <host> <operation> '<payload-json>'
- Parse result as JSON envelope:
- Success: , consume
.ok == true.data - Failure: , inspect
.ok == falseand.error.code.error.message
- Success:
- 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
- simple bearer / single-secret API key: see
Link-First Workflow For Wrapper Skills
Wrapper skills should default to a fixed local link command instead of calling directly on every step.
uxc <host> ...- Pick a fixed command name during skill development:
- naming convention:
<provider>-mcp-cli - examples: ,
notion-mcp-cli,context7-mcp-clideepwiki-mcp-cli
- naming convention:
- Check whether the command already exists:
command -v <link_name>
- 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}} - If the link is being created as part of a wrapper skill, persist source metadata with so later help output preserves skill context.
--skill <skill_name> --skill-doc <docs_url> --skill-path <local_skill_path>
- Validate link command:
<link_name> -h
- Use only the link command for the rest of the skill flow.
Import Existing MCP Config First
If an MCP server is already configured in a supported editor or local agent, prefer
importing it before hand-writing a new link:
- Preview imports:
uxc config import mcp --dry-run
- Auto-discover common MCP config sources and import them:
uxc config import mcp --from auto
- Import from a specific source preset:
uxc config import mcp --from cursoruxc config import mcp --from codex
Supported presets in v1 include:
autocursorclaude-codeclaude-desktopvscodecodexwindsurfopencode
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
- is equivalent to
<link_name> <operation> ....uxc <host> <operation> ... - If the link was created with , it is equivalent to
--schema-url <schema_url>.uxc <host> --schema-url <schema_url> <operation> ... - If the link was created with , it is equivalent to
--credential <credential_id> --inject-env NAME={{secret}}.uxc --auth <credential_id> --inject-env NAME={{secret}} <host> <operation> ... - Callers can still override that persisted schema by passing explicitly at runtime.
--schema-url <other_url> - Use only as a temporary fallback when link setup is unavailable.
uxc <host> ...
Input Modes
- Preferred (simple payload): key/value
uxc <host> <operation> field=value
- Bare JSON positional:
- Do not pass raw JSON through
uxc <host> <operation> '{"field":"value"}'; use positional JSON.--args
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,datameta - Failure fields: ,
ok,error.code,error.messagemeta
Default output is JSON. Do not use in agent automation paths.
--textReuse 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 () as the default invocation path.
<provider>-mcp-cli - 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
- Generated runtime client flow:
https://uxc.holon.run/ecosystem/typescript-client/
- Protocol operation naming quick reference:
references/protocol-cheatsheet.md
- Public endpoint examples and availability notes:
references/public-endpoints.md
- Authentication configuration (simple , named
secret, headers/query params, and request signers):fieldsreferences/auth-configuration.md
- OAuth and credential/binding lifecycle:
references/oauth-and-binding.md
- Failure handling and retry strategy:
references/error-handling.md