7d0f46d009
Per WAWQAQ DM:
1. **CLI Hub**: bare-name enumeration ("ntn", "discord") didn't tell
readers what those binaries map to. Switched to the `opencli external
list` brand-alias format: `ntn(notion)`, `discord(discord-cli)`,
`dws(DingTalk Workspace)`, `wecom-cli(企业微信)`, `tg(tg-cli)`,
`wx(wx-cli)`. Names that are already self-explanatory (gh / docker /
vercel / wrangler / obsidian / longbridge / lark-cli) stay bare.
2. **Exit Codes**: the 9-row table + example block was disproportionate
for a README. Compressed to one sentence with the 7 actionable codes
inline, full table relocated to:
- EN: `docs/guide/exit-codes.md` (new)
- ZH: `docs/zh/guide/exit-codes.md` (new)
968 B
968 B
Exit Codes
opencli follows Unix sysexits.h conventions so it integrates naturally with shell pipelines and CI scripts.
| Code | Meaning | When |
|---|---|---|
0 |
Success | Command completed normally |
1 |
Generic error | Unexpected / unclassified failure |
2 |
Usage error | Bad arguments or unknown command |
66 |
Empty result | No data returned (EX_NOINPUT) |
69 |
Service unavailable | Browser Bridge not connected (EX_UNAVAILABLE) |
75 |
Temporary failure | Command timed out — retry (EX_TEMPFAIL) |
77 |
Auth required | Not logged in to target site (EX_NOPERM) |
78 |
Config error | Missing credentials or bad config (EX_CONFIG) |
130 |
Interrupted | Ctrl-C / SIGINT |
Example: branch on exit code
opencli spotify status || echo "exit $?" # 69 if browser not running
opencli gh issue list 2>/dev/null
[ $? -eq 77 ] && opencli gh auth login # auto-auth if not logged in