Zibloh CLI and Claude Code plugin
Write, deploy, configure, run and debug Zibloh robots from the terminal or from Claude Code. The same package is:
- the
ziblohCLI (zibloh <module> <action>, every command takes--json); - an MCP server (
zibloh mcp, stdio) with the same operations as<module>_<action>tools; - a Claude Code plugin: the MCP server, three skills (
zibloh-setup,zibloh-workflow,zibloh-robot-authoring) and a hook that keeps API keys out of prompts.
Before you start
-
Features. Your company needs the Autoservicio (
self_serve) and API Keys features enabled, plus Secrets de robot if your robots need credentials. Ask your Zibloh contact. -
A company admin to approve the login. Logging in opens the web app and a company admin clicks Autorizar (see Log in). Nobody creates or copies an API key by hand.
-
Network access to
app.zibloh.com. Everything the CLI and the MCP server do, including uploading robot code, goes tohttps://app.zibloh.com(https://devapp.zibloh.comfor Milmoh's dev platform). If Claude runs with a network allowlist, that domain must be on it:-
Claude Desktop / claude.ai (code execution): an organization Owner adds
app.zibloh.comin Organization settings → Capabilities → Code execution, under the additional allowed domains. Members of a Team/Enterprise organization cannot change it themselves. Without it the session fails with403andblocked-by-allowlistfrom Claude's proxy, before the request reaches Zibloh. -
Claude Code with the sandbox enabled: add it to
sandbox.network.allowedDomainsin~/.claude/settings.json(or the project's.claude/settings.json):{ "sandbox": { "network": { "allowedDomains": ["app.zibloh.com"] } } }
-
Company firewall / proxy: allow outbound HTTPS to
app.zibloh.com.
Nothing else is needed: no
amazonaws.comdomains. -
Install
Claude Code plugin:
/plugin marketplace add Milmoh/zibloh-mcp
/plugin install zibloh@zibloh
CLI only (Python 3.11+; with uv or pipx):
uv tool install zibloh # or: pipx install zibloh
zibloh version
Upgrade with uv tool upgrade zibloh.
Log in
From Claude Code, just ask ("log me in to Zibloh"): Claude calls the auth_login tool. From a
terminal:
zibloh login # --env dev for Milmoh's dev platform
zibloh whoami
Either way your browser opens at app.zibloh.com/cli-login?code=XXXX-XXXX (if it does not, open
the URL shown). Log in, check that the code matches the one in your terminal or in Claude Code,
choose what it may do (Completo, Ejecución or Lectura, and MCP for Claude Code) and
click Autorizar. The CLI then receives an API key for this computer, named
Claude Code · <computer> or CLI · <computer>, and stores it in
~/.config/zibloh/credentials.json (mode 0600). The key never appears on screen or in the chat;
to cut access, revoke it in Configuración de empresa → API Keys. Approving needs a company
admin.
For CI and scripts that already have a key: zibloh login --with-key < keyfile (or the hidden
prompt). ZIBLOH_API_KEY, ZIBLOH_BASE_URL, ZIBLOH_ENV and ZIBLOH_PROFILE override the
stored login; --profile switches between saved logins.
The plugin also stops any prompt that contains a Zibloh API key (zbl_…) before Claude reads
it. If that happens, revoke the key.
The loop
zibloh launchers list # where can it run
zibloh robots init ./my-robot # scaffold from the template
# ... write main.py ...
zibloh robots validate ./my-robot --target cloud
zibloh robots create --name "Facturas proveedor" # once; note the robot_id
zibloh robots target <robot_id> --cloud # or --launcher <launcher_id>
zibloh secrets create ERP_PASSWORD # hidden prompt
zibloh robots secrets bind <robot_id> ERP_PASSWORD
zibloh robots deploy <robot_id> ./my-robot
zibloh robots options define <robot_id> --from-config ./my-robot/config.json
zibloh robots options set <robot_id> test_mode=true
zibloh robots run <robot_id> --wait
zibloh robots executions logs <execution_id>
Schedules (cron, auto_execute) are set in the web app for now.
What it will not do
- Show secret values: there is no reveal command, and the MCP tools only take secrets from an environment variable or a file, never as text.
- Create companies, enable features, create launcher licences or manage users: those stay in the web app.
Audit
Every call carries X-Zibloh-Client (cli/mcp), X-Zibloh-Tool (the command or tool),
X-Zibloh-Session (one per process, or ZIBLOH_SESSION) and X-Request-Id. Zibloh stores one
audit row per call made with an API key.
Development
uv venv && uv pip install -e . pytest respx
.venv/bin/pytest
Releases: bump the version in pyproject.toml, src/zibloh/__init__.py and
.claude-plugin/plugin.json, merge, then push a vX.Y.Z tag; .github/workflows/publish.yml
publishes to PyPI with trusted publishing (environment pypi, no stored token).
src/zibloh/templates/ is a copy of main.py, main_browser_template.py, config.json and
requirements.txt from the zibloh-robot-template repo; keep them in sync.
License
Apache-2.0. See LICENSE.
Metadata
Release files for zibloh 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| zibloh-0.1.0.tar.gz | 36.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| zibloh-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 81.4 kB
Release files / zibloh-0.1.0.tar.gz
| Download URL | zibloh-0.1.0.tar.gz |
|---|---|
| Size | 36.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
caf24a5dcb37013743518d6269f4a56b73c5bfd216f410c44ed3ac390b721a57
|
|
BLAKE2b-256 checksum How to use checksums |
fd5b927333f59ac4d590f7c4fa0c23e0a2075ac9a11682f71f909bd5da7fe74c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency logRelease files / zibloh-0.1.0-py3-none-any.whl
| Download URL | zibloh-0.1.0-py3-none-any.whl |
|---|---|
| Size | 45.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7c72c4f2c19c2fb3b8fdaec13ab358a89170064c35f9f2e2ae0975913ae4f537
|
|
BLAKE2b-256 checksum How to use checksums |
2e4f6b12920b7bba01ae29fe8b8a2a5f7e91bb066deb7972f16de43d39f6fd1e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency log