dear claude for VS Code
io.github.sns45/dear-claude
Spawn Claude Code instances from 6 platforms when 'Dear Claude' is mentioned.
client:VS Code
transport:stdio
runtime:npm
Install dear claude in VS Code
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "dear-claude-port",
"description": "DEAR_CLAUDE_PORT",
"password": true
},
{
"type": "promptString",
"id": "dear-claude-host",
"description": "DEAR_CLAUDE_HOST",
"password": true
},
{
"type": "promptString",
"id": "dear-claude-data-dir",
"description": "DEAR_CLAUDE_DATA_DIR",
"password": true
},
{
"type": "promptString",
"id": "dear-claude-api-token",
"description": "DEAR_CLAUDE_API_TOKEN",
"password": true
},
{
"type": "promptString",
"id": "tailscale-hostname",
"description": "TAILSCALE_HOSTNAME",
"password": true
},
{
"type": "promptString",
"id": "github-client-id",
"description": "GITHUB_CLIENT_ID",
"password": true
},
{
"type": "promptString",
"id": "github-client-secret",
"description": "GITHUB_CLIENT_SECRET",
"password": true
},
{
"type": "promptString",
"id": "github-webhook-secret",
"description": "GITHUB_WEBHOOK_SECRET",
"password": true
},
{
"type": "promptString",
"id": "github-access-token",
"description": "GITHUB_ACCESS_TOKEN",
"password": true
},
{
"type": "promptString",
"id": "github-app-id",
"description": "GITHUB_APP_ID",
"password": true
},
{
"type": "promptString",
"id": "github-app-private-key-path",
"description": "GITHUB_APP_PRIVATE_KEY_PATH",
"password": true
},
{
"type": "promptString",
"id": "linear-client-id",
"description": "LINEAR_CLIENT_ID",
"password": true
},
{
"type": "promptString",
"id": "linear-client-secret",
"description": "LINEAR_CLIENT_SECRET",
"password": true
},
{
"type": "promptString",
"id": "linear-webhook-secret",
"description": "LINEAR_WEBHOOK_SECRET",
"password": true
},
{
"type": "promptString",
"id": "linear-access-token",
"description": "LINEAR_ACCESS_TOKEN",
"password": true
},
{
"type": "promptString",
"id": "jira-domain",
"description": "JIRA_DOMAIN",
"password": true
},
{
"type": "promptString",
"id": "jira-user-email",
"description": "JIRA_USER_EMAIL",
"password": true
},
{
"type": "promptString",
"id": "jira-api-token",
"description": "JIRA_API_TOKEN",
"password": true
},
{
"type": "promptString",
"id": "jira-webhook-secret",
"description": "JIRA_WEBHOOK_SECRET",
"password": true
},
{
"type": "promptString",
"id": "gitlab-access-token",
"description": "GITLAB_ACCESS_TOKEN",
"password": true
},
{
"type": "promptString",
"id": "gitlab-webhook-secret",
"description": "GITLAB_WEBHOOK_SECRET",
"password": true
},
{
"type": "promptString",
"id": "notion-client-id",
"description": "NOTION_CLIENT_ID",
"password": true
},
{
"type": "promptString",
"id": "notion-client-secret",
"description": "NOTION_CLIENT_SECRET",
"password": true
},
{
"type": "promptString",
"id": "notion-access-token",
"description": "NOTION_ACCESS_TOKEN",
"password": true
},
{
"type": "promptString",
"id": "notion-webhook-secret",
"description": "NOTION_WEBHOOK_SECRET",
"password": true
},
{
"type": "promptString",
"id": "obsidian-vault-path",
"description": "OBSIDIAN_VAULT_PATH",
"password": true
},
{
"type": "promptString",
"id": "giphy-api-key",
"description": "GIPHY_API_KEY",
"password": true
}
],
"servers": {
"dear-claude": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"dear-claude"
],
"env": {
"DEAR_CLAUDE_PORT": "${input:dear-claude-port}",
"DEAR_CLAUDE_HOST": "${input:dear-claude-host}",
"DEAR_CLAUDE_DATA_DIR": "${input:dear-claude-data-dir}",
"DEAR_CLAUDE_API_TOKEN": "${input:dear-claude-api-token}",
"TAILSCALE_HOSTNAME": "${input:tailscale-hostname}",
"GITHUB_CLIENT_ID": "${input:github-client-id}",
"GITHUB_CLIENT_SECRET": "${input:github-client-secret}",
"GITHUB_WEBHOOK_SECRET": "${input:github-webhook-secret}",
"GITHUB_ACCESS_TOKEN": "${input:github-access-token}",
"GITHUB_APP_ID": "${input:github-app-id}",
"GITHUB_APP_PRIVATE_KEY_PATH": "${input:github-app-private-key-path}",
"LINEAR_CLIENT_ID": "${input:linear-client-id}",
"LINEAR_CLIENT_SECRET": "${input:linear-client-secret}",
"LINEAR_WEBHOOK_SECRET": "${input:linear-webhook-secret}",
"LINEAR_ACCESS_TOKEN": "${input:linear-access-token}",
"JIRA_DOMAIN": "${input:jira-domain}",
"JIRA_USER_EMAIL": "${input:jira-user-email}",
"JIRA_API_TOKEN": "${input:jira-api-token}",
"JIRA_WEBHOOK_SECRET": "${input:jira-webhook-secret}",
"GITLAB_ACCESS_TOKEN": "${input:gitlab-access-token}",
"GITLAB_WEBHOOK_SECRET": "${input:gitlab-webhook-secret}",
"NOTION_CLIENT_ID": "${input:notion-client-id}",
"NOTION_CLIENT_SECRET": "${input:notion-client-secret}",
"NOTION_ACCESS_TOKEN": "${input:notion-access-token}",
"NOTION_WEBHOOK_SECRET": "${input:notion-webhook-secret}",
"OBSIDIAN_VAULT_PATH": "${input:obsidian-vault-path}",
"GIPHY_API_KEY": "${input:giphy-api-key}"
}
}
}
}
VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs