mirror of
https://github.com/ComposioHQ/composio.git
synced 2026-09-22 11:46:35 +08:00
a13c883845
## What Two changes to the docs install experience: **1. Package-manager picker on install code blocks.** New `PackageInstall` client component (`docs/components/package-install.tsx`): the code block's copy button opens a dropdown of package managers. Selecting one rewrites the displayed command and copies it to the clipboard. - TypeScript blocks: npm (default, `npm install`) / pnpm / bun / yarn (`<pm> add`) - Python blocks: uv (default, `uv add`) / pip (`pip install`) - The menu is portaled to `document.body` so it isn't clipped by the `Tabs`/`CodeBlock` overflow containers, and closes on outside click, Escape, or real scroll movement. **2. `@composio/slim` callout in the quickstart.** The quickstart TypeScript install blocks carry display-only `#` comment lines noting that `@composio/core` ships its docs and TypeScript source in the package (inspectable to coding agents) and that `@composio/slim` is the smaller install with the same API. Comment lines are rendered muted and are **never copied** — the picker copies only the command. ## Where Converted every plain `npm install` / `pip install` code block under `docs/content` (quickstart, all provider pages, single-toolkit MCP, custom tools, migration guides, standup example, SDK reference indexes). The TS reference index's manual npm/pnpm/yarn/bun tabs collapse into one picker. The two SDK-reference generators (`ts/packages/core/scripts/generate-docs.ts`, `python/scripts/generate-docs.py`) emit the new component so regeneration keeps it. Flagged upgrade commands (`pip install -U/--upgrade`) and the bun-first examples were left as-is. ## Verification - `bun run types:check` — pass - `bun run build` — pass - `eslint` on touched TS files — clean (remaining repo lint errors are pre-existing on `next`) - Visual check via dev server + browser: comment lines render muted below the command, picker opens npm/pnpm/bun/yarn (uv/pip on Python tabs), selecting a manager rewrites the command, and the clipboard receives exactly the command with no comment lines. Docs-only behavior change; no changeset (generator-script edits don't touch published code). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
89 lines
3.5 KiB
Plaintext
89 lines
3.5 KiB
Plaintext
---
|
|
title: "Python SDK Reference"
|
|
description: "API reference for the Composio Python SDK"
|
|
---
|
|
|
|
# Python SDK Reference
|
|
|
|
Complete API reference for the `composio` Python package.
|
|
|
|
## Installation
|
|
|
|
<PackageInstall ecosystem="python" packages="composio" />
|
|
|
|
## Classes
|
|
|
|
| Class | Description |
|
|
|-------|-------------|
|
|
| [`Composio`](/reference/sdk-reference/python/composio) | Composio SDK for Python. Generic parameters: TTool: The individual tool type re... |
|
|
| [`Tools`](/reference/sdk-reference/python/tools) | Tools class definition This class is used to manage tools in the Composio SDK. ... |
|
|
| [`Toolkits`](/reference/sdk-reference/python/toolkits) | Toolkits are a collectiono of tools that can be used to perform various tasks. T... |
|
|
| [`Triggers`](/reference/sdk-reference/python/triggers) | Triggers (instance) class |
|
|
| [`ConnectedAccounts`](/reference/sdk-reference/python/connected-accounts) | Manage connected accounts. This class is used to manage connected accounts in t... |
|
|
| [`AuthConfigs`](/reference/sdk-reference/python/auth-configs) | Manage authentication configurations. |
|
|
| [`MCP`](/reference/sdk-reference/python/mcp) | MCP (Model Control Protocol) class. Provides enhanced MCP server operations Thi... |
|
|
| [`Session`](/reference/sdk-reference/python/session) | A Composio session — the object returned by ``composio.create(...)`` / ``composi... |
|
|
|
|
## Quick Start
|
|
|
|
```python
|
|
from composio import Composio
|
|
|
|
composio = Composio(api_key="your-api-key")
|
|
|
|
# Get tools for a user
|
|
tools = composio.tools.get("user-123", toolkits=["github"])
|
|
|
|
# Execute a tool
|
|
result = composio.tools.execute(
|
|
"GITHUB_GET_REPOS",
|
|
arguments={"owner": "composio"},
|
|
user_id="user-123"
|
|
)
|
|
```
|
|
|
|
## Decorators
|
|
|
|
### before_execute
|
|
|
|
[View source](https://github.com/composiohq/composio/blob/next/python/composio/core/models/_modifiers.py#L280)
|
|
|
|
```python
|
|
@before_execute(modifier: BeforeExecute | None = ..., tools: List[str | None] = ..., toolkits: List[str | None] = ...)
|
|
def my_modifier(...):
|
|
...
|
|
```
|
|
|
|
### after_execute
|
|
|
|
[View source](https://github.com/composiohq/composio/blob/next/python/composio/core/models/_modifiers.py#L241)
|
|
|
|
```python
|
|
@after_execute(modifier: AfterExecute | None = ..., tools: List[str | None] = ..., toolkits: List[str | None] = ...)
|
|
def my_modifier(...):
|
|
...
|
|
```
|
|
|
|
### before_file_upload
|
|
|
|
Build a ``Modifier`` for the file-upload hook (same scoping pattern as :func:`before_execute`). Your callable may take **either**: - a single ``context`` argument (:class:`BeforeFileUploadContext`) — the preferred form, exposes ``context["source"]`` (``"path"`` or ``"url"``), or - three positional arguments ``(path, tool, toolkit)`` — legacy form, kept for back-compat. Return a new path/URL string to substitute, or ``False`` to abort the upload (raises :class:`~composio.exceptions.FileUploadAbortedError`). Pass the returned ``Modifier`` in ``modifiers=[...]`` on :meth:`composio.core.models.tools.Tools.execute` or ``tools.get``. Multiple such modifiers are composed in list order.
|
|
|
|
[View source](https://github.com/composiohq/composio/blob/next/python/composio/core/models/_modifiers.py#L319)
|
|
|
|
```python
|
|
@before_file_upload(modifier: BeforeFileUploadLike | None = ..., tools: List[str | None] = ..., toolkits: List[str | None] = ...)
|
|
def my_modifier(...):
|
|
...
|
|
```
|
|
|
|
### schema_modifier
|
|
|
|
[View source](https://github.com/composiohq/composio/blob/next/python/composio/core/models/_modifiers.py#L377)
|
|
|
|
```python
|
|
@schema_modifier(modifier: SchemaModifier | None = ..., tools: List[str | None] = ..., toolkits: List[str | None] = ...)
|
|
def my_modifier(...):
|
|
...
|
|
```
|
|
|