nexu-io/open-design · error · Error
Local CLI memory extraction is not supported for ${provider.
Error message
Local CLI memory extraction is not supported for ${provider.agentId} What it means
The callLocalCli function only supports memory extraction for three agents: 'claude', 'codex', and 'opencode'. Each has a specific argument-building branch. Any other agentId that passes the registry check (512) and binary discovery (513) but isn't one of these three hits this final guard.
Source
Thrown at apps/daemon/src/memory-llm.ts:1031
);
parseStdout = (raw) => extractJsonEventText(def.eventParser || def.id, raw, def.name);
} else if (provider.agentId === 'opencode') {
// Deliver the prompt on stdin, matching the chat-run path
// (def.promptViaStdin). `opencode run`'s `-f, --file` is a yargs array
// option that greedily consumes every trailing non-flag token, so
// `--file <prompt-file> "<message>"` made OpenCode treat the message
// text as a second attachment and exit with "File not found". Bare
// `opencode run --format json` reads the message from stdin instead.
args = def.buildArgs(
'',
[],
[],
{ model: provider.model },
{ cwd },
);
parseStdout = (raw) => extractJsonEventText(def.eventParser || def.id, raw, def.name);
} else {
throw new Error(`Local CLI memory extraction is not supported for ${provider.agentId}`);
}
const env = applyAgentLaunchEnv(
spawnEnvForAgent(
def.id,
{ ...process.env, ...(def.env || {}) },
configuredAgentEnv,
undefined,
{ resolvedBin: launch.selectedPath },
),
launch,
);
const invocation = createCommandInvocation({
command: launch.launchPath,
args,
env,
});
View on GitHub (pinned to 5be4028344)
Solutions
- Set the memory extraction provider's agentId to 'claude', 'codex', or 'opencode'
- Alternatively, use an HTTP-based LLM provider (anthropic/openai/azure/google) for memory extraction instead of a local CLI agent
Example fix
// before — gemini is registered but not supported for memory extraction
provider = { agentId: 'gemini', model: '...' };
// after — use a supported agent
provider = { agentId: 'claude', model: '...' }; Defensive patterns
Strategy: validation
Validate before calling
const MEMORY_EXTRACTION_AGENTS = new Set(['claude', 'codex', 'opencode']);
function assertAgentSupportsMemoryExtraction(agentId) {
if (!MEMORY_EXTRACTION_AGENTS.has(agentId)) {
throw new Error(`Memory extraction via local CLI is only supported for: claude, codex, opencode. Received: ${agentId}`);
}
} Type guard
function supportsMemoryExtraction(agentId: string): agentId is 'claude' | 'codex' | 'opencode' {
return agentId === 'claude' || agentId === 'codex' || agentId === 'opencode';
} Prevention
- When configuring a local CLI memory provider, restrict agentId to claude, codex, or opencode
- For other agents, use HTTP-based LLM providers (anthropic/openai/azure/google) instead
- Document the supported agent set in the provider configuration UI
When it happens
Trigger: Provider configuration sets agentId to a registered agent that isn't supported for memory extraction — e.g. 'gemini', 'qwen', 'cursor-agent', 'deepseek', 'grok'.
Common situations: User selects a non-supported agent as the memory extraction provider; agent registry expanded with new agents but the memory extractor wasn't updated to handle them.
Related errors
- Local CLI agent "${provider.agentId}" is not installed
- ${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/d248d2598709f7e8.
Report an issue: GitHub.