EveryInc/compound-engineering-plugin · error · Error
Target ${targetName} is registered but not implemented yet.
Error message
Target ${targetName} is registered but not implemented yet. What it means
The `install` command looks up the requested target format in the central target registry (src/targets/index.ts). If the entry exists but its `implemented` flag is false, the command refuses to run it: the target is a registered placeholder whose converter/writer is not finished yet. This separates 'typo'd target name' (Unknown target) from 'known but not yet shipped'.
Source
Thrown at src/commands/install.ts:161
})
const writeScope =
tool.name === "opencode" ? resolveOpenCodeWriteScope(hasExplicitOutput, undefined) : undefined
await handler.write(root, bundle, writeScope)
console.log(`Installed ${plugin.manifest.name} to ${tool.name} at ${root}`)
}
if (activeTargets.some((t) => t.name === "codex")) {
await stripCodexAgentsToolMap(codexHome)
}
return
}
const target = targets[targetName]
if (!target) {
throw new Error(`Unknown target: ${targetName}`)
}
if (!target.implemented) {
throw new Error(`Target ${targetName} is registered but not implemented yet.`)
}
const resolvedScope = validateScope(targetName, target, args.scope ? String(args.scope) : undefined)
const bundle = target.convert(plugin, options)
if (!bundle) {
throw new Error(`Target ${targetName} did not return a bundle.`)
}
const primaryOutputRoot = resolveTargetOutputRoot({
targetName,
outputRoot,
codexHome,
piHome,
pluginName: plugin.manifest.name,
hasExplicitOutput,
scope: resolvedScope,
})
const effectiveScope =View on GitHub (pinned to c9c10f8c75)
Solutions
- Pick one of the implemented targets instead: opencode (default), codex, pi, or antigravity.
- Check `bun run src/index.ts install --help` (or the README) for the list of supported `--to` values in your installed version.
- If you need the unimplemented target, upgrade the CLI to a version where its handler is finished.
- If you maintain a fork, finish the target's convert/write implementation in src/targets/ and set `implemented: true`.
Example fix
// before bun run src/index.ts install my-plugin --to some-future-target // after bun run src/index.ts install my-plugin --to codex
Defensive patterns
Strategy: validation
Validate before calling
import { targets } from "../src/targets"
if (!targets[name]) throw new Error(`Unknown target: ${name}`)
if (!targets[name].implemented) console.warn(`Target ${name} is not implemented; falling back to opencode`) Type guard
function isImplementedTarget(name: string): name is keyof typeof targets & string {
const t = (targets as Record<string, { implemented?: boolean }>)[name]
return !!t && t.implemented === true
} Try / catch
try {
await install(plugin, { to: name })
} catch (e) {
if (e instanceof Error && e.message.includes("not implemented yet")) {
console.warn(`${name} unavailable; using opencode`)
await install(plugin, { to: "opencode" })
} else throw e
} Prevention
- Only pass target names documented as supported in your installed CLI version.
- Check `install --help` output for valid --to values before scripting.
- When scripting across versions, prefer the default opencode target unless you need a specific one.
When it happens
Trigger: Running `install --to <name>` (or `--also <name>`) where targets[<name>] exists with `implemented: false`. In the current tree all four targets (opencode, codex, pi, antigravity) are implemented, so this only fires on a checkout or version where a new target was registered as a stub, or on custom/local builds that add an unimplemented handler to the registry.
Common situations: Using a pre-release or main-branch CLI that just announced a new target provider; following a README or changelog that mentions a future `--to` value; a plugin author's custom fork with a placeholder target registered.
Related errors
- Cleanup currently supports only the compound-engineering plu
- Unknown cleanup target: ${target}. Use one of: ${cleanupTarg
- Local plugin path not found: ${directPath}
- Unknown bundled plugin: ${input}
- Unknown permissions mode: ${permissions}
AI-assisted analysis of EveryInc/compound-engineering-plugin@c9c10f8c75 (2026-08-31).
Data as JSON: /api/errors/d7286a401659d24c.
Report an issue: GitHub.