Uno CLI — Agent tool gateway by ClawdChat. Access 2000+ real-world tools from the command line.
Project description
Uno CLI
Agent tool gateway by ClawdChat — access 2000+ real-world tools from the command line with one credential.
Zero runtime dependencies (Python 3.8+ stdlib only). Designed for both humans in a terminal and LLM agents orchestrating tool calls.
Install
pip install uno-cli
Quick start
uno login # device-code auth via ClawdChat SSO
uno search "weather" # find a tool
uno call weather-cn.weatherArea --args '{"area":"Beijing"}'
Credentials are stored at ~/.uno/credentials.json (mode 600).
Core commands
| Command | Purpose |
|---|---|
uno login / uno logout / uno use |
Device-code auth, multi-account switching |
uno whoami |
Current user, credits, plan |
uno search <query> |
Hybrid keyword + semantic tool search |
uno tool get <slug> |
Full tool metadata |
uno call <slug> --args '{...}' |
Invoke a tool; returns {success, data, meta} |
uno rate <slug> <0-5> |
Rate a tool to improve ranking |
uno servers [-q ...] |
Browse servers / categories |
uno keys list / create / delete |
API key management |
uno disconnect <server> |
Revoke 3rd-party OAuth / API key |
uno health |
Liveness check |
All commands output JSON. Add --compact for single-line output (fewer tokens for LLM agents).
Environment variables
| Variable | Purpose |
|---|---|
UNO_API_KEY |
Override stored credentials (useful for CI). |
UNO_API_URL |
Override API base URL (default https://clawdtools.uno). |
UNO_OAUTH_SCOPE |
OAuth scope requested at login --start (default mcp:*). Single-purpose skills narrow this to mcp:<tool>. |
UNO_ALLOWED_TOOLS |
Comma-separated glob whitelist enforced by uno call. Tools not matching any pattern are rejected with tool_not_allowed. Example: gpt-image-2.*,time.*. |
UNO_CALLER_SKILL |
Identifier (e.g. gpt-image2) appended to the User-Agent for attribution. |
Scope enforcement for embedding skills
Single-purpose Cursor / Claude skills (such as gpt-image2) embed uno-cli as a dependency but must only call the one tool they advertise. The combination of UNO_OAUTH_SCOPE (narrowed scope at login) and UNO_ALLOWED_TOOLS (runtime glob whitelist) makes the CLI's behaviour match its declared metadata — a hard requirement for Clawhub / Skillhub security review.
export UNO_OAUTH_SCOPE="mcp:gpt-image-2"
export UNO_ALLOWED_TOOLS="gpt-image-2.*"
uno call gpt-image-2.gpt_image2_submit --args '{"prompt":"..."}'
Attempting to call anything outside the whitelist returns:
{
"error": "tool_not_allowed",
"tool": "github.create_issue",
"allowed": ["gpt-image-2.*"],
"hint": "This skill is scoped to a subset of Uno tools. Install uno-cli separately to access the full 2000+ tool catalog."
}
Python entry point
Agents that bootstrap the CLI without relying on PATH can use the module form:
python -m uno_cli search "weather"
License
MIT © ClawdChat.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file uno_cli-1.0.0.tar.gz.
File metadata
- Download URL: uno_cli-1.0.0.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a7934e9a471bf128936658b5d24d1437e37708ffe9bd5e008c508b19a2139bd
|
|
| MD5 |
a0fa6cc03dba7d4634ad86f71b6ad4d4
|
|
| BLAKE2b-256 |
910cdf57a60944277a50acaf7e8d02b2040d9872c1ce8e6b542472962aca5f58
|
File details
Details for the file uno_cli-1.0.0-py3-none-any.whl.
File metadata
- Download URL: uno_cli-1.0.0-py3-none-any.whl
- Upload date:
- Size: 13.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ace8bb33c14570840122a35d1226468570de8706c80f60d01d0efe222c3b1d2
|
|
| MD5 |
d36cd54cad2ff86129a20380245c2062
|
|
| BLAKE2b-256 |
7dfa2d8bd387573d45fe9bbbf4377b7f102a83d5fc93c9c2623007acd55211c3
|