Official
claude
Claude Code agent provider: runs the Claude Code CLI headless for each account.
The app opens the listing; nothing installs until an agent in your Plugins workspace has read the files and you enable the plugin. In a terminal: cvg install convergence/claude@0.2.0
Permissions in 0.2.0
Files
models.ts1.9 KB
// The model list, `models.json` beside `plugin.json` (the Rust
// `models.rs`).
//
// The CLI's own list has only the few models its picker recommends, under
// names without versions ("Opus", "Opus (1M context)"). Like T3 Code, the
// plugin keeps its own list instead: every model the CLI accepts, named by
// version. A plugin update can add a model by editing the file.
import MANIFEST from "./models.json" with { type: "json" };
import { objectOf } from "./wire.ts";
export interface Model {
slug: string;
name: string;
context1m?: boolean;
aliases?: string[];
effort: string[];
}
/// The suffix that selects a model's 1M token context window.
export const CONTEXT_1M = "[1m]";
/// The `--model` value of a manifest entry.
export function modelValue(model: Model) {
return model.context1m ? `${model.slug}${CONTEXT_1M}` : model.slug;
}
/// Whether a CLI model id names this manifest entry.
export function modelMatches(model: Model, id: string) {
const bare = id.endsWith(CONTEXT_1M) ? id.slice(0, -CONTEXT_1M.length) : id;
return model.slug === bare || (model.aliases ?? []).includes(bare);
}
/// The manifest, read leniently: entries without a slug or a name are
/// left out.
export function parseManifest(raw: unknown) {
const value = objectOf(raw);
const models = (Array.isArray(value?.models) ? value.models : [])
.map(objectOf)
.filter((model) => typeof model?.slug === "string" && typeof model.name === "string")
.map((model) => ({
slug: String(model.slug),
name: String(model.name),
context1m: model.context1m === true,
aliases: Array.isArray(model.aliases) ? model.aliases.filter((alias) => typeof alias === "string") : [],
effort: Array.isArray(model.effort) ? model.effort.filter((level) => typeof level === "string") : [],
}));
return { default: typeof value?.default === "string" ? value.default : "", models };
}
export function manifest() {
return parseManifest(MANIFEST);
}Versions
| Version | Published | Plugin API | Size | Permissions | Status |
|---|---|---|---|---|---|
| 0.2.0latest | Oct 5, 2026 | >=2 <3 | 128.7 KB | 4 permissions | Listed |
No comments yet.