Pikes Peak mountain range — Peak AI Design Colorado Springs
Peak War Room HUD — Atlas live operations console

DCAIA (Drupal Core AI Assistant) — Local-First AI Operations Stack

Summary: DCAIA (Drupal Core AI Assistant) is the local-first AI operations stack we built and run. Local LLM as the brain, plugin-extensible runtime, Iron Man-style desktop HUD, voice-driven, self-extending. ~95% of work runs on your hardware; ~5% bridges to cloud for heavy reasoning. The architecture is open at github.com/drelf/peak-ai-ops-architecture.

Naming note (May 2026): This project was previously developed under the codename "Atlas." It's been formally renamed to DCAIA — Drupal Core AI Assistant — because the AI agent naming space is saturated with other projects also called Atlas. Customer-facing persona is now DCAIA; internal code paths and directory names still reference Atlas for backwards compatibility.

The problem we solved

Most AI assistants today are cloud-hosted, send your business data to OpenAI or Anthropic, can't be customized below the prompt layer, and stop working when you go offline. For a small business running operations day-to-day — drafting LinkedIn posts, fact-checking customer emails, dispatching support calls, monitoring uptime, generating SEO content — that model is wrong on three fronts: privacy, control, and cost shape.

Local-first AI ops solves all three at once: brain runs on your hardware, data never leaves, every routing decision is your code.

How DCAIA works

DCAIA is a Node.js HTTP runtime exposing 50+ plugins to a local LLM (Ollama running qwen3:8b on consumer GPU). Every plugin call passes through a tri-state permission gate before execution.

  • Autonomous bucket — read-only ops, drafts, internal compute, publishing on your own properties. Run + audit log, no prompts.
  • Requires-approval bucket — outbound to non-you humans (email, SMS), code commits, any spend, public-asset destructive ops. 403 gate, routed to Telegram inline-keyboard approval.
  • Forbidden bucket — credentials, banking, gov benefits, force-push to main, db drops. Refuse + alert. Default-deny on unknown tools.

This means DCAIA can run autonomously without becoming a security incident. Adding a plugin without classifying it is forbidden by default.

Self-extension

DCAIA has two meta-plugins that let it grow new capabilities on demand:

  • plugin-builder — given a description of a missing capability, dispatches to a real coding agent (Claude Code via the open-source claude-bridge-mcp) which has filesystem access, reads template plugins, writes the new file, updates the routing catalog. Returns a build report.
  • agent-builder — same shape, but spawns a sub-agent with its own LLM loop, tool subset, and memory namespace. The agent grows specialists for specific domains.

Hallucination-proof via Context7

Local LLMs (and even frontier ones) hallucinate API signatures because their training data is stale. The fix: connect Context7 — a hosted MCP server with current docs for 9,000+ libraries. When DCAIA dispatches a coding task, Context7 supplies the current React API, Stripe webhook signature scheme, Telegram inline keyboard JSON shape. Free, no key required. Eliminates the most common failure mode of LLM-generated integration code.

The HUD — Peak War Room

The interface is a desktop app (Electron) with floating draggable windows around a 3D globe. Chat pane, Monaco code editor, real terminal PTY, browser pane, Telegram embed, calendar, email composer, softphone dialer. Status strip showing daemon health. The aesthetic is intentional — operating DCAIA should feel like you're running a small command center, not chatting with a bot.

Voice loop

Speech in: native OS dictation (Windows: Win+H modern engine). Speech out: Microsoft Edge neural TTS — free, hosted, no key, ~50 voice options. Default British male (Ryan Neural) ships Jarvis-tone. Optional Whisper / OpenAI upgrade if you want.

Open-source companions

Two MCP bridges shipped to the public domain alongside DCAIA:

  • atlas-bridge-mcp — bridges any MCP-compatible AI agent to a browser-agent / puppeteer HTTP backend (repo name retains the legacy "atlas" prefix; the runtime persona it serves is DCAIA)
  • claude-bridge-mcp — bridges MCP agents to a Claude Code CLI subprocess for autonomous coding-task dispatch

Additionally, we have two new private repositories:

The public MCP bridges are MIT-licensed and provide publicly useful infrastructure, while the publisher and generator are business-specific and thus private. Together, they make agent-to-backend dispatch a one-config-line operation.

Drupal-side modules

We have established a new architectural pattern for building capabilities that need to live near content and authentication context. The peak_linkedin_publish module is the first example of this pattern, complementing the existing Node.js Atlas plugin runtime. Atlas plugins call into Drupal endpoints when the work requires Drupal's entity API, config, or per-user authentication; they remain in Node when the work is pure orchestration or outbound HTTP.

Additionally, every custom module now receives a structured reference document capturing its outputs, inputs, surfaces, file locations, and integration points with other modules. This ensures future maintenance sessions do not rediscover module behaviors.

Content pipeline

The content pipeline operates as follows:

  • ai_article_agent generates the Drupal Article node (title, body, hero image).
  • peak_linkedin_publish reads that node and posts to LinkedIn via the Posts API.
  • The Atlas plugin linkedin-publish-article serves as the natural-language trigger ("publish article 36 to linkedin").

The result is an end-to-end "AI generates → AI publishes" workflow, with a Drupal node serving as the durable record.

What ships next

  • field_linkedin_blurb on the Article content type — so ai_article_agent can generate a punchy LinkedIn hook alongside the body, instead of the publisher having to truncate the body.
  • Community Management API approval — request pending with LinkedIn; once granted, posts can target the Peak AI Design Company Page (currently we can only post to personal feed because only Share-on-LinkedIn is approved).
  • Backlog of 22 remaining custom Drupal modules across the four sites that need private GitHub repos under the new shop-wide rule.

Architecture overview is open

The full architecture is published at github.com/drelf/peak-ai-ops-architecture — patterns and philosophy, no operational specifics. Companion repos atlas-bridge-mcp and claude-bridge-mcp are MIT-licensed.

Comments