nexu-io/open-design · error · Error
Local CLI agent "${provider.agentId}" is not installed
Error message
Local CLI agent "${provider.agentId}" is not installed What it means
getAgentDef(provider.agentId) returned null, meaning the agentId is not found in the daemon's runtime agent registry (AGENT_DEFS). The memory extractor requires a registered agent definition to resolve its CLI launch path, environment, and argument builder.
Source
Thrown at apps/daemon/src/memory-llm.ts:965
.join('')
.trim();
}
async function callLocalCli(provider, system, user, options) {
if (typeof options?.localCliRunner === 'function') {
return options.localCliRunner({
agentId: provider.agentId,
model: provider.model,
system,
user,
projectRoot: options?.projectRoot ?? null,
dataDir: options?.dataDir ?? null,
});
}
const def = getAgentDef(provider.agentId);
if (!def) {
throw new Error(`Local CLI agent "${provider.agentId}" is not installed`);
}
let configuredAgentEnv = {};
try {
const appConfig = options?.dataDir ? await readAppConfig(options.dataDir) : {};
configuredAgentEnv = agentCliEnvForAgent(appConfig.agentCliEnv, def.id);
} catch {
configuredAgentEnv = {};
}
const launch = resolveAgentLaunch(def, configuredAgentEnv);
if (!launch?.launchPath) {
throw new Error(`${def.name} CLI is not installed or not on PATH`);
}
// The memory extractor is a tool-less, JSON-only background call that never
// reads project files, so it has no reason to run in the daemon's own cwd.
// Falling back to process.cwd() there meant a bun-based agent (OpenCode) ranView on GitHub (pinned to 5be4028344)
Solutions
- Verify provider.agentId matches a registered agent id (e.g. 'claude', 'codex', 'opencode')
- Reinstall or re-enable the agent if it was removed
- List available agents to confirm the correct id spelling
- Update the memory provider config to use an installed agent
Example fix
// before — typo or unregistered agent
provider = { agentId: 'cluade', model: '...' };
// after — correct registered id
provider = { agentId: 'claude', model: '...' }; Defensive patterns
Strategy: validation
Validate before calling
import { getAgentDef } from './runtimes/registry';
function assertAgentInstalled(agentId) {
const def = getAgentDef(agentId);
if (!def) {
throw new Error(`Agent "${agentId}" is not registered. Available agents can be listed via 'od agent list'.`);
}
return def;
} Type guard
import { getAgentDef } from './runtimes/registry';
function isAgentRegistered(agentId: string): boolean {
return getAgentDef(agentId) !== null;
} Prevention
- Validate agentId against the registry before configuring it as a memory provider
- Keep agent plugin installations in sync with provider configurations
- Use exact agent id strings from the registry listing
When it happens
Trigger: The memory provider configuration references an agentId that is not registered in AGENT_DEFS; the agent plugin was uninstalled but the provider config still references it; the agentId has a typo (e.g. 'cluade' instead of 'claude').
Common situations: User configured a custom agent that was later removed or disabled; agent plugin uninstalled but provider config not updated; typo in agentId; agent registry not loaded due to startup error.
Related errors
- Local CLI memory extraction is not supported for ${provider.
- ${agentName} CLI error: ${message}
- ${def.name} CLI is not installed or not on PATH
- authoritative Team resource listing is unavailable
- Custom Image API base URL required — configure an OpenAI-com
AI-assisted analysis of nexu-io/open-design@5be4028344 (2026-08-12).
Data as JSON: /api/errors/b50cf627611e5188.
Report an issue: GitHub.