A collection of reusable Terraform modules for extending Coder workspace functionality. These modules provide easy integration of popular development tools, applications, and services into your Coder workspace templates.
Integrate Anthropic's Claude Code AI assistant directly into your workspace.
Features:
- Web-based Claude Code interface with task reporting
- Optional CLI access through AgentAPI
- Automatic Node.js/npm installation via NVM
- Configurable installation scripts (pre/post-install)
- AgentAPI integration for enhanced AI capabilities
Usage:
module "claude_code" {
source = "git::https://github.com/AI-Riksarkivet/coder-modules.git//claude-code?ref=main"
agent_id = coder_agent.main.id
# Optional configuration
folder = "/home/coder"
claude_code_version = "latest"
experiment_report_tasks = true
install_agentapi = true
}High-performance, containerized VNC server for remote desktop access.
Features:
- Support for multiple desktop environments (XFCE, KDE, GNOME, LXDE, LXQT)
- Configurable ports and versions
- Built-in health checking
- Web-based access through browser
Usage:
module "kasmvnc" {
source = "git::https://github.com/AI-Riksarkivet/coder-modules.git//kasmvnc?ref=main"
agent_id = coder_agent.main.id
desktop_environment = "xfce"
port = 6800
}Visual framework for building multi-agent and RAG applications.
Features:
- Drag-and-drop interface for AI workflows
- Configurable base paths and ports
- Health monitoring and logging
- Subdomain support
Usage:
module "langflow" {
source = "git::https://github.com/AI-Riksarkivet/coder-modules.git//langflow?ref=main"
agent_id = coder_agent.main.id
port = 7860
subdomain = true
}Reactive Python notebooks that are reproducible, git-friendly, and deployable as scripts or apps.
Features:
- Interactive Python notebook environment
- Git-friendly notebook format
- Real-time reactivity and execution
- Health monitoring with configurable paths
Usage:
module "marimo" {
source = "git::https://github.com/AI-Riksarkivet/coder-modules.git//marimo?ref=main"
agent_id = coder_agent.main.id
port = 2818
}Open-source toolkit for building high-quality datasets and computer vision models.
Features:
- Dataset visualization and exploration
- Model evaluation and analysis
- Label and annotation management
- Automatic setup and configuration
Usage:
module "fiftyone" {
source = "git::https://github.com/AI-Riksarkivet/coder-modules.git//fiftyone?ref=main"
agent_id = coder_agent.main.id
port = 5151
}Command-line utility for sending notifications to Slack channels.
Features:
- Integration with Coder's external auth providers
- Customizable message templates
- Default channel configuration
- Command completion notifications
Usage:
module "slackme" {
source = "git::https://github.com/AI-Riksarkivet/coder-modules.git//slackme?ref=main"
agent_id = coder_agent.main.id
auth_provider_id = coder_external_auth.slack.id
default_channel = "#dev-notifications"
}Each module follows consistent patterns:
module-name/
βββ main.tf # Main Terraform configuration
βββ run.sh # Installation/startup script (if applicable)
βββ scripts/ # Additional helper scripts
βββ README.md # Module-specific documentation
All modules require:
agent_id- The ID of the Coder agent to install the module on
Most modules support:
port- Port number for web applications (module-specific defaults)subdomain- Enable subdomain routing for web appsshare- Access level (owner,authenticated,public)order- UI display ordergroup- Logical grouping in the UI
- Add Module to Template: Include the module in your Coder workspace template:
terraform {
required_providers {
coder = {
source = "coder/coder"
version = "~> 2.0"
}
}
}
resource "coder_agent" "main" {
arch = "amd64"
os = "linux"
# ... agent configuration
}
# Add any module
module "claude_code" {
source = "git::https://github.com/AI-Riksarkivet/coder-modules.git//claude-code?ref=main"
agent_id = coder_agent.main.id
}- Apply Template: Deploy the template to your Coder instance
- Create Workspace: Launch a new workspace with the integrated modules
- Create a new directory with the module name
- Add
main.tfwith Terraform configuration - Include installation scripts if needed
- Add health checks for web applications
- Update this README with module documentation
Test modules by:
- Creating a test workspace template
- Including the module with various configurations
- Verifying application startup and functionality
- Testing health checks and UI integration
Web-based modules (langflow, marimo, fiftyone, kasmvnc) include:
- Health Checks: Automatic monitoring of application availability
- Subdomain Support: Optional subdomain routing for cleaner URLs
- Access Control: Configurable sharing permissions
- Logging: Structured logging to specified paths
Utility modules (claude-code, slackme) provide:
- Installation Scripts: Automated setup and configuration
- External Integrations: Authentication and service connections
- Custom Commands: CLI tools and shortcuts
- Fork Repository: Create your own fork
- Create Module: Follow the established patterns
- Test Thoroughly: Verify functionality across environments
- Update Documentation: Include comprehensive usage examples
- Submit PR: Create pull request with detailed description
- Coder Documentation: Official Coder platform documentation
- Terraform Coder Provider: Provider documentation
- Module Development Guide: Terraform module best practices
For issues and questions:
- Module Issues: Create GitHub issues with detailed descriptions
- Coder Platform: Reference official Coder documentation and support
- Integration Help: Check individual module README files for specific guidance
This project is licensed under the MIT License. See the LICENSE file for details.