Skip to content
VS Code

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

dear claude in other clients