Skip to main content

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 zibloh CLI (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

  1. 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.

  2. 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.

  3. Network access to app.zibloh.com. Everything the CLI and the MCP server do, including uploading robot code, goes to https://app.zibloh.com (https://devapp.zibloh.com for 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.com in 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 with 403 and blocked-by-allowlist from Claude's proxy, before the request reaches Zibloh.

    • Claude Code with the sandbox enabled: add it to sandbox.network.allowedDomains in ~/.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.com domains.

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)

Source distribution for zibloh 0.1.0
File Size Uploaded
zibloh-0.1.0.tar.gz 36.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for zibloh 0.1.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page