원클릭으로
add-backend
Scaffold a new LLM backend for multi-bark-pack
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Scaffold a new LLM backend for multi-bark-pack
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Create distinctive, production-grade frontend interfaces with high design quality
Software architect mode - focus on system design, patterns, scalability, and technical decisions
Debug mode - systematic debugging with hypothesis-driven investigation
Senior developer mode - focus on implementation, code quality, testing, and debugging
Product manager mode - focus on user experience, requirements, priorities, and value delivery
Code reviewer mode - thorough code review with focus on bugs, security, and maintainability
| name | add-backend |
| description | Scaffold a new LLM backend for multi-bark-pack |
| user-invocable | true |
Scaffold a new LLM agent backend for multi-bark-pack.
/add-backend cursor
/add-backend codex
/add-backend <backend-name>
Create backends/<name>.js:
/**
* <Name> CLI Backend
*/
const { execSync } = require('child_process');
const crypto = require('crypto');
const EXEC_OPTS = { encoding: 'utf8', timeout: 5000 };
module.exports = function create<Name>Backend(config = {}) {
return {
name: '<name>',
displayName: '<Display Name>',
async isInstalled() {
try {
execSync('which <cli-command>', EXEC_OPTS);
return true;
} catch {
return false;
}
},
async getVersion() {
try {
const output = execSync('<cli-command> --version', EXEC_OPTS);
return output.trim();
} catch {
return null;
}
},
models: ['model1', 'model2'],
defaultModel: 'model1',
validateModel(model) {
return this.models.includes(model);
},
canResume: true,
generateSessionId() {
return crypto.randomUUID();
},
buildCommand(opts) {
const { promptFile, sessionId, isResume, model, systemPromptFile, streamParserScript, agentId, tmpDir } = opts;
// Build CLI-specific command
let script = '#!/bin/bash\n';
script += `# TODO: Implement <name> CLI invocation\n`;
return { script, env: {} };
},
streamParserName: '<name>',
extractSessionId(output) {
return null;
},
capabilities: {
streaming: true,
sessionPersistence: true,
workingDirectory: true,
forceMode: true,
systemPrompt: true,
planning: true,
},
};
};
Create stream-parsers/<name>.js:
/**
* <Name> stream parser
*/
const TOOL_ICONS = {
// Map tool names to icons
};
module.exports = {
name: '<name>',
toolIcons: TOOL_ICONS,
parseLine(line) {
// Parse CLI output format
// Return: { type: 'text'|'tool'|'result', ... }
},
getToolIcon(name) {
return TOOL_ICONS[name] || '🔧';
},
};
In backends/index.js, add:
const create<Name>Backend = require('./<name>');
const backendFactories = {
'claude-code': createClaudeCodeBackend,
'<name>': create<Name>Backend, // Add this
};
In stream-parsers/index.js, add:
const <name>Parser = require('./<name>');
const parsers = {
claude: claudeParser,
'<name>': <name>Parser, // Add this
};
In .env.example, add:
ENABLED_BACKENDS=claude-code,<name>
node server.js
# In chat: /backends (should show new backend)
# Spawn a pup with new backend (once implemented)
backends/<name>.jsstream-parsers/<name>.jsbackends/index.jsstream-parsers/index.js