UXC
Universal X-Protocol CLI
A stable execution surface for agents.
English | 简体中文
UXC gives agents one stable way to discover, authenticate, and call remote tools across OpenAPI, gRPC, GraphQL, MCP, and JSON-RPC.
Instead of writing separate glue for each protocol, SDK, or local MCP setup, UXC turns remote interfaces into one predictable command contract with help-first discovery, structured execution, and deterministic JSON output.
Why UXC Exists
Agent tool use usually breaks down in the same places:
- auth scattered across prompts, scripts, and local setup
- different invocation models for each protocol
- local MCP server names and config that are not portable across machines
- large tool manifests or schemas pushed into prompt context
- one-off wrappers that drift from upstream interfaces
UXC exists to make remote capabilities feel like one stable execution surface for agents and automation.
What UXC Does
- Discover operations from an endpoint on demand
- Inspect input and output shape before execution
- Execute operations with structured arguments
- Return deterministic JSON envelopes by default
- Reuse auth bindings, signer profiles, and linked shortcuts
If a target can describe itself, UXC can usually call it.
Why It Works Well With Agents and Skills
- Progressive discovery keeps context small:
<host> -h,<host> <operation_id> -h, then execute - URL-first usage avoids dependency on machine-specific MCP aliases or local wrapper names
- Auth bindings externalize credential matching instead of burying it in prompts
- Linked shortcuts (
uxc link) turn remote endpoints into stable local commands - The same command contract can be reused across many skills and workflows
Core Capabilities
- URL-first usage: call endpoints directly, no server alias required
- Multi-protocol detection and adapter routing
- Schema-driven operation discovery (
<host> -h,<host> <operation_id> -h) - Structured invocation (positional JSON, key-value args)
- Deterministic JSON envelopes for automation and agents
- Auth model with reusable credentials, bindings, and signer profiles
- App-credential bootstrap for short-lived bearer tokens (for example, Feishu/Lark and DingTalk)
- Host shortcut commands via
uxc link - Link-level default OpenAPI schema persistence via
uxc link --schema-url - Daemon-backed background subscriptions via
uxc subscribe - Provider-aware event transports for Slack Socket Mode, Discord Gateway, and Feishu long connection
- Stdio child-process auth injection via
--inject-env NAME={{secret}}
Supported protocols:
- OpenAPI / Swagger
- gRPC (server reflection)
- GraphQL (introspection)
- MCP (HTTP and stdio)
- JSON-RPC (OpenRPC-based discovery)
Architecture Snapshot
UXC keeps protocol diversity behind one execution contract:

This design keeps discovery, auth, and execution stable while allowing protocol-specific internals.
Target Use Cases
- AI agents and skills that need deterministic remote tool execution
- CI/CD and automation jobs that need schema-driven calls without SDK setup
- Cross-protocol integration testing with one command contract
- Controlled runtime environments where JSON envelopes and predictable errors matter
Non-Goals
UXC is not:
- a code generator
- an SDK framework
- an API gateway or reverse proxy
UXC is a stable execution surface for remote capabilities that can describe themselves.
Install
Homebrew (macOS/Linux)
Install Script (macOS/Linux)
|
Review before running:
Install a specific version:
|
Windows note: native Windows is no longer supported; run UXC through WSL.
Cargo
From Source
Quickstart (3 Minutes)
Most HTTP examples omit the scheme for brevity.
For public hosts, UXC infers https:// when omitted.
- Discover operations:
- Inspect operation schema:
- Execute with structured input:
Use only these endpoint forms:
uxc <host> -huxc <host> <operation_id> -huxc <host> <operation_id> key=valueoruxc <host> <operation_id> '{...}'
For nested object or array inputs, key-value mode also supports dotted and indexed paths:
Protocol Examples (One Each)
Operation ID conventions:
- OpenAPI:
method:/path(example:get:/users/{id}) - gRPC:
Service/Method - GraphQL:
query/viewer,mutation/createUser - MCP: tool name (example:
ask_question) - JSON-RPC: method name (example:
eth_getBalance)
OpenAPI
For schema-separated services, you can override schema source:
gRPC
Note: gRPC unary runtime invocation requires grpcurl on PATH.
GraphQL
# Prefer positional JSON for non-string object arguments
# Optional: control GraphQL return fields via reserved _select argument
MCP
MCP (stdio)
UXC can also invoke MCP servers started as local processes over stdio. For stdio endpoints, the "URL" is a quoted command line.
Playwright MCP (stdio) example:
# One-off discovery
# Create a stable command name for repeated use (recommended)
# Inspect an operation before calling it
# Call operations with key=value args
JSON-RPC
Skills
UXC provides one canonical skill plus scenario-specific official wrappers.
Use uxc skill as the shared execution layer, and add wrappers when they fit your workflow.
Start Here
uxc: canonical schema discovery and multi-protocol execution layerplaywright-mcp-skill: browser automation over MCP stdio throughuxccontext7-mcp-skill: current library documentation and examples over MCP
See docs/skills.md for publish history, validation notes, and ClawHub maintenance details.
uxc: canonical schema discovery and multi-protocol execution layeruxc-skill-creator: templates and workflow guidance for building new UXC-based skills
playwright-mcp-skill: run@playwright/mcpover MCP stdio throughuxcchrome-devtools-mcp-skill: drive Chrome DevTools MCP throughuxccontext7-mcp-skill: query up-to-date library documentation and examplesdeepwiki-mcp-skill: query repository documentation and ask codebase questions
notion-mcp-skill: operate Notion MCP workflows with OAuth-aware guidancenotion-openapi-skill: traverse Notion pages, blocks, data sources, and legacy databases through the Notion Public APIlinear-graphql-skill: operate Linear issues, projects, and teams through GraphQLslack-openapi-skill: operate Slack Web API and receive inbound Socket Mode events throughuxc subscribediscord-openapi-skill: operate Discord REST API and receive Gateway events throughuxc subscribefeishu-openapi-skill: operate Feishu/Lark IM APIs with bootstrap-managed auth and long-connection event intaketelegram-openapi-skill: operate Telegram Bot API and receive updates through polling-baseduxc subscribematrix-openapi-skill: operate Matrix Client-Server API and follow room timelines through/syncpollingdingtalk-openapi-skill: operate DingTalk OpenAPI workflows with app bootstrap auth guidanceline-openapi-skill: operate LINE Messaging API request/response workflowswhatsapp-openapi-skill: operate WhatsApp Cloud API request/response workflows
alchemy-openapi-skill: query Alchemy prices and market endpoints through OpenAPIbinance-spot-openapi-skill: operate Binance Spot public market data and signed account/order flows through OpenAPIbinance-spot-websocket-skill: subscribe to Binance Spot public trade, ticker, depth, and book-ticker streams via raw WebSocketbinance-web3-openapi-skill: query Binance Web3 token discovery, rankings, smart money, audits, and address positions through OpenAPIbirdeye-mcp-skill: use Birdeye MCP for token discovery and market readsbitget-openapi-skill: operate Bitget exchange APIs through OpenAPIbitquery-graphql-skill: query Bitquery GraphQL for trades, transfers, holders, balances, and realtime subscription flowsblockscout-openapi-skill: read Blockscout explorer data through OpenAPIbybit-openapi-skill: operate Bybit exchange APIs through OpenAPIchainbase-openapi-skill: query Chainbase Web3 data APIs through OpenAPIcoinapi-openapi-skill: read CoinAPI market data through OpenAPIcoinbase-openapi-skill: operate Coinbase Advanced Trade APIs through OpenAPIcoingecko-openapi-skill: read CoinGecko public market data through OpenAPIcoinmarketcap-mcp-skill: use CoinMarketCap MCP for quotes, market overview, and narrativescrypto-com-mcp-skill: use Crypto.com MCP for exchange market datadefillama-openapi-skill: use DefiLlama public APIs through OpenAPIdefillama-prices-openapi-skill: query DefiLlama prices APIs through OpenAPIdefillama-pro-openapi-skill: use DefiLlama Pro APIs through OpenAPIdefillama-yields-openapi-skill: query DefiLlama yields APIs through OpenAPIdune-mcp-skill: discover blockchain tables, run SQL, fetch results, and build charts via Dune MCPethereum-jsonrpc-skill: use Ethereum JSON-RPC via curated OpenRPC metadataetherscan-mcp-skill: investigate addresses, token holders, and contracts via Etherscan MCPgate-mcp-skill: use Gate MCP for exchange market data and discovery workflowsgoldrush-mcp-skill: use GoldRush MCP for wallet, market, and token workflowskraken-openapi-skill: operate Kraken exchange APIs through OpenAPIkucoin-openapi-skill: operate KuCoin exchange APIs through OpenAPIlifi-mcp-skill: use LI.FI MCP for cross-chain route discovery and execution planningmexc-openapi-skill: operate MEXC exchange APIs through OpenAPImoralis-openapi-skill: query Moralis Web3 Data APIs through OpenAPIokx-exchange-websocket-skill: subscribe to OKX public exchange ticker, trade, book, and candle channels via raw WebSocketokx-mcp-skill: query OKX MCP for token, market, wallet, and swap workflowssui-jsonrpc-skill: use Sui JSON-RPC via curated OpenRPC metadatathegraph-mcp-skill: discover subgraphs, inspect schemas, and execute GraphQL via The Graph Subgraph MCP bridgethegraph-token-mcp-skill: query token, wallet, transfer, holder, and market data via The Graph Token API MCPupbit-openapi-skill: operate Upbit exchange APIs through OpenAPI
Install Skills
Use the skill folder name as the skill id for both npx skills and ClawHub.
Install from this repository using npx skills:
# Install the shared execution layer only
# Install any selected bundle of skills from this repo
Install published skills from ClawHub:
# Install the shared execution layer only
# Install any selected published skill by its folder/slug name
See docs/skills.md for the complete publish log and maintenance rules.
Output and Help Conventions
UXC is JSON-first by default.
Use --text (or --format text) when you want human-readable CLI output.
Examples:
Note: In endpoint routing, help is treated as a literal operation name, not a help alias.
Success envelope shape:
For MCP tools/call, data may include content, optional structuredContent, and optional isError.
Failure envelope shape:
Auth (Credentials + Bindings)
UXC authentication has two resources:
- Credentials: secret material and auth type
- Bindings: endpoint matching rules that select a credential
For non-OAuth credentials, use two auth tracks:
- simple auth: keep using
--secret,--secret-env, or--secret-op - complex auth: use repeatable
--field <name>=<source>plus optional binding-level--signer-json
Example:
# api_key supports configurable header names and templates
# multi-field auth for signed APIs
For --secret-op, secret resolution happens at request runtime through daemon execution.
Ensure daemon has usable 1Password auth context (for example OP_SERVICE_ACCOUNT_TOKEN), and restart daemon after env changes.
OAuth for MCP HTTP is supported (device code, client credentials, authorization code + PKCE).
See docs/oauth-mcp-http.md for full workflows.
TypeScript Daemon Client
uxc now includes an official Node/TypeScript package for daemon-backed local integrations:
It talks directly to the local daemon socket and returns structured objects instead of CLI stdout envelopes.
Use it when embedding UXC into apps that need runtime calls, daemon status, or subscription lifecycle/event streaming.
See docs/daemon-api.md for the daemon contract and SDK shape.
Docs Map
- Extended quickstart and protocol walkthroughs:
docs/quickstart.md - Public no-key endpoints for protocol checks:
docs/public-endpoints.md - Logging and troubleshooting with
RUST_LOG:docs/logging.md - Auth credential secret sources (
literal/env/op):docs/auth-secret-sources.md - Run daemon with service managers (
systemd/launchd):docs/daemon-service.md - Stable daemon JSON-RPC contract and TypeScript client:
docs/daemon-api.md - OpenAPI schema mapping and
--schema-url:docs/schema-mapping.md - Skills overview and install/maintenance guidance:
docs/skills.md - Release process:
docs/release.md
Contributing
Contributions are welcome.
- Development workflow and quality bar:
CONTRIBUTING.md - CI and release flows: GitHub Actions
License
MIT License - see LICENSE.