Description
n8n-nodes-opencode
This is an n8n community node that integrates OpenCode as a chat model for use with n8n’s AI Agent and LangChain workflows.
n8n is a fair-code licensed workflow automation platform.
OpenCode is an open-source AI coding agent built for the terminal with support for multiple LLM providers.
Installation
Follow the installation guide in the n8n community nodes documentation.
Option 1: npm
npm install @fsteccanella/n8n-nodes-opencode
Option 2: Manual Installation
1. Clone this repository
2. Run npm install and npm run build
3. Copy the dist folder to ~/.n8n/custom/ (create if it doesn’t exist)
4. Restart n8n
Prerequisites
- n8n version 1.0.0 or later
- OpenCode server running (see OpenCode documentation)
OpenCode Server Setup
Local Development
Install OpenCode CLI
npm install -g @opencode-ai/cliStart the server
opencode serve
By default, OpenCode server runs on http://localhost:4096.
Credentials
This node requires OpenCode API credentials:
1. In n8n, go to Credentials → New
2. Search for “OpenCode API”
3. Configure:
– Base URL: Your OpenCode server URL (default: http://localhost:4096)
– API Key: (Optional) If your OpenCode instance requires authentication
Usage
1. Add the OpenCode Chat Model node to your workflow
2. Select or create OpenCode API credentials
3. Configure the model:
– Agent: Choose the OpenCode agent type (build, chat, debug)
– Model Provider: Select provider (Anthropic, OpenAI, Google, Groq, Ollama)
– Model ID: Specify the model (e.g., claude-3-5-sonnet-20241022)
4. Connect to an AI Agent node or other LangChain-compatible nodes
Example Workflow
┌─────────────────┐ ┌──────────────────┐ ┌────────────────┐
│ Chat Trigger │────→│ AI Agent │────→│ Respond │
└─────────────────┘ └──────────────────┘ └────────────────┘
│
↓
┌──────────────────┐
│ OpenCode Chat │
│ Model │
└──────────────────┘
Supported Models
The node supports models from these providers (via models.dev):
Anthropic
claude-sonnet-4-5-20250929 (latest)claude-sonnet-4-20250514claude-3-7-sonnet-20250219claude-3-5-sonnet-20241022claude-3-5-sonnet-20240620claude-opus-4-1-20250805claude-opus-4-20250514claude-haiku-4-5-20251001claude-3-5-haiku-20241022OpenAI
gpt-5 (latest)gpt-5-minigpt-5-nanoo3o3-minigpt-4.1gpt-4.1-minigpt-4ogpt-4o-minio1o1-minigpt-4-turbogemini-2.5-pro (latest)gemini-2.5-flashgemini-2.5-flash-litegemini-2.0-flashgemini-2.0-flash-litegemini-1.5-progemini-1.5-flashgemini-1.5-flash-8bGroq
llama-3.3-70b-versatilellama3-70b-8192llama-3.1-8b-instantqwen-qwq-32bmistral-saba-24bgemma2-9b-itMistral
mistral-large-latestmistral-medium-latestmistral-small-latestpixtral-large-latestcodestral-latestministral-8b-latestministral-3b-latestMeta (Llama)
llama-4-maverick-17bllama-4-scout-17bllama-3.3-70b-instructllama-3.2-1b-instructllama-3.1-70b-instructllama-3.1-8b-instructDeepSeek
deepseek-chatdeepseek-reasonerAlibaba (Qwen)
qwen3-maxqwen3-32bqwen3-14bqwen3-8bqwen-maxqwen-plusMoonshot AI (Kimi)
kimi-k2-0905-previewkimi-k2-0711-previewOllama (Self-hosted)
qwen2.5-coder:32b, codellama:34b, llama3:70bConfiguration Options
Agent Types
Model Parameters
Features
Troubleshooting
Connection Issues
Problem: “Failed to create OpenCode session”
Solution: Verify OpenCode server is running and accessible at the configured base URL.
Test connection
curl http://localhost:4096/global/health
Authentication Issues
Problem: “Unauthorized” errors
Solution: If your OpenCode server requires authentication, ensure the API key is correctly configured in credentials.
Model Not Available
Problem: Model ID not recognized
Solution: Ensure the specified model is configured in your OpenCode server and the corresponding provider API keys are set.
Development
Build
npm install
npm run build
Watch Mode
npm run dev
Lint
npm run lint
npm run lintfix
Architecture
This node implements a custom LangChain BaseChatModel that:
1. Session Management: Creates and manages OpenCode sessions via REST API
2. Message Handling: Converts LangChain messages to OpenCode prompt format
3. Streaming: Implements Server-Sent Events (SSE) for real-time responses
4. Event Parsing: Processes message.part.updated and session.updated events
Key Components
OpenCodeChatModel.ts: Custom LangChain chat model implementationLmChatOpenCode.node.ts: n8n node wrapperOpenCodeApi.credentials.ts: Credentials definitionAPI Endpoints Used
POST /session: Create new sessionPOST /session/:id/message: Send prompt with message partsDELETE /session/:id: Clean up sessionContributing
Contributions are welcome! Please:
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Run tests and linting
5. Submit a pull request
License
Resources
Support
For issues and questions: