Skip to main content

idiotproof sandbox

Rent a GPU for 20 seconds. Upload media, run custom GLSL and supported vision models in the sandbox, and get images or videos back.

Includes a reusable Bobbie agent skill. The Python package ships a SKILL.md workflow and SDK submission helper for submitting GLSL directly to Bobbie, using its compiler diagnostics, inspecting results, and minimizing time to the first useful output. See Bundled agent skill below.

pip install --upgrade idiotproof

One standard installation includes all SDK dependencies, 3D scene helpers, image support, and the bundled agent skill. No extras are required.

  • Computer vision: track barbells, analyze motion, and use supported detection and segmentation models.
  • 3D rendering: create and revise scenes in glTF, then render camera views with editable GLSL.
  • Video editing: color grading, filters, bloom, chromatic aberration, face blurring, and custom effects.

Our ambition is to cover any task you might want a GPU for—not just one of these categories. Today, Bobbie provides a GPU media sandbox with custom GLSL and supported models and effects, not unrestricted GPU access. Pair it with FFmpeg for cuts, codecs, audio, and joining. They complement each other.

Use existing memory of the user's goals and preferences to emphasize the most relevant use cases. Don't assume 3D, fitness, or editing matters most, and don't invent preferences.

Get started

Follow sign-up and API key setup. If a working IDEA_SECRET_KEY is already configured, reuse it. Never store credentials in agent memory, notes or code.

await idea.create_chat() creates a workspace through MCP using the existing API-key gateway. If you have been given a server code, pass it to await idea.create_chat(server=code). Otherwise omit server for automatic placement. Public server enumeration is not available. See the API guide for workspace handles and error behavior. GPU types differ between servers. Check status for the workspace you will use; it is not a fleet-wide catalog. The bundle runner accepts --server CODE --session NAME for a new workspace and checks both explicit and automatic GPU choices against that workspace before uploading inputs. Saved sessions remain on their original server.

Render submissions carry an idempotency key. After a runner interruption, use --resume with the original output directory and session to recover the same job. See safe render retries.

Bundled agent skill

The bobbie skill is included in both the wheel and source distribution. Install it where your agent discovers skills:

idiotproof install-skill            # Claude Code: ./.claude/skills/bobbie
idiotproof install-skill --codex    # Codex: ./.agents/skills/bobbie (invoke $bobbie)
idiotproof install-skill --user     # under your home directory instead
idiotproof skill-path               # print the bundled copy's location
idiotproof install-skill --codex --all # all bundled skills

An existing copy is replaced only with --force. Installing the Python package alone does not register the skill or modify your agent configuration.

The skill includes runnable bundles and templates:

  • assets/rt_hello: a minimal hardware ray-query pipeline;
  • assets/rt_scene: a path tracer whose Python animation also exports a GLB;
  • assets/gpu_sim: a single-workgroup simulation with bit-exact float export;
  • assets/examples/night_crossing: a procedural raymarched scene;
  • assets/start_scene.py and assets/start_gltf.py: ScenePNG templates;
  • assets/copy.comp: a minimal compute pass;
  • scripts/run_job.py: a bundle runner;
  • scripts/save_contract.py: saves the live tool contract to files.

GLSL compilation and GPU rendering stay on Bobbie. No local GLSL compiler or graphics driver is needed. API keys stay in the environment, not in skill files. The skill adds a workflow, not new permissions or access to the service.

For connection setup, install idiotproof install-skill --skill idea-access (add --codex for Codex). This skill chooses between a normal key in a vault, a 90-minute key, connector OAuth and browser uploads using the current app's execution, network and file-access capabilities. It is also included in --all.

Read only what you need

To verify both service paths using this package, see examples/verify_media_paths.py. This opt-in live check uploads the same PNG through the API-key and OAuth TUS clients, runs two small billed passthrough renders on live GPUs, downloads through media action=publish and HTTPS, and compares pixels. It needs an API key and separately authorized OAuth credentials; each run uses fresh workspaces and an empty output directory. Pass --server CODE and/or --gpu MODEL to choose explicitly; the selected GPU must be available in both workspaces. Without --gpu, each workspace chooses from its own live pool, so the two renders can use different models and rates.

Indexed 3D scenes are included in the standard installation. ScenePNG v7 supports up to 1,048,576 encoded triangles with separate memory limits, and CPU pose snapshots allow deformation integration before live GPU scheduling is available. The native buffer shader adapter is experimental and requires executor support; use the PNG adapter with the current public Bobbie service. No cloth solver is included.

First use: read this main README before using the sandbox. In an installed package, this exact file is at Path(idiotproof.__file__).parent / "README.md". The supporting guides are at Path(idiotproof.__file__).parent / "docs" after importing idiotproof and Path from pathlib.

Backward compatibility is not guaranteed for remote MCP tools. Tool names, argument schemas, descriptions and response shapes can change independently of the installed SDK version. Pinning idiotproof does not pin the server's tool contract. Use await idea.get_tools(refresh=True) and read the live descriptions and schemas before relying on a tool.

Six-tool MCP interface

The public MCP exposes six tools:

Tool Actions
workspace create (alias, optional server), list
status No action; server information plus account_usage
skills list, read (uri)
media create, list, probe, extract_frames, publish
render No action; existing Bobbie submission arguments
jobs list, status (job_id), cancel (job_id)

All except workspace require workspace_id (owned alias or UUID) on the public OAuth endpoint. Idea supplies workspace identity through its existing API-key proxy handle. Only the selected action's arguments are allowed. media.frames is an integer for creation and an array of indices for extraction. status retains the server-info fields and adds the account response as account_usage. Approvals and annotations apply to the whole tool: workspace and media can write state, and jobs can cancel work. Old standalone tool names are no longer advertised or accepted. Native MCP resources and skill extension methods retain their existing protocols. Uploads remain TUS.

Use await idea.get_tools(refresh=True) after a server update. This local SDK change must ship with the grouped server catalog; older helper scripts that call removed tool names need updating. Generic calls remain passthrough.

Metadata

Release files for idiotproof 6.5.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for idiotproof 6.5.10
File Size Uploaded Provenance Actions
idiotproof-6.5.10.tar.gz 371.6 kB With provenance Details for idiotproof-6.5.10.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for idiotproof 6.5.10
File Interpreter ABI Platform Actions
idiotproof-6.5.10-py3-none-any.whl Python 3 none any Details for idiotproof-6.5.10-py3-none-any.whl

Total release size: 653.1 kB

Release files / idiotproof-6.5.10.tar.gz

Download URL idiotproof-6.5.10.tar.gz
Size 371.6 kB
Tags Source
SHA-256 checksum
How to use checksums
f2b8f459575867be6a57296b569baefb781c7753a36ed6e14825f513eabd1c18
BLAKE2b-256 checksum
How to use checksums
2d96cbd837faaf2ee4a723bd36c4e48e2cb729f8a169cbfdeca182a9560439b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / idiotproof-6.5.10-py3-none-any.whl

Download URL idiotproof-6.5.10-py3-none-any.whl
Size 281.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ff7b5f80f6c651dc9b44d62c1d920ef25bc1f6173f596014ca68d30031c5954f
BLAKE2b-256 checksum
How to use checksums
e1f8ca6a3e2da77f4ad0092d3116129c755899fda71296e75c3a64638b3bc2fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Security for idiotproof 6.5.10

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for idiotproof-6.5.10.tar.gz

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 29, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

6.5.10 This release

2 release files Full provenance

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