Skip to main content

How Tools Connect to Your AIs

When you run ldm install, it automatically figures out what a tool supports and installs everything for you. No manual configuration needed. Point it at a tool and it does the rest.

What Gets Detected

TypeHow it’s foundWhere it goes
CLIpackage.json has bin entriesnpm install -g
Connection PointHas mcp-server.mjs or mcp-server.jsRegistered with your AI apps
Background IntegrationHas openclaw.plugin.json~/.ldm/extensions/ + ~/.openclaw/extensions/
SkillHas SKILL.md or skills/ directory~/.openclaw/skills/
Automation HookHas guard.mjs or claudeCode.hook in package.json~/.claude/settings.json
ModuleHas main or exports in package.jsonImportable by other tools

The Seven Ways a Tool Can Work

Different AIs speak different languages. Some run commands. Some import code. Some use connections. Some read instructions. The beauty of this system is that every tool can offer multiple ways in to the same core logic:
Way InWhat it isWho uses it
CLIShell commandYou and any AI with a terminal
ModuleCode importOther tools, scripts
Connection PointJSON-RPC over stdioClaude Code, Cursor, any MCP-compatible AI
Background IntegrationLifecycle hooks + toolsOpenClaw AIs
SkillWritten instructions (SKILL.md)Any AI that reads files
Automation HookEvents before/after actionsClaude Code
App PackageDistributable bundle (skills, hooks, connections)Claude Code marketplace
Not every tool needs all seven. Build what makes sense. But the more ways you offer, the more AIs can use your tool.

Catalog

Tools are defined in catalog.json at the LDM OS root. Each entry has:
{
  "id": "memory-crystal",
  "name": "Memory Crystal",
  "description": "Persistent memory for your AI.",
  "npm": "@wipcomputer/memory-crystal",
  "repo": "wipcomputer/memory-crystal",
  "registryMatches": ["memory-crystal"],
  "cliMatches": ["crystal"],
  "recommended": true,
  "status": "stable"
}

Stacks

Stacks group tools for team installs. Defined in catalog.json:
{
  "stacks": {
    "core": {
      "name": "WIP Core",
      "components": ["memory-crystal", "wip-ai-devops-toolbox", "wip-1password", "wip-markdown-viewer"],
      "mcpServers": []
    },
    "web": {
      "name": "Web Development",
      "components": [],
      "mcpServers": [
        { "name": "playwright", "command": "npx", "args": ["-y", "@playwright/mcp@latest"] }
      ]
    }
  }
}
Stacks are composable via the includes field.

Your Installed Tools

~/.ldm/extensions/registry.json tracks what’s installed, versions, paths, and enabled/disabled state. Updated after every install.

Process Monitor

process-monitor.sh runs every 3 minutes. Cleans up stuck processes older than 30 seconds and removes stale lockfiles. Logs to ~/.ldm/logs/process-monitor.log.