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.
5. For disambiguation, use operation-level help first:
- uxc <host> <operation> -h
6. 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 INLINECODE20
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.
1. Pick a fixed command name during skill development:
- 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}}
4. Validate link command:
- <link_name> -h
5. 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:
- Clarified and expanded authentication guidance in SKILL.md, directing users to specific reference tracks for API keys, multi-field auth, and OAuth.
- Updated references/auth-configuration.md and references/usage-patterns.md to reflect new authentication approaches.
- Improved reference documentation to clarify handling of request signers and multi-field secrets.