|
|
1 year ago | |
|---|---|---|
| .. | ||
| README.md | d4f15de199 Add API for other extensions to interact with Claude Dev | 1 year ago |
| claude-dev.d.ts | d4f15de199 Add API for other extensions to interact with Claude Dev | 1 year ago |
| index.ts | d4f15de199 Add API for other extensions to interact with Claude Dev | 1 year ago |
The Claude Dev extension exposes an API that can be used by other extensions. To use this API in your extension:
src/extension-api/claude-dev.d.ts to your extension's source directory.claude-dev.d.ts in your extension's compilation.Get access to the API with the following code:
const claudeDevExtension = vscode.extensions.getExtension<ClaudeDevAPI>("saoudrizwan.claude-dev")
if (!claudeDevExtension?.isActive) {
throw new Error("Claude Dev extension is not activated")
}
const claudeDev = claudeDevExtension.exports
if (claudeDev) {
// Now you can use the API
// Set custom instructions
await claudeDev.setCustomInstructions("Talk like a pirate")
// Get custom instructions
const instructions = await claudeDev.getCustomInstructions()
console.log("Current custom instructions:", instructions)
// Start a new task with an initial message
await claudeDev.startNewTask("Hello, Claude! Let's make a new project...")
// Start a new task with an initial message and images
await claudeDev.startNewTask("Use this design language", ["data:image/webp;base64,..."])
// Send a message to the current task
await claudeDev.sendMessage("Can you fix the @problems?")
// Simulate pressing the primary button in the chat interface (e.g. 'Save' or 'Proceed While Running')
await claudeDev.pressPrimaryButton()
// Simulate pressing the secondary button in the chat interface (e.g. 'Reject')
await claudeDev.pressSecondaryButton()
} else {
console.error("Claude Dev API is not available")
}
Note: To ensure that the saoudrizwan.claude-dev extension is activated before your extension, add it to the extensionDependencies in your package.json:
"extensionDependencies": [
"saoudrizwan.claude-dev"
]
For detailed information on the available methods and their usage, refer to the claude-dev.d.ts file.