
Product
Socket Firewall Now Blocks Malicious VS Code and Open VSX Extensions
Socket Firewall blocks malicious VS Code and Open VSX extensions before install, protecting developers from compromised editor marketplaces.
@standujar/plugin-composio
Advanced tools
A powerful ElizaOS plugin that integrates 250+ external tool integrations through Composio. Enable your AI agent to interact with GitHub, Slack, Linear, Google Drive, Notion, and hundreds more services through natural language.
Features • Installation • Configuration • Usage • API Reference • Contributing
# Using bun (recommended)
bun add @standujar/plugin-composio
# Using npm
npm install @standujar/plugin-composio
# Using yarn
yarn add @standujar/plugin-composio
# Required: Composio API Key
COMPOSIO_API_KEY=your_composio_api_key
# Optional: Default user ID (default: "default")
COMPOSIO_DEFAULT_USER_ID=your_user_id
# Optional: Multi-user mode (default: false)
COMPOSIO_MULTI_USER_MODE=false # false: single user with default ID, true: per-message user ID
# Optional: Restrict available toolkits (default: empty, allows all)
COMPOSIO_ALLOWED_TOOLKITS=gmail,slack,github # Comma-separated list of allowed toolkit names
# Optional: Fine-tuning parameters (simplified to 3 temperatures)
COMPOSIO_EXTRACTION_TEMPERATURE=0.3 # Precise extraction tasks (default: 0.3)
COMPOSIO_EXECUTION_TEMPERATURE=0.5 # Tool execution workflows (default: 0.5)
COMPOSIO_RESPONSE_TEMPERATURE=0.7 # Natural language responses (default: 0.7)
Add the plugin to your ElizaOS character configuration:
{
"name": "MyAssistant",
"plugins": ["@standujar/plugin-composio"],
"settings": {
"COMPOSIO_MULTI_USER_MODE": "{{COMPOSIO_MULTI_USER_MODE}}",
"secrets": {
"COMPOSIO_API_KEY": "{{COMPOSIO_API_KEY}}",
"COMPOSIO_DEFAULT_USER_ID": "{{COMPOSIO_DEFAULT_USER_ID}}"
}
}
}
The plugin supports two user modes:
COMPOSIO_MULTI_USER_MODE=false)COMPOSIO_DEFAULT_USER_ID)COMPOSIO_MULTI_USER_MODE=true)message.entityId)The plugin supports restricting which toolkits users can access via the COMPOSIO_ALLOWED_TOOLKITS setting:
COMPOSIO_ALLOWED_TOOLKITS="")COMPOSIO_ALLOWED_TOOLKITS="gmail,slack,github")📚 Documentation:
The plugin provides 5 main actions to interact with Composio integrations:
executeToolsAction)Execute workflows using connected apps based on natural language requests:
User: "Create a new issue in Linear and assign it to John"
Assistant: ✅ Created issue LIN-123 in Backend project, assigned to John
browseToolkitsAction)Discover available toolkits by category or functionality:
User: "What email apps can I connect with composio ?"
Assistant: Available email apps: Gmail, Outlook, Yahoo Mail, ProtonMail
User: "Show me project management tools with composio"
Assistant: Available project management tools: Linear, Jira, Asana, Trello, Monday.com
connectToolkitAction)Connect new integrations to your account:
User: "Connect Gmail to my composio account"
Assistant: Gmail connection initiated! Please authorize at: [auth-link]
listConnectedToolkitsAction)View all your connected integrations:
User: "What apps are my composio connected toolkit?"
Assistant: Your connected apps: Gmail, Slack, Linear, GitHub (4 total)
disconnectToolkitAction)Remove app connections:
User: "Remove Slack composio integration"
Assistant: ✅ Slack has been disconnected successfully
User: Create a new issue in Linear for the project "Backend" and assign it to Alice using composio
[Workflow Analysis]
1. Extract: "Create issue" (linear)
2. Dependencies detected: Need project_id and user_id
3. Combined use case: "List projects and search users. Then, Create issue"
Assistant: I'll create a new issue in Linear. Let me find the project and user first.
✅ Created issue successfully:
- Title: "New task"
- ID: LIN-123
- Project: Backend
- Assigned to: Alice
- Status: Backlog
- URL: https://linear.app/team/issue/LIN-123
User: Delete issue USEK-162
[Workflow Analysis]
1. Extract: "Delete issue" (linear)
2. Dependencies: None (ID already provided)
3. Final use case: "Delete issue"
Assistant: I'll delete issue USEK-162 for you.
✅ Issue USEK-162 has been successfully archived.
User: Send a summary of today's standup notes to the team channel
Assistant: I've sent the standup summary to your team channel.
✅ Message posted to #team-standup:
"Daily Standup Summary - January 20
- John: Completed authentication module, starting on API tests
- Sarah: Fixed memory leak issue, reviewing PR #44
- Mike: Updated documentation, working on search optimization
- Blockers: Need design review for dark mode feature"
The message was sent with mentions for all 12 team members.
The plugin intelligently handles complex requests that require multiple toolkits by executing them sequentially while passing results between steps:
graph TD
A[User Request] --> B[Extract Multiple Toolkits & Use Cases]
B --> C[Group Consecutive Toolkits]
C --> D[Prepare All Groups in Parallel]
D --> E[Search Tools for Each Group]
E --> F[Fetch Dependency Graphs]
F --> G[Collect All Required Tools]
G --> H[Sequential Execution Loop]
H --> I[Execute Group 1 with Original Request]
I --> J[Capture Tool Results & Response]
J --> K[Execute Group 2 with Context]
K --> L[Pass Previous Results to Context]
L --> M[Continue Until All Groups Done]
M --> N[Complete Workflow]
style A fill:#e1f5fe
style D fill:#fff3e0
style H fill:#f3e5f5
style N fill:#c8e6c9
User: "Get my Linear issues that are In Progress, then send an email summary to john@company.com"
Extraction:
- Group 1: Linear → ["get issues in progress"]
- Group 2: Gmail → ["send email summary"]
Phase 1 - Parallel Preparation:
✅ Linear tools fetched (LINEAR_LIST_ISSUES, etc.)
✅ Gmail tools fetched (GMAIL_SEND_EMAIL, etc.)
Phase 2 - Sequential Execution:
Step 1: Linear execution
- Context: "Original request: Get my Linear issues..."
- Current step: "get issues in progress"
- Result: Found 3 issues (KEN-123, KEN-124, KEN-125)
Step 2: Gmail execution
- Context: "Original request: Get my Linear issues...
Previous step (Linear): Found 3 issues: [{"id":"KEN-123","title":"Plugin Composio"}...]"
- Current step: "send email summary"
- Uses the Linear results to compose the email content
sequenceDiagram
participant U as User
participant P as Plugin
participant R as Results Provider
participant C as Composio API
participant T as Tools (GitHub/Slack/etc)
U->>P: Natural language request
P->>P: Extract toolkit & use case
P->>R: Get previous executions
R-->>P: Relevant execution history
P->>C: COMPOSIO_SEARCH_TOOLS
C-->>P: Main tool + dependencies
P->>C: Get ALL dependency tools
C-->>P: Complete tool collection
P->>T: Execute with LLM + tools
T-->>P: Tool execution results
P->>R: Store successful results only
P->>U: Natural language response
executeToolsAction: Main action handler with intelligent dependency resolutionconnectToolkitAction: Connect new apps and integrationsdisconnectToolkitAction: Remove app connectionslistConnectedToolkitsAction: Show connected apps and servicestoolExecutionPrompt: Tool execution with workflow guidanceworkflowExtractionPrompt: Extract toolkits and use cases from requeststoolkitResolutionPrompt: Resolve toolkit names (extract/select/match)userResponsePrompt: Unified response formatting for all user-facing actionsEnable debug logging to troubleshoot issues:
LOG_LEVEL=debug bun start
Common debug points:
We welcome contributions! Please see our Contributing Guide for details.
# Clone the repository
git clone https://github.com/standujar/plugin-composio.git
# Install dependencies
bun install
# Run tests
bun test
# Build the plugin
bun run build
# Run in development mode
bun run dev
This plugin is licensed under the MIT License. See LICENSE file for details.
connectToolkitActionlistConnectedToolkitsActiondisconnectToolkitActionFAQs
Composio plugin for elizaOS
The npm package @standujar/plugin-composio receives a total of 0 weekly downloads. As such, @standujar/plugin-composio popularity was classified as not popular.
We found that @standujar/plugin-composio demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket Firewall blocks malicious VS Code and Open VSX extensions before install, protecting developers from compromised editor marketplaces.

Research
More than 140 Mastra npm packages were compromised in a supply chain attack that used a typosquatted dependency to deliver a cross-platform infostealer during installation.

Research
/Security News
A new npm package tests AI malware scanners with prompt injection, safety-triggering comments, context flooding, and obfuscated JavaScript.