A lean, composable AI agent on WordPress.
wp-opencode puts an AI agent on a VPS with WordPress as its operating layer. Each component does one thing: OpenCode handles code, Data Machine handles memory and scheduling, and a pluggable chat bridge (e.g., Kimaki) handles communication. The agent's context window stays clean — no overhead for systems it's not using.
You (Discord/chat)
│
▼
Kimaki (chat bridge)
│
▼
OpenCode (coding agent)
│
├── AGENTS.md ─── workspace conventions
├── SOUL.md ───── identity (who am I?)
├── USER.md ───── human profile (who am I helping?)
├── MEMORY.md ─── accumulated knowledge
│
├── WP-CLI ────── WordPress control
└── Data Machine ─ self-scheduling + AI tools
Data Machine creates three memory files on activation. They're injected into every session — the agent wakes up knowing who it is, who you are, and what it's been working on. No memory management overhead in the context window.
wp-opencode works in two modes with the same setup:
Standalone — Data Machine handles autonomy. The agent self-schedules flows, queues tasks, runs on cron. No orchestrator needed.
Fleet member — An orchestrator routes tasks via Agent Ping webhooks and Discord mentions. The agent executes on its own site, reports back. Multiple agents, each focused on their own WordPress site.
Orchestrator (fleet-wide context)
├── Agent Ping / @mention ──▶ agent @ site-a.com
├── Agent Ping / @mention ──▶ agent @ site-b.com
└── Agent Ping / @mention ──▶ agent @ site-c.com
This isn't theoretical. It's running in production right now — agents on separate VPS instances, each with their own WordPress site, coordinated through Discord and DM webhooks.
Add the wp-opencode-setup skill to your local coding agent (Claude Code, Cursor, etc.):
skills/wp-opencode-setup/
Then: "Help me set up wp-opencode on my VPS"
Your local agent SSHs into the server, runs the setup, and your VPS agent wakes up.
ssh root@your-server-ip
git clone https://github.com/Extra-Chill/wp-opencode.git
cd wp-opencode
SITE_DOMAIN=yourdomain.com ./setup.sh
systemctl start kimaki| Flag | Description |
|---|---|
--existing |
Add to existing WordPress (skip WP install) |
--no-data-machine |
Skip Data Machine (no persistent memory/scheduling) |
--no-chat |
Skip chat bridge |
--chat <bridge> |
Chat bridge to install (default: kimaki) |
--multisite |
Convert to WordPress Multisite (subdirectory by default) |
--subdomain |
Subdomain multisite (use with --multisite, requires wildcard DNS) |
--no-skills |
Skip WordPress agent skills |
--skip-deps |
Skip apt packages |
--skip-ssl |
Skip SSL/HTTPS |
--root |
Run agent as root (default: dedicated service user) |
--dry-run |
Print commands without executing |
# Full setup: WordPress + DM + Discord
SITE_DOMAIN=example.com ./setup.sh
# No chat bridge (SSH-only access)
SITE_DOMAIN=example.com ./setup.sh --no-chat
# Existing WordPress site
EXISTING_WP=/var/www/mysite ./setup.sh --existing
# Multisite network (subdomain)
SITE_DOMAIN=example.com ./setup.sh --multisite --subdomain
# Dry run
SITE_DOMAIN=example.com ./setup.sh --dry-run| Component | Role | Optional? |
|---|---|---|
| WordPress | Site platform, WP-CLI access | No |
| OpenCode | AI coding agent runtime | No |
| Data Machine | Memory (SOUL/USER/MEMORY.md), self-scheduling, AI tools, Agent Ping | --no-data-machine |
| Kimaki | Discord chat bridge | --no-chat |
| WordPress agent skills | WP development patterns (cloned at install) | --no-skills |
Data Machine manages three files that define the agent:
| File | Priority | Purpose |
|---|---|---|
| SOUL.md | 10 | Identity — name, voice, rules |
| USER.md | 20 | Human profile — who you are, preferences |
| MEMORY.md | 30 | Knowledge — project state, lessons learned |
These are injected into every session via opencode.json. The agent doesn't manage memory infrastructure — it just reads and writes these files. DM handles the rest.
With DM (default):
- Persistent memory across sessions (SOUL.md, USER.md, MEMORY.md)
- Self-scheduling via flows and cron
- Task queues for multi-phase projects
- Agent Ping webhooks for fleet coordination
- AI tools (content generation, publishing, search)
Without DM (--no-data-machine):
- Agent responds when prompted, no autonomous operation
- No persistent memory between sessions
- No self-scheduling
- Good for development-only setups where you just need a coding assistant
- Linux server (Ubuntu/Debian)
- Node.js 18+
- PHP 8.0+
- MySQL/MariaDB
- nginx
- wp-openclaw — Same concept, uses OpenClaw as an all-in-one agent runtime. OpenClaw manages its own memory, skills, and channels. Better for standalone autonomous agents that need to self-manage everything. wp-opencode is the composable alternative — separate tools, each doing one thing.
- Data Machine — The memory and scheduling layer. Works with any AI agent framework, not just OpenCode.
Issues + PRs welcome.
MIT — see LICENSE
Built by Extra Chill