Integrate Module
SkillDev toolsTurn any external program into a Genesis module via structured discovery, connection mapping, config generation, and verification.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Integrate Module skill
What this skill tells your AI
The instructions your AI receives, as published by wingedguardian/genesis-agi in src/genesis/skills/integrate-module/SKILL.md and read by ahel’s review.
Turn any external program into a Genesis module. This is the standardized process for plugging a program into Genesis — whether it was built for Genesis or not.
Genesis is the nervous system. The program is the body. This skill builds the connection between them.
When to Use
- User says "integrate X into Genesis" or "make X a module"
- User wants to plug an external program, service, or tool into Genesis
- User wants Genesis to drive, monitor, or interact with an external system
- Ego session discovers a program worth integrating and proposes it
Input
One of:
- Running service URL (e.g.,
http://your-host:8080) - Repository URL (e.g.,
github.com/user/repo) - Local path (e.g.,
~/my-tool/) - Description (e.g., "a job automation tool running on my server")
Phase 1: Discovery
Goal: Understand what the program does, how it communicates, and what Genesis can connect to.
If running service:
- Probe for health endpoints:
/health,/api/health,/status,/ - Probe for API documentation:
/docs,/openapi.json,/swagger.json - If OpenAPI spec found: parse all endpoints, methods, parameters
- If no spec: probe common REST patterns, check response shapes
- Record: base URL, available endpoints, response formats, auth requirements
If repository:
- Clone or read the source
- Identify tech stack (language, framework, database, scheduler)
- Find entry points: route definitions, CLI commands, main functions
- Map API endpoints from source (FastAPI routes, Express handlers, etc.)
- Identify configuration: env vars, config files, secrets needed
- Check deployment method: Docker, systemd, kubernetes, manual
- Record: full capability map from source
If description only:
- Ask the user for more details: where does it run? how do you access it?
- Attempt to locate the service or source based on what they share
- Fall back to manual endpoint mapping with user guidance
Output of Phase 1:
A structured assessment:
Program: [name]
Location: [URL / path / host]
Tech Stack: [language, framework, DB]
Communication: [HTTP API / CLI / stdin / socket]
Endpoints Found: [count]
Auth Required: [yes/no, method]
Health Check: [endpoint, expected response]
Phase 2: Connection Mapping
Goal: Map every program capability to a Genesis module operation.
For each discovered endpoint or command:
- What does it do? (read data, trigger action, modify state)
- What parameters does it take?
- What does it return?
- Is it safe to call autonomously? (read-only vs. state-changing)
- Should it be in the operations manifest?
Group operations by category:
- Health/Status — monitoring operations (always include)
- Data Retrieval — read-only queries (safe for autonomous use)
- Actions — state-changing operations (may need user approval)
- Admin — deployment, configuration, lifecycle (restricted)
Output of Phase 2:
Draft operations manifest (YAML format):
operations:
health:
method: GET
path: /api/health
description: "Check service health"
# ... all discovered operations
Phase 3: Effort Assessment
Goal: Give the user an honest picture of what's needed.
Assess each dimension:
- Connectivity — Can Genesis reach the program? (network, auth, firewall)
- API Coverage — What % of the program's capabilities are API-accessible?
- Health Monitoring — Is there a health endpoint? Can we detect failures?
- Lifecycle — Can Genesis start/stop/restart the program? (SSH, systemd, k8s)
- Data Flow — Can Genesis read the program's data? Push data to it?
- Autonomy Potential — What can Genesis do without user approval?
Rate complexity:
- Simple (1 session): Program has HTTP API, health endpoint, clear operations. Genesis wraps it as-is. Career Agent was this level.
- Moderate (2-3 sessions): Program needs some adapter work. Maybe API gaps, authentication setup, or custom endpoint mapping.
- Complex (multi-session): Program needs code changes. Missing API for key capabilities, no health endpoint, custom IPC needed, authentication integration.
Be explicit: "This integration will take [estimate]. Here's why: [specific gaps]."
If complex, recommend incremental approach:
- Start with health monitoring + basic queries (one session)
- Add action operations (second session)
- Add lifecycle management (third session)
- Add deep bidirectional capabilities (ongoing)
Phase 4: Config Generation
Goal: Create the YAML module config and any needed adapter code.
-
Generate
config/modules/[program-name].yaml:- name, type: external, description
- IPC method and URL
- Health check endpoint
- Lifecycle commands (if SSH available)
- Full operations manifest from Phase 2
- Configurable fields (if applicable)
-
If the program needs custom adapter code beyond what ExternalProgramAdapter provides, create it in
src/genesis/modules/[program-name]/. -
Test the connection: verify health check passes.
Phase 5: Dashboard Setup
Goal: Make the module usable from the Genesis dashboard.
Verify:
- Module appears in Modules & Providers panel with EXTERNAL badge
- Description is populated from YAML
- Health status shows Connected/Disconnected
- IPC details visible (method, URL)
- Lifecycle commands available (if configured)
- Clicking the module opens a useful detail modal
If the program has unique data worth displaying, consider adding custom dashboard elements (follow-up, not blocking).
Phase 6: Verification
Goal: Prove the integration works end-to-end.
- Health check:
module_call("[name]", "health")returns healthy - Data query: Test a read-only operation via
module_call - Action (if applicable): Test a state-changing operation
- Dashboard: Module shows correct status, description, operations
- Persistence: Restart bridge, verify module re-loads from YAML
- Error handling: What happens when the program is unreachable?
Phase 7: Documentation
- Update
MEMORY.mdwith the new module entry - If the integration required non-obvious decisions, record them
- Commit all changes via worktree, merge to main
Notes
- Every integration is bespoke. This skill is the map, not the destination.
- The depth of integration is the user's call. Genesis maps the terrain and presents options. The user decides how far to go.
- Don't gatekeep. If the user says "do it all," do it all. If they want just health monitoring, that's fine too.
- Be honest about complexity. "This will take multiple sessions" is useful information, not a reason to avoid starting.
- The goal is full co-pilot capability: anything the user could do with the program, Genesis should be able to do through the module interface.
Signals
- GitHub stars
- 96
- Forks
- 23
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
integrate-module- Source
- github.com/wingedguardian/genesis-agi