Markdown Converter
Agent skill for markdown-converter
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Sign in to like and favorite skills
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is the Composio SDK v3 repository containing both TypeScript and Python SDKs. The main development focus is on the TypeScript SDK located in
/ts/ directory. The project uses a monorepo structure with multiple packages and examples.
fern/CLAUDE.md# Build all packages pnpm build # Build only TypeScript packages pnpm build:packages # Clean build artifacts pnpm clean pnpm clean:workspace # Lint code pnpm lint pnpm lint:fix # Format code pnpm format # Run tests pnpm test
# Install dependencies pnpm install # Check peer dependencies pnpm check:peer-deps # Update peer dependencies pnpm update:peer-deps
# Create a new provider pnpm create:provider <provider-name> [--agentic] # Create a new example pnpm create:example <example-name>
# Create changeset for releases pnpm changeset # Version packages pnpm changeset:version # Publish packages pnpm changeset:release
composio/ ├── ts/ # TypeScript SDK (main development) │ ├── packages/ │ │ ├── core/ # Core SDK functionality │ │ ├── providers/ # AI provider integrations (OpenAI, Anthropic, etc.) │ │ ├── cli/ # Command-line interface │ │ ├── json-schema-to-zod/ # Schema conversion utility │ │ └── ts-builders/ # TypeScript code generation utilities │ └── examples/ # Usage examples for different providers ├── python/ # Python SDK ├── fern/ # Documentation and API specs └── examples/ # Cross-platform examples
@composio/core - Main SDK functionality:
src/composio.ts - Main Composio classsrc/models/ - Core models (Tools, Toolkits, ConnectedAccounts, etc.)src/provider/ - Base provider implementationssrc/services/ - Internal services (telemetry, pusher)src/types/ - TypeScript type definitionssrc/utils/ - Utility functions and helpersProvider Packages - AI integrations:
@composio/openai - OpenAI integration@composio/anthropic - Anthropic integration@composio/google - Google GenAI integration@composio/langchain - LangChain integration@composio/vercel - Vercel AI integration@composio/mastra - Mastra integrationTools - Individual functions that can be executed (e.g., GITHUB_CREATE_REPO, GMAIL_SEND_EMAIL)
Toolkits - Collections of related tools grouped by service (e.g., github, gmail, slack)
Connected Accounts - User authentication/authorization for external services
Auth Configs - Configuration for different authentication methods
Custom Tools - User-defined tools with custom logic
Providers - Integrations with AI frameworks (OpenAI, Anthropic, etc.)
Modifiers - Middleware to transform tool inputs/outputs
pnpm create:provider <name> to scaffold new providerswrapTool, wrapToolspnpm testtest/ directories within each packagetest/utils/mocks/eslint.config.mjsCOMPOSIO_API_KEY # Required: Your Composio API key COMPOSIO_BASE_URL # Optional: Custom API base URL COMPOSIO_LOG_LEVEL # Optional: Logging level (silent, error, warn, info, debug) COMPOSIO_DISABLE_TELEMETRY # Optional: Set to "true" to disable telemetry DEVELOPMENT # Development mode flag CI # CI environment flag
ts/packages/core/src/index.tsts/packages/core/src/composio.tsts/packages/core/src/types/ts/packages/core/src/errors/ts/examples/ and examples/ts/docs/ and fern/turbo.json, tsconfig.base.json# Run all tests pnpm test # Run tests for core package only cd ts/packages/core && pnpm test # Run tests with UI pnpm test:ui
const composio = new Composio({ apiKey: 'your-key' }); const result = await composio.tools.execute('TOOL_NAME', { userId: 'user-id', arguments: { /* tool args */ } });
import { OpenAIProvider } from '@composio/openai'; const provider = new OpenAIProvider({ apiKey: 'openai-key' }); const tools = await composio.tools.get('user-id', { toolkits: ['github'] }); const wrappedTools = provider.wrapTools(tools);
import { z } from 'zod'; const customTool = await composio.tools.createCustomTool({ name: 'My Tool', description: 'Tool description', slug: 'MY_TOOL', inputParams: z.object({ param: z.string().describe('Parameter description') }), execute: async (input) => { // Implementation return { data: { result: input.param }, error: null, successful: true }; } });
This monorepo uses pnpm workspaces and Turbo for efficient builds and development.
The Python SDK is located in the
/python/ directory and uses uv for dependency management and nox for automation.
# Create and setup Python development environment cd python make env source .venv/bin/activate
# Setup environment (creates virtual env with all dependencies) make env # Sync dependencies (when in an existing environment) make sync # Install provider packages make provider # Format code using ruff make fmt # Or directly: nox -s fmt # Check linting and type issues make chk # Or directly: nox -s chk # Fix linting issues nox -s fix # Run tests (requires implementing tst session) make tst # Or directly: nox -s tst # Run sanity tests (requires implementing snt session) make snt # Or directly: nox -s snt # Clean build artifacts make clean-build # Bump version make bump # Build packages make build
python/ ├── composio/ # Main SDK package ├── providers/ # Provider implementations ├── tests/ # Test suite ├── examples/ # Usage examples ├── scripts/ # Development scripts ├── config/ # Configuration files │ ├── pytest.ini # Pytest configuration │ ├── mypy.ini # MyPy type checking config │ ├── ruff.toml # Ruff linter/formatter config │ └── codecov.yml # Code coverage config ├── Makefile # Development shortcuts ├── noxfile.py # Nox automation sessions └── pyproject.toml # Project configuration
# Run tests with pytest markers pytest -m core # Run core tests only pytest -m openai # Run OpenAI provider tests pytest -m langchain # Run LangChain provider tests pytest -m agno # Run Agno provider tests
pysher, pydantic>=2.6.4, composio-client==1.4.0, typing-extensions>=4.0.0, openainox, pytest, ruff, langchain_openai, fastapi, twine, click, semverSame as TypeScript SDK, with additional:
OPENAI_API_KEY # Required for OpenAI provider examples