zilmate 1.7.8 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/agent-browser/SKILL.md +55 -0
- package/.agents/skills/agentmail/SKILL.md +282 -0
- package/.agents/skills/agentmail/references/webhooks.md +220 -0
- package/.agents/skills/agentmail/references/websockets.md +263 -0
- package/.agents/skills/ai-elements/SKILL.md +160 -0
- package/.agents/skills/ai-elements/references/agent.md +134 -0
- package/.agents/skills/ai-elements/references/artifact.md +84 -0
- package/.agents/skills/ai-elements/references/attachments.md +190 -0
- package/.agents/skills/ai-elements/references/audio-player.md +134 -0
- package/.agents/skills/ai-elements/references/canvas.md +34 -0
- package/.agents/skills/ai-elements/references/chain-of-thought.md +81 -0
- package/.agents/skills/ai-elements/references/checkpoint.md +183 -0
- package/.agents/skills/ai-elements/references/code-block.md +170 -0
- package/.agents/skills/ai-elements/references/commit.md +177 -0
- package/.agents/skills/ai-elements/references/confirmation.md +262 -0
- package/.agents/skills/ai-elements/references/connection.md +34 -0
- package/.agents/skills/ai-elements/references/context.md +126 -0
- package/.agents/skills/ai-elements/references/controls.md +32 -0
- package/.agents/skills/ai-elements/references/conversation.md +224 -0
- package/.agents/skills/ai-elements/references/edge.md +52 -0
- package/.agents/skills/ai-elements/references/environment-variables.md +102 -0
- package/.agents/skills/ai-elements/references/file-tree.md +72 -0
- package/.agents/skills/ai-elements/references/image.md +146 -0
- package/.agents/skills/ai-elements/references/inline-citation.md +299 -0
- package/.agents/skills/ai-elements/references/jsx-preview.md +104 -0
- package/.agents/skills/ai-elements/references/message.md +237 -0
- package/.agents/skills/ai-elements/references/mic-selector.md +189 -0
- package/.agents/skills/ai-elements/references/model-selector.md +112 -0
- package/.agents/skills/ai-elements/references/node.md +73 -0
- package/.agents/skills/ai-elements/references/open-in-chat.md +67 -0
- package/.agents/skills/ai-elements/references/package-info.md +95 -0
- package/.agents/skills/ai-elements/references/panel.md +33 -0
- package/.agents/skills/ai-elements/references/persona.md +166 -0
- package/.agents/skills/ai-elements/references/plan.md +79 -0
- package/.agents/skills/ai-elements/references/prompt-input.md +579 -0
- package/.agents/skills/ai-elements/references/queue.md +172 -0
- package/.agents/skills/ai-elements/references/reasoning.md +238 -0
- package/.agents/skills/ai-elements/references/sandbox.md +129 -0
- package/.agents/skills/ai-elements/references/schema-display.md +102 -0
- package/.agents/skills/ai-elements/references/shimmer.md +48 -0
- package/.agents/skills/ai-elements/references/snippet.md +64 -0
- package/.agents/skills/ai-elements/references/sources.md +209 -0
- package/.agents/skills/ai-elements/references/speech-input.md +163 -0
- package/.agents/skills/ai-elements/references/stack-trace.md +224 -0
- package/.agents/skills/ai-elements/references/suggestion.md +124 -0
- package/.agents/skills/ai-elements/references/task.md +222 -0
- package/.agents/skills/ai-elements/references/terminal.md +103 -0
- package/.agents/skills/ai-elements/references/test-results.md +157 -0
- package/.agents/skills/ai-elements/references/tool.md +285 -0
- package/.agents/skills/ai-elements/references/toolbar.md +32 -0
- package/.agents/skills/ai-elements/references/transcription.md +120 -0
- package/.agents/skills/ai-elements/references/voice-selector.md +241 -0
- package/.agents/skills/ai-elements/references/web-preview.md +200 -0
- package/.agents/skills/ai-elements/scripts/agent.tsx +61 -0
- package/.agents/skills/ai-elements/scripts/artifact.tsx +127 -0
- package/.agents/skills/ai-elements/scripts/attachments-inline.tsx +128 -0
- package/.agents/skills/ai-elements/scripts/attachments-list.tsx +95 -0
- package/.agents/skills/ai-elements/scripts/attachments.tsx +85 -0
- package/.agents/skills/ai-elements/scripts/audio-player-remote.tsx +35 -0
- package/.agents/skills/ai-elements/scripts/audio-player.tsx +68 -0
- package/.agents/skills/ai-elements/scripts/chain-of-thought.tsx +82 -0
- package/.agents/skills/ai-elements/scripts/checkpoint.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/code-block-dark.tsx +46 -0
- package/.agents/skills/ai-elements/scripts/code-block.tsx +120 -0
- package/.agents/skills/ai-elements/scripts/commit.tsx +94 -0
- package/.agents/skills/ai-elements/scripts/confirmation-accepted.tsx +40 -0
- package/.agents/skills/ai-elements/scripts/confirmation-rejected.tsx +40 -0
- package/.agents/skills/ai-elements/scripts/confirmation-request.tsx +54 -0
- package/.agents/skills/ai-elements/scripts/confirmation.tsx +55 -0
- package/.agents/skills/ai-elements/scripts/context.tsx +45 -0
- package/.agents/skills/ai-elements/scripts/conversation.tsx +177 -0
- package/.agents/skills/ai-elements/scripts/environment-variables.tsx +62 -0
- package/.agents/skills/ai-elements/scripts/file-tree-basic.tsx +18 -0
- package/.agents/skills/ai-elements/scripts/file-tree-expanded.tsx +21 -0
- package/.agents/skills/ai-elements/scripts/file-tree-selection.tsx +24 -0
- package/.agents/skills/ai-elements/scripts/file-tree.tsx +42 -0
- package/.agents/skills/ai-elements/scripts/image.tsx +20 -0
- package/.agents/skills/ai-elements/scripts/inline-citation.tsx +97 -0
- package/.agents/skills/ai-elements/scripts/jsx-preview.tsx +104 -0
- package/.agents/skills/ai-elements/scripts/message.tsx +365 -0
- package/.agents/skills/ai-elements/scripts/mic-selector.tsx +49 -0
- package/.agents/skills/ai-elements/scripts/model-selector.tsx +365 -0
- package/.agents/skills/ai-elements/scripts/open-in-chat.tsx +33 -0
- package/.agents/skills/ai-elements/scripts/package-info.tsx +51 -0
- package/.agents/skills/ai-elements/scripts/persona-command.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-glint.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-halo.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-mana.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-obsidian.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-opal.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/plan.tsx +65 -0
- package/.agents/skills/ai-elements/scripts/prompt-input-cursor.tsx +502 -0
- package/.agents/skills/ai-elements/scripts/prompt-input-tooltip.tsx +44 -0
- package/.agents/skills/ai-elements/scripts/prompt-input.tsx +267 -0
- package/.agents/skills/ai-elements/scripts/queue-prompt-input.tsx +394 -0
- package/.agents/skills/ai-elements/scripts/queue.tsx +295 -0
- package/.agents/skills/ai-elements/scripts/reasoning.tsx +71 -0
- package/.agents/skills/ai-elements/scripts/sandbox.tsx +178 -0
- package/.agents/skills/ai-elements/scripts/schema-display-basic.tsx +9 -0
- package/.agents/skills/ai-elements/scripts/schema-display-body.tsx +20 -0
- package/.agents/skills/ai-elements/scripts/schema-display-nested.tsx +23 -0
- package/.agents/skills/ai-elements/scripts/schema-display-params.tsx +16 -0
- package/.agents/skills/ai-elements/scripts/schema-display.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/shimmer-duration.tsx +31 -0
- package/.agents/skills/ai-elements/scripts/shimmer-elements.tsx +43 -0
- package/.agents/skills/ai-elements/scripts/shimmer.tsx +17 -0
- package/.agents/skills/ai-elements/scripts/snippet-plain.tsx +19 -0
- package/.agents/skills/ai-elements/scripts/snippet.tsx +25 -0
- package/.agents/skills/ai-elements/scripts/sources-custom.tsx +39 -0
- package/.agents/skills/ai-elements/scripts/sources.tsx +32 -0
- package/.agents/skills/ai-elements/scripts/speech-input.tsx +84 -0
- package/.agents/skills/ai-elements/scripts/stack-trace-collapsed.tsx +39 -0
- package/.agents/skills/ai-elements/scripts/stack-trace-no-internal.tsx +41 -0
- package/.agents/skills/ai-elements/scripts/stack-trace.tsx +58 -0
- package/.agents/skills/ai-elements/scripts/suggestion-input.tsx +144 -0
- package/.agents/skills/ai-elements/scripts/suggestion.tsx +32 -0
- package/.agents/skills/ai-elements/scripts/task.tsx +59 -0
- package/.agents/skills/ai-elements/scripts/terminal-basic.tsx +7 -0
- package/.agents/skills/ai-elements/scripts/terminal-clear.tsx +19 -0
- package/.agents/skills/ai-elements/scripts/terminal-streaming.tsx +38 -0
- package/.agents/skills/ai-elements/scripts/terminal.tsx +82 -0
- package/.agents/skills/ai-elements/scripts/test-results-basic.tsx +27 -0
- package/.agents/skills/ai-elements/scripts/test-results-errors.tsx +51 -0
- package/.agents/skills/ai-elements/scripts/test-results-suites.tsx +40 -0
- package/.agents/skills/ai-elements/scripts/test-results.tsx +102 -0
- package/.agents/skills/ai-elements/scripts/tool-input-available.tsx +31 -0
- package/.agents/skills/ai-elements/scripts/tool-input-streaming.tsx +30 -0
- package/.agents/skills/ai-elements/scripts/tool-output-available.tsx +80 -0
- package/.agents/skills/ai-elements/scripts/tool-output-error.tsx +44 -0
- package/.agents/skills/ai-elements/scripts/tool.tsx +222 -0
- package/.agents/skills/ai-elements/scripts/transcription.tsx +290 -0
- package/.agents/skills/ai-elements/scripts/voice-selector.tsx +245 -0
- package/.agents/skills/ai-elements/scripts/web-preview.tsx +115 -0
- package/.agents/skills/ai-sdk/SKILL.md +78 -0
- package/.agents/skills/ai-sdk/references/ai-gateway.md +66 -0
- package/.agents/skills/ai-sdk/references/common-errors.md +443 -0
- package/.agents/skills/ai-sdk/references/devtools.md +52 -0
- package/.agents/skills/ai-sdk/references/type-safe-agents.md +204 -0
- package/.agents/skills/chat-sdk/SKILL.md +240 -0
- package/.agents/skills/composio/AGENTS.md +404 -0
- package/.agents/skills/composio/SKILL.md +55 -0
- package/.agents/skills/composio/rules/_template.md +38 -0
- package/.agents/skills/composio/rules/app-auth-configs.md +224 -0
- package/.agents/skills/composio/rules/app-auth-popup-ui.md +143 -0
- package/.agents/skills/composio/rules/app-connected-accounts.md +240 -0
- package/.agents/skills/composio/rules/app-custom-tools.md +220 -0
- package/.agents/skills/composio/rules/app-execute-tools.md +202 -0
- package/.agents/skills/composio/rules/app-fetch-tools.md +292 -0
- package/.agents/skills/composio/rules/app-modifiers.md +148 -0
- package/.agents/skills/composio/rules/app-tool-versions.md +343 -0
- package/.agents/skills/composio/rules/app-toolkits.md +184 -0
- package/.agents/skills/composio/rules/app-user-context.md +222 -0
- package/.agents/skills/composio/rules/building-with-composio.md +134 -0
- package/.agents/skills/composio/rules/composio-cli.md +223 -0
- package/.agents/skills/composio/rules/setup-api-keys.md +230 -0
- package/.agents/skills/composio/rules/tr-auth-auto.md +110 -0
- package/.agents/skills/composio/rules/tr-auth-connections.md +167 -0
- package/.agents/skills/composio/rules/tr-auth-manual.md +161 -0
- package/.agents/skills/composio/rules/tr-building-chat-ui.md +348 -0
- package/.agents/skills/composio/rules/tr-framework-ai-sdk.md +240 -0
- package/.agents/skills/composio/rules/tr-framework-integration.md +818 -0
- package/.agents/skills/composio/rules/tr-framework-mastra.md +185 -0
- package/.agents/skills/composio/rules/tr-mcp-vs-native.md +248 -0
- package/.agents/skills/composio/rules/tr-session-basic.md +82 -0
- package/.agents/skills/composio/rules/tr-session-config.md +172 -0
- package/.agents/skills/composio/rules/tr-session-lifecycle.md +385 -0
- package/.agents/skills/composio/rules/tr-toolkit-query.md +135 -0
- package/.agents/skills/composio/rules/tr-userid-best-practices.md +476 -0
- package/.agents/skills/composio/rules/triggers-create.md +246 -0
- package/.agents/skills/composio/rules/triggers-manage.md +275 -0
- package/.agents/skills/composio/rules/triggers-subscribe.md +173 -0
- package/.agents/skills/composio/rules/triggers-webhook.md +227 -0
- package/.agents/skills/create-auth-skill/SKILL.md +321 -0
- package/.agents/skills/design-md/README.md +34 -0
- package/.agents/skills/design-md/SKILL.md +172 -0
- package/.agents/skills/design-md/examples/DESIGN.md +154 -0
- package/.agents/skills/expo-tailwind-setup/SKILL.md +480 -0
- package/.agents/skills/expo-tailwind-setup/agents/openai.yaml +4 -0
- package/.agents/skills/find-skills/SKILL.md +142 -0
- package/.agents/skills/firecrawl/SKILL.md +321 -0
- package/.agents/skills/firecrawl/rules/install.md +85 -0
- package/.agents/skills/firecrawl/rules/security.md +26 -0
- package/.agents/skills/frontend-design/LICENSE.txt +177 -0
- package/.agents/skills/frontend-design/SKILL.md +55 -0
- package/.agents/skills/linkup-search/SKILL.md +298 -0
- package/.agents/skills/mcp-builder/LICENSE.txt +202 -0
- package/.agents/skills/mcp-builder/SKILL.md +236 -0
- package/.agents/skills/mcp-builder/reference/evaluation.md +602 -0
- package/.agents/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
- package/.agents/skills/mcp-builder/reference/node_mcp_server.md +970 -0
- package/.agents/skills/mcp-builder/reference/python_mcp_server.md +719 -0
- package/.agents/skills/mcp-builder/scripts/connections.py +151 -0
- package/.agents/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/.agents/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/.agents/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/.agents/skills/mobile-android-design/SKILL.md +101 -0
- package/.agents/skills/mobile-android-design/references/android-navigation.md +698 -0
- package/.agents/skills/mobile-android-design/references/compose-components.md +796 -0
- package/.agents/skills/mobile-android-design/references/details.md +337 -0
- package/.agents/skills/mobile-android-design/references/material3-theming.md +604 -0
- package/.agents/skills/mobile-ios-design/SKILL.md +259 -0
- package/.agents/skills/mobile-ios-design/references/hig-patterns.md +529 -0
- package/.agents/skills/mobile-ios-design/references/ios-navigation.md +556 -0
- package/.agents/skills/mobile-ios-design/references/swiftui-components.md +575 -0
- package/.agents/skills/neon-drizzle/SKILL.md +81 -0
- package/.agents/skills/neon-drizzle/guides/existing-project.md +398 -0
- package/.agents/skills/neon-drizzle/guides/new-project.md +312 -0
- package/.agents/skills/neon-drizzle/guides/schema-only.md +415 -0
- package/.agents/skills/neon-drizzle/guides/troubleshooting.md +539 -0
- package/.agents/skills/neon-drizzle/references/adapters.md +478 -0
- package/.agents/skills/neon-drizzle/references/migrations.md +652 -0
- package/.agents/skills/neon-drizzle/references/query-patterns.md +761 -0
- package/.agents/skills/neon-drizzle/scripts/generate-schema.ts +77 -0
- package/.agents/skills/neon-drizzle/scripts/run-migration.ts +133 -0
- package/.agents/skills/neon-drizzle/templates/db-http.ts +6 -0
- package/.agents/skills/neon-drizzle/templates/db-websocket.ts +24 -0
- package/.agents/skills/neon-drizzle/templates/drizzle-config.ts +96 -0
- package/.agents/skills/neon-drizzle/templates/schema-example.ts +231 -0
- package/.agents/skills/neon-postgres/SKILL.md +376 -0
- package/.agents/skills/next-best-practices/SKILL.md +152 -0
- package/.agents/skills/next-best-practices/async-patterns.md +87 -0
- package/.agents/skills/next-best-practices/bundling.md +180 -0
- package/.agents/skills/next-best-practices/data-patterns.md +297 -0
- package/.agents/skills/next-best-practices/debug-tricks.md +105 -0
- package/.agents/skills/next-best-practices/directives.md +73 -0
- package/.agents/skills/next-best-practices/error-handling.md +227 -0
- package/.agents/skills/next-best-practices/file-conventions.md +140 -0
- package/.agents/skills/next-best-practices/font.md +245 -0
- package/.agents/skills/next-best-practices/functions.md +108 -0
- package/.agents/skills/next-best-practices/hydration-error.md +91 -0
- package/.agents/skills/next-best-practices/image.md +173 -0
- package/.agents/skills/next-best-practices/metadata.md +301 -0
- package/.agents/skills/next-best-practices/parallel-routes.md +287 -0
- package/.agents/skills/next-best-practices/route-handlers.md +146 -0
- package/.agents/skills/next-best-practices/rsc-boundaries.md +159 -0
- package/.agents/skills/next-best-practices/runtime-selection.md +39 -0
- package/.agents/skills/next-best-practices/scripts.md +141 -0
- package/.agents/skills/next-best-practices/self-hosting.md +371 -0
- package/.agents/skills/next-best-practices/suspense-boundaries.md +67 -0
- package/.agents/skills/playwright-best-practices/SKILL.md +303 -0
- package/.agents/skills/playwright-cli/SKILL.md +404 -0
- package/.agents/skills/playwright-cli/references/element-attributes.md +23 -0
- package/.agents/skills/playwright-cli/references/playwright-tests.md +39 -0
- package/.agents/skills/playwright-cli/references/request-mocking.md +87 -0
- package/.agents/skills/playwright-cli/references/running-code.md +241 -0
- package/.agents/skills/playwright-cli/references/session-management.md +225 -0
- package/.agents/skills/playwright-cli/references/spec-driven-testing.md +305 -0
- package/.agents/skills/playwright-cli/references/storage-state.md +275 -0
- package/.agents/skills/playwright-cli/references/test-generation.md +134 -0
- package/.agents/skills/playwright-cli/references/tracing.md +139 -0
- package/.agents/skills/playwright-cli/references/video-recording.md +143 -0
- package/.agents/skills/prisma-client-api/SKILL.md +216 -0
- package/.agents/skills/prisma-client-api/references/client-methods.md +223 -0
- package/.agents/skills/prisma-client-api/references/constructor.md +208 -0
- package/.agents/skills/prisma-client-api/references/filters.md +256 -0
- package/.agents/skills/prisma-client-api/references/model-queries.md +281 -0
- package/.agents/skills/prisma-client-api/references/query-options.md +276 -0
- package/.agents/skills/prisma-client-api/references/raw-queries.md +194 -0
- package/.agents/skills/prisma-client-api/references/relations.md +308 -0
- package/.agents/skills/prisma-client-api/references/transactions.md +184 -0
- package/.agents/skills/prisma-database-setup/SKILL.md +192 -0
- package/.agents/skills/prisma-database-setup/references/cockroachdb.md +89 -0
- package/.agents/skills/prisma-database-setup/references/mongodb.md +90 -0
- package/.agents/skills/prisma-database-setup/references/mysql.md +126 -0
- package/.agents/skills/prisma-database-setup/references/postgresql.md +92 -0
- package/.agents/skills/prisma-database-setup/references/prisma-client-setup.md +47 -0
- package/.agents/skills/prisma-database-setup/references/prisma-postgres.md +130 -0
- package/.agents/skills/prisma-database-setup/references/sqlite.md +106 -0
- package/.agents/skills/prisma-database-setup/references/sqlserver.md +94 -0
- package/.agents/skills/prisma-postgres/SKILL.md +127 -0
- package/.agents/skills/prisma-postgres/references/console-and-connections.md +67 -0
- package/.agents/skills/prisma-postgres/references/create-db-cli.md +136 -0
- package/.agents/skills/prisma-postgres/references/management-api-sdk.md +56 -0
- package/.agents/skills/prisma-postgres/references/management-api.md +61 -0
- package/.agents/skills/remotion-best-practices/SKILL.md +340 -0
- package/.agents/skills/remotion-best-practices/rules/3d.md +86 -0
- package/.agents/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
- package/.agents/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
- package/.agents/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +103 -0
- package/.agents/skills/remotion-best-practices/rules/audio-visualization.md +198 -0
- package/.agents/skills/remotion-best-practices/rules/audio.md +169 -0
- package/.agents/skills/remotion-best-practices/rules/calculate-metadata.md +134 -0
- package/.agents/skills/remotion-best-practices/rules/compositions.md +133 -0
- package/.agents/skills/remotion-best-practices/rules/display-captions.md +184 -0
- package/.agents/skills/remotion-best-practices/rules/ffmpeg.md +34 -0
- package/.agents/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
- package/.agents/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
- package/.agents/skills/remotion-best-practices/rules/get-video-duration.md +60 -0
- package/.agents/skills/remotion-best-practices/rules/gifs.md +141 -0
- package/.agents/skills/remotion-best-practices/rules/google-fonts.md +72 -0
- package/.agents/skills/remotion-best-practices/rules/html-in-canvas.md +122 -0
- package/.agents/skills/remotion-best-practices/rules/images.md +71 -0
- package/.agents/skills/remotion-best-practices/rules/import-srt-captions.md +69 -0
- package/.agents/skills/remotion-best-practices/rules/light-leaks.md +73 -0
- package/.agents/skills/remotion-best-practices/rules/local-fonts.md +65 -0
- package/.agents/skills/remotion-best-practices/rules/lottie.md +70 -0
- package/.agents/skills/remotion-best-practices/rules/maplibre.md +458 -0
- package/.agents/skills/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
- package/.agents/skills/remotion-best-practices/rules/measuring-text.md +140 -0
- package/.agents/skills/remotion-best-practices/rules/parameters.md +109 -0
- package/.agents/skills/remotion-best-practices/rules/sequencing.md +144 -0
- package/.agents/skills/remotion-best-practices/rules/sfx.md +30 -0
- package/.agents/skills/remotion-best-practices/rules/silence-detection.md +71 -0
- package/.agents/skills/remotion-best-practices/rules/subtitles.md +36 -0
- package/.agents/skills/remotion-best-practices/rules/tailwind.md +11 -0
- package/.agents/skills/remotion-best-practices/rules/text-animations.md +20 -0
- package/.agents/skills/remotion-best-practices/rules/timing.md +136 -0
- package/.agents/skills/remotion-best-practices/rules/transcribe-captions.md +70 -0
- package/.agents/skills/remotion-best-practices/rules/transitions.md +197 -0
- package/.agents/skills/remotion-best-practices/rules/transparent-videos.md +106 -0
- package/.agents/skills/remotion-best-practices/rules/trimming.md +51 -0
- package/.agents/skills/remotion-best-practices/rules/videos.md +171 -0
- package/.agents/skills/remotion-best-practices/rules/voiceover.md +99 -0
- package/.agents/skills/remotion-render/SKILL.md +212 -0
- package/.agents/skills/skill-creator/LICENSE.txt +202 -0
- package/.agents/skills/skill-creator/SKILL.md +485 -0
- package/.agents/skills/skill-creator/agents/analyzer.md +274 -0
- package/.agents/skills/skill-creator/agents/comparator.md +202 -0
- package/.agents/skills/skill-creator/agents/grader.md +223 -0
- package/.agents/skills/skill-creator/assets/eval_review.html +146 -0
- package/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/.agents/skills/skill-creator/references/schemas.md +430 -0
- package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
- package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
- package/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
- package/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
- package/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
- package/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
- package/.agents/skills/skill-creator/scripts/utils.py +47 -0
- package/.agents/skills/stripe-best-practices/SKILL.md +54 -0
- package/.agents/skills/stripe-best-practices/references/billing.md +58 -0
- package/.agents/skills/stripe-best-practices/references/connect.md +173 -0
- package/.agents/skills/stripe-best-practices/references/payments.md +79 -0
- package/.agents/skills/stripe-best-practices/references/security.md +109 -0
- package/.agents/skills/stripe-best-practices/references/tax.md +37 -0
- package/.agents/skills/stripe-best-practices/references/treasury.md +16 -0
- package/.agents/skills/stripe-projects/SKILL.md +132 -0
- package/.agents/skills/supabase/CHANGELOG.md +35 -0
- package/.agents/skills/supabase/SKILL.md +135 -0
- package/.agents/skills/supabase/assets/feedback-issue-template.md +17 -0
- package/.agents/skills/supabase/references/skill-feedback.md +17 -0
- package/.agents/skills/supabase-postgres-best-practices/CHANGELOG.md +29 -0
- package/.agents/skills/supabase-postgres-best-practices/SKILL.md +64 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_sections.md +39 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_template.md +34 -0
- package/.agents/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
- package/.agents/skills/supermemory/LICENSE +201 -0
- package/.agents/skills/supermemory/README.md +221 -0
- package/.agents/skills/supermemory/SKILL.md +172 -0
- package/.agents/skills/supermemory/references/api-reference.md +591 -0
- package/.agents/skills/supermemory/references/architecture.md +557 -0
- package/.agents/skills/supermemory/references/quickstart.md +293 -0
- package/.agents/skills/supermemory/references/sdk-guide.md +655 -0
- package/.agents/skills/supermemory/references/use-cases.md +1033 -0
- package/.agents/skills/supermemory-cli/SKILL.md +490 -0
- package/.agents/skills/tdd/SKILL.md +108 -0
- package/.agents/skills/tdd/mocking.md +59 -0
- package/.agents/skills/tdd/refactoring.md +10 -0
- package/.agents/skills/tdd/tests.md +61 -0
- package/.agents/skills/ui-ux-pro-max/SKILL.md +661 -0
- package/.agents/skills/ui-ux-pro-max/data +1 -0
- package/.agents/skills/ui-ux-pro-max/scripts +1 -0
- package/.agents/skills/vercel-react-native-skills/AGENTS.md +2897 -0
- package/.agents/skills/vercel-react-native-skills/README.md +165 -0
- package/.agents/skills/vercel-react-native-skills/SKILL.md +121 -0
- package/.agents/skills/vercel-react-native-skills/metadata.json +16 -0
- package/.agents/skills/vercel-react-native-skills/rules/_sections.md +86 -0
- package/.agents/skills/vercel-react-native-skills/rules/_template.md +28 -0
- package/.agents/skills/vercel-react-native-skills/rules/animation-derived-value.md +53 -0
- package/.agents/skills/vercel-react-native-skills/rules/animation-gesture-detector-press.md +95 -0
- package/.agents/skills/vercel-react-native-skills/rules/animation-gpu-properties.md +65 -0
- package/.agents/skills/vercel-react-native-skills/rules/design-system-compound-components.md +66 -0
- package/.agents/skills/vercel-react-native-skills/rules/fonts-config-plugin.md +71 -0
- package/.agents/skills/vercel-react-native-skills/rules/imports-design-system-folder.md +68 -0
- package/.agents/skills/vercel-react-native-skills/rules/js-hoist-intl.md +61 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-callbacks.md +44 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-function-references.md +132 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-images.md +53 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-inline-objects.md +97 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-expensive.md +94 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-memo.md +82 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-types.md +104 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-virtualize.md +67 -0
- package/.agents/skills/vercel-react-native-skills/rules/monorepo-native-deps-in-app.md +46 -0
- package/.agents/skills/vercel-react-native-skills/rules/monorepo-single-dependency-versions.md +63 -0
- package/.agents/skills/vercel-react-native-skills/rules/navigation-native-navigators.md +188 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-compiler-destructure-functions.md +50 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-compiler-reanimated-shared-values.md +48 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-state-dispatcher.md +91 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-state-fallback.md +56 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-state-minimize.md +65 -0
- package/.agents/skills/vercel-react-native-skills/rules/rendering-no-falsy-and.md +74 -0
- package/.agents/skills/vercel-react-native-skills/rules/rendering-text-in-text-component.md +36 -0
- package/.agents/skills/vercel-react-native-skills/rules/scroll-position-no-state.md +82 -0
- package/.agents/skills/vercel-react-native-skills/rules/state-ground-truth.md +80 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-expo-image.md +66 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-image-gallery.md +104 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-measure-views.md +78 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-menus.md +174 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-native-modals.md +77 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-pressable.md +61 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-safe-area-scroll.md +65 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-scrollview-content-inset.md +45 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-styling.md +87 -0
- package/.agents/skills/web-design-guidelines/SKILL.md +39 -0
- package/dist/index.js +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: User Context and ID Patterns for Applications
|
|
3
|
+
impact: HIGH
|
|
4
|
+
description: Critical patterns for user identification, multi-tenancy, and data isolation in production applications
|
|
5
|
+
tags: [user-context, security, multi-tenancy, isolation, production]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# User Context and ID Patterns
|
|
9
|
+
|
|
10
|
+
Every Composio operation requires a `userId` parameter for security and data isolation. Users can only access their own connected accounts.
|
|
11
|
+
|
|
12
|
+
## The 'default' User ID
|
|
13
|
+
|
|
14
|
+
`default` refers to your project's default account.
|
|
15
|
+
|
|
16
|
+
**Only use 'default' for:**
|
|
17
|
+
- Testing and development
|
|
18
|
+
- Single-user applications
|
|
19
|
+
- Internal tools with no external users
|
|
20
|
+
|
|
21
|
+
**Never use in production multi-user apps** - it bypasses user isolation.
|
|
22
|
+
|
|
23
|
+
## Production User ID Patterns
|
|
24
|
+
|
|
25
|
+
### Database UUID (Recommended)
|
|
26
|
+
|
|
27
|
+
Use your database's primary key:
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
const userId = user.id; // "550e8400-e29b-41d4-a716-446655440000"
|
|
31
|
+
|
|
32
|
+
await composio.tools.execute('GITHUB_GET_REPO', {
|
|
33
|
+
userId: userId,
|
|
34
|
+
arguments: { owner: 'example', repo: 'repo' },
|
|
35
|
+
});
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Pros:** Stable, immutable, already exists, no mapping needed
|
|
39
|
+
|
|
40
|
+
### External Auth ID (Acceptable)
|
|
41
|
+
|
|
42
|
+
Use IDs from Auth0, Firebase, etc:
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
const userId = user.externalId; // "auth0|507f1f77bcf86cd799439011"
|
|
46
|
+
// Or with prefix
|
|
47
|
+
const userId = `user_${user.id}`; // "user_12345"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Pros:** Works with external auth, human-readable, allows namespacing
|
|
51
|
+
**Cons:** May require mapping, usernames can change
|
|
52
|
+
|
|
53
|
+
### Email (Not Recommended)
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
const userId = user.email; // "user@example.com"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Only use when:**
|
|
60
|
+
- Email is guaranteed immutable
|
|
61
|
+
- No other unique identifier available
|
|
62
|
+
- SSO requires email-based identification
|
|
63
|
+
|
|
64
|
+
**Cons:** Emails can change, privacy concerns
|
|
65
|
+
|
|
66
|
+
## Organization-Based Applications
|
|
67
|
+
|
|
68
|
+
For team/org-wide tool access, use organization ID as `userId`:
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
// All users in org share same connected accounts
|
|
72
|
+
const userId = organization.id; // "org_550e8400..."
|
|
73
|
+
|
|
74
|
+
await composio.tools.execute('SLACK_SEND_MESSAGE', {
|
|
75
|
+
userId: userId, // organization ID, not individual user
|
|
76
|
+
arguments: { channel: '#general', text: 'Team message' },
|
|
77
|
+
});
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Use organization IDs when:**
|
|
81
|
+
- Team/org tools (Slack, MS Teams, Jira)
|
|
82
|
+
- Enterprise apps with IT admin connections
|
|
83
|
+
- Shared resources across users
|
|
84
|
+
- Role-based access at org level
|
|
85
|
+
|
|
86
|
+
**Example:**
|
|
87
|
+
|
|
88
|
+
```typescript
|
|
89
|
+
// Admin connects Slack for entire org
|
|
90
|
+
async function connectOrgToSlack(orgId: string) {
|
|
91
|
+
const request = await composio.connectedAccounts.link(orgId, 'slack');
|
|
92
|
+
return request.redirectUrl;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Any user in org can use connected tools
|
|
96
|
+
async function sendMessage(orgId: string, message: string) {
|
|
97
|
+
return await composio.tools.execute('SLACK_SEND_MESSAGE', {
|
|
98
|
+
userId: orgId,
|
|
99
|
+
arguments: { channel: '#general', text: message },
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// Check org connections
|
|
104
|
+
async function listOrgConnections(orgId: string) {
|
|
105
|
+
return await composio.connectedAccounts.list({
|
|
106
|
+
userIds: [orgId],
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Shared vs. Isolated Connections
|
|
112
|
+
|
|
113
|
+
### Isolated (User-Level)
|
|
114
|
+
|
|
115
|
+
Each user has their own connections:
|
|
116
|
+
|
|
117
|
+
```typescript
|
|
118
|
+
await composio.connectedAccounts.link('user_123', 'github_config');
|
|
119
|
+
await composio.connectedAccounts.link('user_456', 'github_config');
|
|
120
|
+
|
|
121
|
+
// Each execution uses that user's account
|
|
122
|
+
await composio.tools.execute('GITHUB_GET_REPO', {
|
|
123
|
+
userId: 'user_123', // Uses user_123's GitHub
|
|
124
|
+
arguments: { ... },
|
|
125
|
+
});
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Use for:** Personal integrations, individual credentials, privacy-critical
|
|
129
|
+
|
|
130
|
+
### Shared (Organization-Level)
|
|
131
|
+
|
|
132
|
+
All users share organization connections:
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
await composio.connectedAccounts.link('org_acme', 'github_config');
|
|
136
|
+
|
|
137
|
+
// All org users use same connection
|
|
138
|
+
await composio.tools.execute('GITHUB_GET_REPO', {
|
|
139
|
+
userId: 'org_acme', // All users share
|
|
140
|
+
arguments: { ... },
|
|
141
|
+
});
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**Use for:** Org-wide access, centralized credentials, simplified administration
|
|
145
|
+
|
|
146
|
+
## Security Best Practices
|
|
147
|
+
|
|
148
|
+
### Never Expose User IDs to Frontend
|
|
149
|
+
|
|
150
|
+
```typescript
|
|
151
|
+
// ❌ DON'T: Allow frontend to specify userId
|
|
152
|
+
app.post('/execute-tool', async (req, res) => {
|
|
153
|
+
await composio.tools.execute(req.body.tool, {
|
|
154
|
+
userId: req.body.userId, // SECURITY RISK
|
|
155
|
+
arguments: req.body.arguments,
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
// ✅ DO: Derive userId from authenticated session
|
|
160
|
+
app.post('/execute-tool', async (req, res) => {
|
|
161
|
+
const userId = req.user.id; // From auth session
|
|
162
|
+
await composio.tools.execute(req.body.tool, {
|
|
163
|
+
userId: userId,
|
|
164
|
+
arguments: req.body.arguments,
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Validate User Ownership
|
|
170
|
+
|
|
171
|
+
```typescript
|
|
172
|
+
async function executeForUser(authenticatedUserId, targetUserId, tool, args) {
|
|
173
|
+
if (authenticatedUserId !== targetUserId) {
|
|
174
|
+
throw new Error('Unauthorized');
|
|
175
|
+
}
|
|
176
|
+
return await composio.tools.execute(tool, {
|
|
177
|
+
userId: targetUserId,
|
|
178
|
+
arguments: args,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Common Patterns
|
|
184
|
+
|
|
185
|
+
### Express Middleware
|
|
186
|
+
|
|
187
|
+
```typescript
|
|
188
|
+
app.use((req, res, next) => {
|
|
189
|
+
req.userId = req.user.id; // From authenticated session
|
|
190
|
+
next();
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
app.post('/execute-tool', async (req, res) => {
|
|
194
|
+
const result = await composio.tools.execute(req.body.tool, {
|
|
195
|
+
userId: req.userId,
|
|
196
|
+
arguments: req.body.arguments,
|
|
197
|
+
});
|
|
198
|
+
res.json(result);
|
|
199
|
+
});
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Debug User Context
|
|
203
|
+
|
|
204
|
+
```typescript
|
|
205
|
+
const accounts = await composio.connectedAccounts.list({
|
|
206
|
+
userIds: [userId],
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
console.log(`User ${userId} has ${accounts.items.length} accounts`);
|
|
210
|
+
accounts.items.forEach(account => {
|
|
211
|
+
console.log(`- ${account.toolkit.slug}: ${account.status}`);
|
|
212
|
+
});
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Key Points
|
|
216
|
+
|
|
217
|
+
- **Use database UUIDs** - Most stable and reliable
|
|
218
|
+
- **Never expose userId** - Always derive from authenticated session
|
|
219
|
+
- **Validate ownership** - Ensure users only access their data
|
|
220
|
+
- **Use consistent format** - Pick one pattern and stick to it
|
|
221
|
+
- **Organization IDs** - For team-wide tool access
|
|
222
|
+
- **Handle changes gracefully** - Maintain mapping if IDs can change
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Building Apps and Agents with Composio
|
|
3
|
+
impact: HIGH
|
|
4
|
+
description: SDK-based guide for building AI agents and applications that integrate with external tools via Composio
|
|
5
|
+
tags: [composio, sdk, agents, apps, typescript, python, frameworks]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Building Apps and Agents with Composio
|
|
9
|
+
|
|
10
|
+
Use the Composio SDK to build AI agents, chat apps, and backend services that integrate with 200+ external tools.
|
|
11
|
+
|
|
12
|
+
## Project Setup
|
|
13
|
+
|
|
14
|
+
Run inside your project directory to initialize and store the API key:
|
|
15
|
+
```bash
|
|
16
|
+
composio init
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Install the SDK
|
|
20
|
+
|
|
21
|
+
**TypeScript**
|
|
22
|
+
```bash
|
|
23
|
+
pnpm install @composio/core@latest
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Provider packages for agentic frameworks:
|
|
27
|
+
- `@composio/vercel` — Vercel AI SDK
|
|
28
|
+
- `@composio/openai-agents` — OpenAI Agents
|
|
29
|
+
- `@composio/langchain` — LangChain
|
|
30
|
+
- `@composio/mastra` — Mastra
|
|
31
|
+
- `@composio/claude-agent-sdk` — Claude Agent SDK
|
|
32
|
+
|
|
33
|
+
**Python**
|
|
34
|
+
```bash
|
|
35
|
+
pip install composio
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Provider packages for agentic frameworks:
|
|
39
|
+
- `composio-openai-agents` — OpenAI Agents
|
|
40
|
+
- `composio-langchain` — LangChain
|
|
41
|
+
- `composio-langgraph` — LangGraph
|
|
42
|
+
- `composio-crewai` — CrewAI
|
|
43
|
+
- `composio-claude-agent-sdk` — Claude Agent SDK
|
|
44
|
+
- `composio-google-adk` — Google ADK
|
|
45
|
+
|
|
46
|
+
Pass the provider into the Composio constructor:
|
|
47
|
+
```typescript
|
|
48
|
+
import { Composio } from '@composio/core'
|
|
49
|
+
import { VercelProvider } from '@composio/vercel'
|
|
50
|
+
|
|
51
|
+
const composio = new Composio({ provider: new VercelProvider() })
|
|
52
|
+
```
|
|
53
|
+
```python
|
|
54
|
+
from composio import Composio
|
|
55
|
+
from composio_langchain import LangchainProvider
|
|
56
|
+
|
|
57
|
+
composio = Composio(provider=LangchainProvider())
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Building Agents
|
|
63
|
+
|
|
64
|
+
Use Tool Router to create isolated MCP sessions per user with scoped tool access and automatic auth management. Compatible with any AI framework.
|
|
65
|
+
|
|
66
|
+
### Session Management
|
|
67
|
+
- [User ID Best Practices](tr-userid-best-practices.md) — choose user IDs for security and isolation
|
|
68
|
+
- [Creating Basic Sessions](tr-session-basic.md) — initialize Tool Router sessions
|
|
69
|
+
- [Session Lifecycle](tr-session-lifecycle.md) — when to create vs reuse sessions
|
|
70
|
+
- [Session Configuration](tr-session-config.md) — configure toolkits, tools, and filters
|
|
71
|
+
- [Using Native Tools](tr-mcp-vs-native.md) — prefer native tools for performance and control
|
|
72
|
+
|
|
73
|
+
### Authentication Flows
|
|
74
|
+
- [Auto Authentication in Chat](tr-auth-auto.md) — enable in-chat auth flows
|
|
75
|
+
- [Manual Authorization](tr-auth-manual.md) — use `session.authorize()` for explicit flows
|
|
76
|
+
- [Connection Management](tr-auth-connections.md) — configure `manageConnections`, `waitForConnections`, and callback URLs
|
|
77
|
+
|
|
78
|
+
### Toolkit Querying & UI Building
|
|
79
|
+
- [Building Chat UIs](tr-building-chat-ui.md) — toolkit selection, connection management, and session handling
|
|
80
|
+
- [Query Toolkit States](tr-toolkit-query.md) — use `session.toolkits()` to check connections and build connection UIs
|
|
81
|
+
|
|
82
|
+
### Framework Integrations
|
|
83
|
+
- [Framework Integration](tr-framework-integration.md) — LangChain, OpenAI Agents, general patterns
|
|
84
|
+
- [Vercel AI SDK](tr-framework-ai-sdk.md) — native tools, MCP, and React
|
|
85
|
+
- [Mastra](tr-framework-mastra.md) — Mastra agents with native tools and MCP
|
|
86
|
+
|
|
87
|
+
### Event-Driven Agents (Triggers)
|
|
88
|
+
- [Creating Triggers](triggers-create.md) — set up trigger instances for real-time events
|
|
89
|
+
- [Subscribing to Events](triggers-subscribe.md) — listen to trigger events in real-time
|
|
90
|
+
- [Webhook Verification](triggers-webhook.md) — verify and process incoming webhook payloads
|
|
91
|
+
- [Managing Triggers](triggers-manage.md) — enable, disable, update, and list triggers
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Building Apps
|
|
96
|
+
|
|
97
|
+
Direct tool execution without agent frameworks — full control over auth, execution, and resource management. If building apps with agentic abilities, make sure the auth configs match the session's auth configs.
|
|
98
|
+
|
|
99
|
+
### Core Operations
|
|
100
|
+
- [Fetching Tools](app-fetch-tools.md) — get tools with filters and search
|
|
101
|
+
- [Direct Tool Execution](app-execute-tools.md) — execute tools manually with parameters
|
|
102
|
+
- [Tool Version Management](app-tool-versions.md) — version pinning strategies for stability
|
|
103
|
+
|
|
104
|
+
### Resource Management
|
|
105
|
+
- [Connected Accounts CRUD](app-connected-accounts.md) — create, read, update, delete connected accounts
|
|
106
|
+
- [Auth Config Management](app-auth-configs.md) — manage authentication configurations
|
|
107
|
+
- [Toolkit Management](app-toolkits.md) — query toolkits, categories, and auth requirements
|
|
108
|
+
- [Auth Popup UI](app-auth-popup-ui.md) — build popup-based OAuth flows
|
|
109
|
+
|
|
110
|
+
### Extensibility
|
|
111
|
+
- [Tool Modifiers](app-modifiers.md) — schema modification and execution hooks for logging and modifications
|
|
112
|
+
|
|
113
|
+
### User Context & Multi-Tenancy
|
|
114
|
+
- [User ID Patterns](app-user-context.md) — user vs organization IDs, shared vs isolated connections
|
|
115
|
+
|
|
116
|
+
### Event-Driven Applications
|
|
117
|
+
- [Creating Triggers](triggers-create.md) — set up trigger instances
|
|
118
|
+
- [Subscribing to Events](triggers-subscribe.md) — listen to events in real-time
|
|
119
|
+
- [Webhook Verification](triggers-webhook.md) — verify incoming webhooks
|
|
120
|
+
- [Managing Triggers](triggers-manage.md) — enable, disable, update triggers
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Verify Tool Slugs Before Use
|
|
125
|
+
|
|
126
|
+
Never guess toolkit, tool, or trigger names. Always verify:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
composio search "send email"
|
|
130
|
+
composio manage tools info "GMAIL_SEND_EMAIL"
|
|
131
|
+
composio manage toolkits info "gmail"
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Using incorrect slugs causes runtime errors.
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Composio CLI Guide
|
|
3
|
+
impact: HIGH
|
|
4
|
+
description: Use the Composio CLI to take actions on external apps directly - no code needed
|
|
5
|
+
tags: [cli, composio, tools, toolkits, auth, connected-accounts, direct-use]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Composio CLI Guide
|
|
9
|
+
|
|
10
|
+
Use the Composio CLI to search, connect, and execute tools directly — no code writing required. Ideal for agents taking actions on behalf of the user.
|
|
11
|
+
|
|
12
|
+
## Prerequisites (first-time setup)
|
|
13
|
+
|
|
14
|
+
If the CLI is not installed or the user is not authenticated:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Install
|
|
18
|
+
curl -fsSL https://composio.dev/install | bash
|
|
19
|
+
composio --version # verify
|
|
20
|
+
|
|
21
|
+
# Authenticate
|
|
22
|
+
composio login # OAuth flow; interactive org/project picker after login (use -y to skip)
|
|
23
|
+
composio whoami # verify org_id, project_id, user_id (API keys are never displayed)
|
|
24
|
+
# Run upgrade in case you run into errors or starting with a new project
|
|
25
|
+
composio upgrade
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
> **Note**: Use `whoami` only to verify login status — do not hardcode these values in code. `whoami` shows hints for `composio manage orgs switch` and `composio init` when relevant.
|
|
29
|
+
|
|
30
|
+
**Login behavior**: By default, `composio login` shows an interactive org/project picker after OAuth. Use `composio login -y` to skip the picker and use session defaults. JSON output is emitted only after the picker finishes (or immediately with `-y`), so piped/scripted usage gets the correct `org_id` and `project_id`.
|
|
31
|
+
|
|
32
|
+
**Agent login (no direct browser access)**: For agents that cannot open a browser for the user, use a two-step flow:
|
|
33
|
+
|
|
34
|
+
1. **Get login URL and session key** — Print login URL and JSON (jq-parseable) then exit without opening browser or waiting:
|
|
35
|
+
```bash
|
|
36
|
+
composio login --no-wait | jq
|
|
37
|
+
```
|
|
38
|
+
Share the login URL with the agent's user to complete login in their browser.
|
|
39
|
+
|
|
40
|
+
2. **Complete login with session key** — Use the `cli_key` from the previous output to check if the user has logged in:
|
|
41
|
+
```bash
|
|
42
|
+
composio login --key "<cli_key>"
|
|
43
|
+
```
|
|
44
|
+
Without `--no-wait`: polls until the session is linked (same as browser flow after printing URL).
|
|
45
|
+
With `--no-wait`: checks once and fails if not linked. For agents, once the user completes login, run with `--no-wait` to avoid blocking.
|
|
46
|
+
|
|
47
|
+
## Primary Workflow: search → link → execute
|
|
48
|
+
|
|
49
|
+
### Step 1 — Find the right tool
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
composio search "send an email"
|
|
53
|
+
composio search "create github issue"
|
|
54
|
+
composio search "post slack message"
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The search results include connection status, so you can see immediately if the user is already connected to the required app.
|
|
58
|
+
|
|
59
|
+
> **Important**: Do not trim the output of `composio search` (e.g. with `head`). Use the full results to pick the right tool — truncating can hide the best match.
|
|
60
|
+
|
|
61
|
+
### Step 2 — Connect an account (if needed)
|
|
62
|
+
|
|
63
|
+
If the user is not connected to the app, link their account:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
composio link gmail
|
|
67
|
+
composio link github
|
|
68
|
+
composio link slack
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
This opens an OAuth flow or prompts for credentials. Only needed once per app. By default, `composio link` waits until the connected account is ACTIVE (opens browser, polls). Use `--no-wait` for scripted or agent usage: it prints link info and JSON to stdout (JQ-friendly) and exits immediately. Output includes `status`, `connected_account_id`, `redirect_url`, and `toolkit`.
|
|
72
|
+
|
|
73
|
+
### Step 3 — Execute the tool
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
composio execute GMAIL_SEND_EMAIL --data '{"recipient_email":"you@example.com","subject":"Hello","body":"Test"}'
|
|
77
|
+
composio execute GITHUB_CREATE_AN_ISSUE --data '{"owner":"acme","repo":"my-repo","title":"Bug report"}'
|
|
78
|
+
```
|
|
79
|
+
To see a tool's input parameters before executing:
|
|
80
|
+
```bash
|
|
81
|
+
composio execute GMAIL_SEND_EMAIL --help
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Step 4 — Listen for events (optional)
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
composio listen
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Streams real-time trigger events to the terminal.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Tips for Agents
|
|
95
|
+
|
|
96
|
+
- **All commands output JSON** — pipe to `jq` for filtering and extraction
|
|
97
|
+
- **Agent login** — When the agent has no direct browser access, use `composio login --no-wait` to get the URL and key, share the URL with the user, then `composio login --key <key> --no-wait` once they complete login
|
|
98
|
+
- **Parallel execution** — use `&` and `wait` or shell scripts for complex multi-step tasks
|
|
99
|
+
- The default user context is the project's `test_user_id`. Pass `--user-id <id>` to act on behalf of a specific user.
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
composio execute GMAIL_SEND_EMAIL --user-id "user_123" --data '{"recipient_email":"them@example.com","subject":"Hi"}'
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Best Practices
|
|
106
|
+
|
|
107
|
+
1. **Use `jq` for JSON** — Pipe CLI output to `jq` for filtering and extraction instead of parsing raw JSON.
|
|
108
|
+
2. **Control output at source** — When fetching large amounts of data, use the tool's filters (if supported) to limit what is returned.
|
|
109
|
+
3. **Offload analysis** — After understanding the schema, use inline bash scripts for heavy data analysis instead of manual inspection. Avoid using composio SDK for personal usecases only use the SDKs when building apps.
|
|
110
|
+
4. **Parallelize independent actions** — For tools/actions that don't depend on each other, run them in parallel with `&` and `wait`. Use `xargs -P` or `parallel` only when the backend can handle the load.
|
|
111
|
+
5. **Avoid large terminal dumps** — Filter, search, and summarize instead of outputting full datasets:
|
|
112
|
+
- Quick text filtering: `grep -E`, `rg` (ripgrep), `awk`, `sed`
|
|
113
|
+
- Summarize: `sort | uniq -c | sort -nr`, `wc -l`, `head`, `tail`
|
|
114
|
+
- For large output: `less`, `lnav` (logs), `tail -f` for streaming
|
|
115
|
+
6. **Minimize file creation** — Use ephemeral files only when needed; create files only when the user explicitly asks.
|
|
116
|
+
7. **Respect rate limits** — Be mindful of pagination and API/CLI rate limits when parallelizing.
|
|
117
|
+
8. **Never invent tool slugs or app names** — Only use tools returned by `composio search`. For app names, use `composio manage toolkits info <slug>` or `composio manage tools info <tool>` to verify.
|
|
118
|
+
9. **Do not trim `composio search` output** — Never pipe search results through `head`, `tail`, or similar. Use the full output to find the best tool match.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Advanced Commands
|
|
123
|
+
|
|
124
|
+
### Discover Tools (when search isn't enough)
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# List all toolkits
|
|
128
|
+
composio manage toolkits list
|
|
129
|
+
|
|
130
|
+
# Get details about a specific toolkit
|
|
131
|
+
composio manage toolkits info "gmail"
|
|
132
|
+
|
|
133
|
+
# List tools in a toolkit
|
|
134
|
+
composio manage tools list --toolkits "gmail"
|
|
135
|
+
|
|
136
|
+
# Get a tool's full schema
|
|
137
|
+
composio manage tools info "GMAIL_SEND_EMAIL"
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Connected Accounts
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# List active connections
|
|
144
|
+
composio manage connected-accounts list --status ACTIVE
|
|
145
|
+
|
|
146
|
+
# Link an account (full form with options)
|
|
147
|
+
composio manage connected-accounts link --auth-config "ac_..." --user-id "user_123"
|
|
148
|
+
|
|
149
|
+
# Delete a connection
|
|
150
|
+
composio manage connected-accounts delete <id>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Auth Configs
|
|
154
|
+
|
|
155
|
+
> Only needed when building apps with custom OAuth credentials. For personal use and agents, `composio link` handles this automatically.
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
composio manage auth-configs list --toolkits "gmail"
|
|
159
|
+
composio manage auth-configs create
|
|
160
|
+
composio manage auth-configs info <id>
|
|
161
|
+
composio manage auth-configs delete <id>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Triggers
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
# List available trigger types
|
|
168
|
+
composio manage triggers list
|
|
169
|
+
composio manage triggers info "GMAIL_NEW_GMAIL_MESSAGE"
|
|
170
|
+
|
|
171
|
+
# Manage trigger instances
|
|
172
|
+
composio manage triggers create <trigger-name>
|
|
173
|
+
composio manage triggers enable <id>
|
|
174
|
+
composio manage triggers disable <id>
|
|
175
|
+
composio manage triggers status
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Debugging & Logs
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
# View recent tool executions
|
|
182
|
+
composio manage logs tools
|
|
183
|
+
|
|
184
|
+
# Get detailed logs for a specific execution
|
|
185
|
+
composio manage logs tools "log_abc123"
|
|
186
|
+
|
|
187
|
+
# Monitor trigger events
|
|
188
|
+
composio manage logs triggers
|
|
189
|
+
```
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## jq Examples
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
# Extract toolkit slugs
|
|
196
|
+
composio manage toolkits list | jq -r '.[].slug'
|
|
197
|
+
|
|
198
|
+
# Get tool names from a toolkit
|
|
199
|
+
composio manage tools list --toolkits "gmail" | jq -r '.[].name'
|
|
200
|
+
|
|
201
|
+
# Filter active connections
|
|
202
|
+
composio manage connected-accounts list --status ACTIVE | jq -r '.[].id'
|
|
203
|
+
|
|
204
|
+
# Extract login URL and key from agent login flow
|
|
205
|
+
composio login --no-wait | jq -r '.login_url'
|
|
206
|
+
composio login --no-wait | jq -r '.key'
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## Command Help
|
|
210
|
+
|
|
211
|
+
Every command supports `--help` for detailed options:
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
composio --help
|
|
215
|
+
composio login --help
|
|
216
|
+
composio search --help
|
|
217
|
+
composio execute --help
|
|
218
|
+
composio link --help
|
|
219
|
+
composio listen --help
|
|
220
|
+
composio manage tools --help
|
|
221
|
+
composio manage toolkits --help
|
|
222
|
+
composio manage triggers --help
|
|
223
|
+
```
|