Skip to main content

Control-Anything

Analyze anything, control anything — strongest unofficial way to hand any software surface to an LLM. Define once, ship as Python API / CLI / MCP server / REST / Web UI / OpenCLI spec — pick which channels to enable per deployment.

Rename history: api-anything 0.1.0-0.3.2 → invoco 0.1.0-0.3.1 → control-anything 0.1.0+ (this series, 2026-04-20). Semantic intent: reflect the real product — controlling anything via LLM, not just "call" (invoco) or "REST API" (api-anything). See CHANGELOG.md full rename note.

Python License Status


The idea: SSMCE

Single Source, Multi-Channel Emission. You write the function once; control-anything is the upstream orchestrator that hands it to Typer, FastAPI, FastMCP, Gradio, and OpenCLI spec emitters so every consumer (humans, agents, remote systems, beginners) gets the shape they need.

from control_anything import expose

@expose(channels=["api", "cli", "mcp", "ui"])
def blender_add_cube(x: float = 0, y: float = 0, z: float = 0) -> str:
    """Add a cube to the scene."""
    import bpy  # Blender official Python API (Tier 1 upstream)
    bpy.ops.mesh.primitive_cube_add(location=(x, y, z))
    return f"cube@({x},{y},{z})"

The same function becomes:

Channel Surface Consumer
api from control_anything_blender import add_cube engineers
cli control-anything-blender add-cube 1 2 3 shell / agents / interactive humans
mcp FastMCP server over stdio Claude Code / Cursor / any MCP client
rest POST /blender/add_cube remote agents / web backends
ui localhost:7860 auto-form beginners, visual exploration
opencli OpenCLI spec JSON + AGENT.md ecosystem discovery

0.1.0 (first release under the new name) ships the full SSMCE surface: expose() decorator, registry, ChannelArtifact + build_channel() + emit(), and control-anything serve --channels a,b,c parallel serve — all preserved feature-complete from the previous invoco 0.3.1.


Install

pip install control-anything

No mandatory dependencies. Add channel support as needed:

pip install 'control-anything[cli]'     # Typer
pip install 'control-anything[mcp]'     # FastMCP
pip install 'control-anything[rest]'    # FastAPI + Uvicorn
pip install 'control-anything[ui]'      # Gradio
pip install 'control-anything[all]'     # everything

0.1.0 quick tour

invoco --version
invoco info --json
invoco list       # lists exposed functions in the current interpreter
from invoco import expose, registry

@expose
def greet(name: str) -> str:
    """Say hi."""
    return f"hello {name}"

print(registry()["greet"].channels)  # ['api', 'cli'] — default channels

Positioning

  • Upstream ecosystems we stand on, not compete with: CLI-Anything (HKUDS), OpenCLI spec, Python bindings (bpy, cv2, qgis), vendor SDKs (anthropic, openai, boto3).
  • Our layer: tier detection + routing + multi-channel emit. Invoco decides how a function reaches every audience, not whether the audience exists.
  • Two audiences, one source: power users import / agents call MCP or CLI / beginners open the auto-generated UI. Nobody writes the function twice.

Roadmap

  • 0.1.0 — expose() decorator + registry + CLI skeleton. ✅ shipped.
  • 0.2 — channel emitters: Typer CLI, FastMCP, FastAPI, Gradio UI.
  • 0.3 — OpenCLI spec emit + AGENT.md generation + tier-detection port from upstream api-anything lineage.
  • 0.4 — CLI-Anything bridge (wrap HKUDS generated CLIs as typed Python APIs).
  • 0.5+ — UIA generator for closed-source Windows apps (Tier 3A exclusive).

History

Invoco 0.1.0 supersedes the api-anything preview line (last published 0.3.1, will be deprecated once the channel emitters ship). Core tier-detection and UIA code from api-anything will be rewired under Invoco's SSMCE model in 0.3+.

License

Apache-2.0.

Metadata

Release files for control-anything 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 control-anything 0.1.0
File Size Uploaded
control_anything-0.1.0.tar.gz 45.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for control-anything 0.1.0
File Interpreter ABI Platform
control_anything-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 79.2 kB

Release files / control_anything-0.1.0.tar.gz

Download URL control_anything-0.1.0.tar.gz
Size 45.8 kB
Tags Source
SHA-256 checksum
How to use checksums
e5f1617a42722d08ef35e0e3d3ebd3852cdd64c52740ec26ce8a883ba6136353
BLAKE2b-256 checksum
How to use checksums
585fb24f82bf0e1f47e1090d8057b9a46a5c569933f9fb8fc08f80fdfa894dee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / control_anything-0.1.0-py3-none-any.whl

Download URL control_anything-0.1.0-py3-none-any.whl
Size 33.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cdfb711a4a44db954fee25a7921c0178aab27b5bfaf9816faa1230474d3aae5b
BLAKE2b-256 checksum
How to use checksums
0b24dbd6d090d293276e7c4b6bb0ae1c48ed2cc49eae1b42c814b02f3f25784a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

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