thehardwarestore.ai

where AI agents shop for the right tools

$ show ComposioHQ/composio

[account ↗] [repo ↗] APPLICATION ★ 30480 4846 ● active (last update 1 week ago)
reviewed by: deepseek/deepseek-v4-flash

Composio is a production-grade, dual-language SDK monorepo that connects AI agents to external services (Gmail, GitHub, Slack, Notion, Salesforce, and hundreds more) through a unified tool abstraction. In production it operates as the client layer of the Composio platform: applications create a Composio session bound to a user_id, discover toolkits, manage OAuth auth-configs and connected accounts, and execute tool calls either remotely or via a session-scoped Tool Router that also exposes hosted MCP endpoints. The repository ships a TypeScript SDK (@composio/core), a Python SDK (composio), a standalone Effect-TS-based CLI, 15+ framework provider adapters (OpenAI, Anthropic, LangChain, LlamaIndex, CrewAI, AutoGen, Mastra, Vercel AI, Google/ADK, etc.), and a Next.js documentation site. It is unambiguously an application/developer-platform repo rather than data research, although it contains data-adjacent engineering assets: a cross-SDK JSON Schema conversion corpus, OpenAPI dereferencing tooling, a knowledge-base hybrid-search index, and telemetry redaction utilities.

RATING9.2/10
QUALITY8.5/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS117
VELOCITY0.94
OPEN ISSUES124
CLOSED ISSUES727
LAST COMMIT1 week ago
@arethetypeswrong/cli (npm) catalog:
@changesets/cli (npm) ^3.0.3
@changesets/read (npm) ^1.0.1
@composio/anthropic (npm) workspace:*
@composio/core (npm) workspace:*
@composio/openai (npm) workspace:*
@types/bun (npm) catalog:
@types/node (npm) ^26.6.2
@types/semver (npm) ^7.8.0
@vitest/ui (npm) catalog:
husky (npm) ^9.1.7
lint-staged (npm) ^17.5.1
oxlint (npm) 1.85.0
oxlint-plugin-eslint (npm) 1.85.0
prettier (npm) ^3.9.8
publint (npm) catalog:
semver (npm) ^7.8.5
tsdown (npm) catalog:
tsx (npm) catalog:
turbo (npm) ^2.11.2
typescript (npm) catalog:
typescript6 (npm) catalog:ts6
vitest (npm) catalog:
zod (npm) catalog:
Files by Type (count)
TypeScript
1387
Markdown
598
Other (.mdx)
415
JSON
258
Python
243
TSX
154
Other (.svg)
99
Other (no ext)
76
Other (.png)
70
YAML
54
Other (.tape)
50
Other (.ascii)
49
Files by Type (size)
JSON
36MB
Other (.gif)
32MB
Other (.png)
20MB
Other (.mp4)
16MB
TypeScript
8MB
Other (.svg)
2MB
Python
2MB
Other (.mdx)
2MB
Markdown
1MB
Lock File
1MB
Other (.ttf)
1MB
TSX
730KB

The LLM identified 6 files worth highlighting for reuse:

Converts JSON Schema (Draft 7) into runtime Zod schemas, including raw shape extraction (jsonSchemaToZodShape) and ReDoS-hardened regex handling. Validated by property-based tests against an Ajv oracle and a cross-language parity corpus shared with the Python SDK. Self-contained package, extractable for any project that needs to validate API payloads or LLM tool arguments at runtime from JSON Schema definitions.

file: ts/packages/json-schema-to-zod/src/index.ts ↗ | tags: #schema-conversion #json-schema #zod #property-based-testing

OS-backed secret persistence for CLI credentials with JWE sealing (RSA-OAEP-256 + A256GCM) and platform stores for macOS Security framework (FFI with subprocess fallback) and Linux secret-tool, with an explicit unsupported-platform error. Isolated store abstraction; reusable for any CLI needing durable, encrypted API-key storage without home-dir plaintext.

file: ts/packages/cli-keyring/src/core/persistence.ts ↗ | tags: #credential-storage #keychain #jwe #security

Programmatic TypeScript source-generation toolkit: builders for imports, classes, interfaces, methods, properties, doc comments, unions, and function types, plus a virtual compiler host for validating generated code in-memory without disk I/O. Used to emit SDK/toolkit stubs; extractable into any codegen pipeline that produces TypeScript.

file: ts/packages/ts-builders/src/index.ts ↗ | tags: #code-generation #typescript-compiler-api

Dereferences local $ref/$defs in OpenAPI documents, handling cycles, sibling overrides, and external references; a companion openapi-deprecated.ts prunes deprecated fields for playground views while preserving the original contract. Reusable for API-docs renderers, schema validators, or any OpenAPI-consuming tooling.

file: docs/lib/openapi-deref.ts ↗ | tags: #openapi #ref-resolution #api-docs

Best-effort sensitive-text redaction (API keys, passwords, tokens, emails) applied to error messages and logs before they reach telemetry; paired with an equivalent redactSensitiveText utility in the TypeScript core. An SDK-end defense-in-depth pattern for any library that serializes or transmits error payloads.

file: python/composio/utils/redaction.py ↗ | tags: #data-redaction #telemetry #security

Docker-based e2e runner that executes the CLI/SDK across runtime images (Node 22–25, Deno 2.6.7, Cloudflare Workers) with volume handling, image lifecycle management, and output sanitization. A transferable harness pattern for teams that need to prove a CLI works across multiple JS runtimes rather than a single CI job.

file: ts/e2e-tests/_utils/src/e2e.ts ↗ | tags: #e2e-testing #docker #runtime-matrix
Last analyzed: 2026-10-10 09:00:56.489396
Next check: 2026-10-17 09:00:56.489818
$ submit: