Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.

Covo Python SDK

Connect the Python agent you already have to a shared Covo session. Your teammates open one link, watch the same run live (model calls, tool calls, results, files, errors), and exactly one person at a time holds control: new instructions, pause/resume, interrupt, approve/reject, hand over control.

The agent keeps running on your machine or server. Your LLM keys, files and tools never leave it; only the events you share reach Covo.

Türkçe tam rehber: Covo panelinde /integrate.

Install

pip install "covo-sdk[openai]"

Python 3.11+, asyncio. The openai extra is only needed if you use instrument() with the OpenAI Python client; any OpenAI-compatible endpoint works (OpenAI, OpenRouter, DeepSeek, Ollama, vLLM, ...).

Three lines of integration

from openai import AsyncOpenAI
from covo_sdk import CovoOwner, instrument, tool

llm = instrument(AsyncOpenAI())            # 1. every model call is shared automatically

@tool(approve=True)                         # 2. tool calls are shared; this one needs approval
async def write_file(path: str, content: str) -> str:
    open(path, "w").write(content)
    return "saved"

async def run(ctx) -> str:                  # 3. your existing agent loop, unchanged
    completion = await llm.chat.completions.create(
        model="gpt-4.1-mini",
        messages=[{"role": "user", "content": ctx.instruction}],
    )
    return completion.choices[0].message.content

Start it from your terminal; Covo creates the shared session and prints the link:

import asyncio

async def main():
    owner = await CovoOwner.login(url="https://covo.example.com", name="Ulaş")
    client = await owner.connect(
        run=run, name="Research agent",
        capabilities=["instruct", "pause", "resume", "interrupt", "approval"],
    )
    print("Share with your team:", client.share_url)
    print("Private owner code (do not share):", await owner.browser_code())
    await client.start("Read README.md and propose a plan.")
    await client.wait()

asyncio.run(main())

What the SDK does for you

You write Covo shows Guarantees
instrument(client) model_call / model_result with the real prompt, response, measured latency and provider-reported tokens Streaming supported; calls outside a run pass through untouched; nothing is estimated or invented
@tool tool_call / tool_completed with the bound arguments, result or error, duration Sync tools run inline and bounded; async tools are cancellable for interrupt
@tool(approve=True) An approval card with the exact arguments; only the controller can decide The function body never runs on rejection (ToolRejected, or your rejected= value)
await ctx.checkpoint() Pause is acknowledged here Covo never claims "paused" before the agent actually stopped at a checkpoint
await ctx.emit(...) Anything else you want visible (thinking, resource) Redaction callback can filter content, never control data

Manual control for raw HTTP callers:

from covo_sdk import model_span

async with model_span(model, messages) as span:
    payload = await http.post(url, json=request)
    span.result(payload["choices"][0]["message"], tokens=payload["usage"]["total_tokens"])

Share a Claude Code session without writing code

covo --url https://covo.example.com --name "Ulaş" claude-code install

Registers Claude Code hooks. Every new Claude Code session prints a Covo share link; teammates watch tool calls, results and the final answer live, and the controller approves or rejects gated tools (default: Write, Edit, MultiEdit, NotebookEdit, Bash) from Covo. Watch-and-approve only: Covo cannot instruct, pause or interrupt Claude Code, and once control is handed to a teammate the owner's own terminal is blocked from new prompts until it returns. macOS, Linux and Windows 10+ (Git Bash, as Claude Code requires).

Control model

  • One controller per session, enforced server-side. Terminal and browser commands go through the same check; handing over control also locks out the owner's own terminal.
  • Interrupt cancels the running asyncio task and waits for cleanup before the replacement run starts. Do not swallow CancelledError; avoid detached threads.
  • Declare only the capabilities your agent honors. Unsupported controls are disabled in the UI.
  • Credentials live in .covo/ with owner-only permissions. Add .covo/ to .gitignore. Share only the session link.
  • HTTPS is required beyond localhost. For a Covo on a trusted LAN (private IP or .local host) pass allow_insecure_http=True (CLI: --allow-insecure-http); it is your explicit risk decision, the traffic is unencrypted and a non-private address triggers a stronger warning; use HTTPS over the internet.

CLI

covo --version
covo code                     # new private owner code for the browser
covo state <session-id>
covo command <session-id> pause
covo command <session-id> interrupt --text "Stop, use PostgreSQL instead."

Limits

Alpha. Python 3.11+ async agents only. The SDK must be wired into the agent before the run starts; it cannot attach to an already-running process. No automatic resume after a crash: Covo marks the old run failed and waits for a new instruction. Anyone with a session link can watch, so deploy Covo for a trusted team.

Metadata

Release files for covo-sdk 0.2.2

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

Source distribution (sdist)

Source distribution for covo-sdk 0.2.2
File Size Uploaded
covo_sdk-0.2.2.tar.gz 29.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for covo-sdk 0.2.2
File Interpreter ABI Platform
covo_sdk-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 58.4 kB

Release files / covo_sdk-0.2.2.tar.gz

Download URL covo_sdk-0.2.2.tar.gz
Size 29.0 kB
Tags Source
SHA-256 checksum
How to use checksums
7ec212ed73ae998f31e28a1c33fae0e7339fa226ed2f3a60e6c465e0579345f3
BLAKE2b-256 checksum
How to use checksums
4fde8ce58e3cc31361ab3706ca0acc600e404acd2780c2a434196444d50eb665
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / covo_sdk-0.2.2-py3-none-any.whl

Download URL covo_sdk-0.2.2-py3-none-any.whl
Size 29.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d7d0a83b3ef7d5c8267a11babe5ae91bc6964d419341235203340217bb15fcd4
BLAKE2b-256 checksum
How to use checksums
a1926c3961555a9cf0a7ca12e90f63d0a43635697b0ac1f668a987623035aca7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

0.3.7

2 release files

0.3.5

2 release files

This release

0.2.2 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