claudepod 1.1.2 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.devcontainer/.env +18 -0
- package/.devcontainer/CHANGELOG.md +68 -0
- package/.devcontainer/CLAUDE.md +100 -0
- package/.devcontainer/README.md +220 -0
- package/.devcontainer/config/main-system-prompt.md +118 -0
- package/.devcontainer/config/settings.json +41 -0
- package/.devcontainer/devcontainer.json +71 -113
- package/.devcontainer/features/README.md +113 -0
- package/.devcontainer/features/ast-grep/README.md +24 -0
- package/.devcontainer/features/ast-grep/devcontainer-feature.json +24 -0
- package/.devcontainer/features/ast-grep/install.sh +51 -0
- package/.devcontainer/features/ccstatusline/README.md +296 -0
- package/.devcontainer/features/ccstatusline/devcontainer-feature.json +19 -0
- package/.devcontainer/features/ccstatusline/install.sh +290 -0
- package/.devcontainer/features/ccusage/README.md +205 -0
- package/.devcontainer/features/ccusage/devcontainer-feature.json +38 -0
- package/.devcontainer/features/ccusage/install.sh +132 -0
- package/.devcontainer/features/claude-code/README.md +498 -0
- package/.devcontainer/features/claude-code/config/settings.json +36 -0
- package/.devcontainer/features/claude-code/config/system-prompt.md +118 -0
- package/.devcontainer/features/claude-code/config/world-building-sp.md +1432 -0
- package/.devcontainer/features/claude-code/devcontainer-feature.json +42 -0
- package/.devcontainer/features/claude-code/install.sh +466 -0
- package/.devcontainer/features/claude-monitor/README.md +74 -0
- package/.devcontainer/features/claude-monitor/devcontainer-feature.json +38 -0
- package/.devcontainer/features/claude-monitor/install.sh +99 -0
- package/.devcontainer/features/lsp-servers/README.md +85 -0
- package/.devcontainer/features/lsp-servers/devcontainer-feature.json +34 -0
- package/.devcontainer/features/lsp-servers/install.sh +92 -0
- package/.devcontainer/features/mcp-qdrant/CHANGES.md +399 -0
- package/.devcontainer/features/mcp-qdrant/README.md +474 -0
- package/.devcontainer/features/mcp-qdrant/devcontainer-feature.json +57 -0
- package/.devcontainer/features/mcp-qdrant/install.sh +295 -0
- package/.devcontainer/features/mcp-qdrant/poststart-hook.sh +129 -0
- package/.devcontainer/features/mcp-reasoner/README.md +177 -0
- package/.devcontainer/features/mcp-reasoner/devcontainer-feature.json +20 -0
- package/.devcontainer/features/mcp-reasoner/install.sh +177 -0
- package/.devcontainer/features/mcp-reasoner/poststart-hook.sh +67 -0
- package/.devcontainer/features/splitrail/README.md +140 -0
- package/.devcontainer/features/splitrail/devcontainer-feature.json +34 -0
- package/.devcontainer/features/splitrail/install.sh +129 -0
- package/.devcontainer/features/tree-sitter/README.md +138 -0
- package/.devcontainer/features/tree-sitter/devcontainer-feature.json +52 -0
- package/.devcontainer/features/tree-sitter/install.sh +173 -0
- package/.devcontainer/scripts/setup-aliases.sh +52 -0
- package/.devcontainer/scripts/setup-config.sh +28 -0
- package/.devcontainer/scripts/setup-irie-claude.sh +32 -0
- package/.devcontainer/scripts/setup-lsp.sh +20 -0
- package/.devcontainer/scripts/setup-plugins.sh +31 -0
- package/.devcontainer/scripts/setup.sh +60 -0
- package/README.md +153 -187
- package/package.json +6 -10
- package/setup.js +2 -2
- package/.devcontainer/config/claude/mcp.json +0 -76
- package/.devcontainer/config/claude/mcp.json.template +0 -117
- package/.devcontainer/config/claude/output-styles/strict-development.md +0 -158
- package/.devcontainer/config/claude/settings.json +0 -10
- package/.devcontainer/config/claude/system-prompt.md +0 -3
- package/.devcontainer/config/searxng/ods_config.json +0 -22
- package/.devcontainer/config/searxng/searxng_env_template +0 -71
- package/.devcontainer/config/serena/serena_config.yml +0 -72
- package/.devcontainer/config/taskmaster/config.json +0 -37
- package/.devcontainer/ods_config.json +0 -21
- package/.devcontainer/post-create.sh +0 -1077
- package/.devcontainer/post-start.sh +0 -551
- package/.devcontainer/sanitize-system-prompt.sh +0 -31
- package/.devcontainer/scripts/config/claude-core.sh +0 -210
- package/.devcontainer/scripts/config/searxng.sh +0 -411
- package/.devcontainer/scripts/config/serena.sh +0 -47
- package/.devcontainer/scripts/config/taskmaster.sh +0 -41
- package/.devcontainer/scripts/generate-mcp-config.js +0 -205
- package/.devcontainer/scripts/install/claude-code.sh +0 -112
- package/.devcontainer/scripts/shell/zsh-config.sh +0 -271
- package/.devcontainer/scripts/utils.sh +0 -44
- package/.devcontainer/setup-zsh.sh +0 -234
package/README.md
CHANGED
|
@@ -1,264 +1,230 @@
|
|
|
1
|
-
# ClaudePod
|
|
1
|
+
# ClaudePod DevContainer
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.gnu.org/licenses/gpl-3.0)
|
|
4
|
+
[](https://www.npmjs.com/package/claudepod)
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
A curated development environment optimized for AI-powered coding with Claude Code. ClaudePod comes pre-configured with language servers, code intelligence tools, and official Anthropic plugins to streamline your development workflow.
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
**8 MCP Servers** providing 100+ specialized tools for code analysis, documentation search, task management, and more
|
|
9
|
-
**Modern Stack** - Node.js 20, Python 3.13, Git with delta, GitHub CLI
|
|
10
|
-
**Smart Persistence** - Your Claude config, shell history, and npm cache survive container rebuilds
|
|
11
|
-
**Enhanced Terminal** - Powerlevel10k with quiet mode and useful git aliases
|
|
8
|
+
## Installation
|
|
12
9
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
### Using NPM Package
|
|
16
|
-
|
|
17
|
-
ClaudePod is available as an npm package at [npmjs.com/package/claudepod](https://www.npmjs.com/package/claudepod):
|
|
10
|
+
Add ClaudePod to any project:
|
|
18
11
|
|
|
19
12
|
```bash
|
|
20
|
-
# Drop into any project
|
|
21
|
-
cd your-project
|
|
22
13
|
npx claudepod
|
|
23
|
-
|
|
24
|
-
# Fire it up
|
|
25
|
-
devpod up .
|
|
26
|
-
devpod ssh <workspace-name> --ide vscode # <workspace-name> is usually your project folder name
|
|
27
|
-
|
|
28
|
-
# Start coding with Claude
|
|
29
|
-
claude
|
|
30
14
|
```
|
|
31
15
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
# Clone the repository
|
|
36
|
-
git clone https://github.com/AnExiledDev/ClaudePod.git
|
|
37
|
-
cd ClaudePod
|
|
16
|
+
This copies the `.devcontainer/` directory to your project. Then open in VS Code and select "Reopen in Container".
|
|
38
17
|
|
|
39
|
-
|
|
40
|
-
cp -r .devcontainer /path/to/your-project/
|
|
41
|
-
cd /path/to/your-project
|
|
18
|
+
## Prerequisites
|
|
42
19
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
20
|
+
- **Docker Desktop** (or compatible container runtime like Podman)
|
|
21
|
+
- **VS Code** with the [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers), or **GitHub Codespaces**
|
|
22
|
+
- **Claude Code authentication** - see [Authentication](#authentication) section
|
|
46
23
|
|
|
47
|
-
|
|
48
|
-
claude
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
That's it. No configuration files to edit, no API keys to hunt down. Everything works out of the box.
|
|
24
|
+
## Quick Start
|
|
52
25
|
|
|
53
|
-
|
|
26
|
+
1. **Open in Container**
|
|
27
|
+
- VS Code: Open the folder, then select "Reopen in Container" from the command palette
|
|
28
|
+
- Codespaces: Create a new codespace from this repository
|
|
54
29
|
|
|
55
|
-
|
|
30
|
+
2. **Authenticate** (first time only)
|
|
31
|
+
```bash
|
|
32
|
+
claude
|
|
33
|
+
```
|
|
34
|
+
Follow the prompts to authenticate via browser or API key.
|
|
56
35
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
- **ccusage** - Claude Code usage analytics and cost tracking
|
|
62
|
-
- **SearXNG Enhanced** - Web search with content scraping
|
|
63
|
-
- **GitHub MCP** - Complete GitHub API integration (API key required)
|
|
64
|
-
- **Tavily + Ref.Tools** - Web search and documentation tools (API keys required)
|
|
36
|
+
3. **Start Claude Code**
|
|
37
|
+
```bash
|
|
38
|
+
cc
|
|
39
|
+
```
|
|
65
40
|
|
|
66
|
-
|
|
41
|
+
## Authentication
|
|
67
42
|
|
|
68
|
-
|
|
43
|
+
Claude Code supports multiple authentication methods. On first run, you'll be prompted to choose:
|
|
69
44
|
|
|
70
|
-
|
|
71
|
-
- **VS Code** with Remote Development extensions
|
|
72
|
-
- That's literally it
|
|
45
|
+
### Browser Login (Recommended)
|
|
73
46
|
|
|
74
|
-
|
|
47
|
+
```bash
|
|
48
|
+
claude
|
|
49
|
+
```
|
|
75
50
|
|
|
76
|
-
|
|
77
|
-
**User**: node (1000:1000)
|
|
78
|
-
**Workspace**: `/workspace` (your project files)
|
|
79
|
-
**Persistent**: Claude config, shell history, npm cache
|
|
51
|
+
Select "Login with browser" and complete authentication in your browser. This uses your Claude.ai account.
|
|
80
52
|
|
|
81
|
-
|
|
53
|
+
### API Key
|
|
82
54
|
|
|
83
|
-
|
|
55
|
+
For programmatic access or environments without browsers:
|
|
84
56
|
|
|
85
57
|
```bash
|
|
86
|
-
|
|
58
|
+
export ANTHROPIC_API_KEY="sk-ant-..."
|
|
87
59
|
claude
|
|
60
|
+
```
|
|
88
61
|
|
|
89
|
-
|
|
90
|
-
gs # git status
|
|
91
|
-
gd # git diff
|
|
92
|
-
gc # git commit
|
|
93
|
-
gp # git push
|
|
94
|
-
gl # git log --oneline --graph
|
|
62
|
+
Get an API key from [console.anthropic.com](https://console.anthropic.com/).
|
|
95
63
|
|
|
96
|
-
|
|
97
|
-
uvx <package> # Run packages without installing
|
|
98
|
-
uv add <package> # Add dependencies
|
|
64
|
+
### Credential Persistence
|
|
99
65
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
66
|
+
Authentication credentials are stored in `/workspaces/.claude/` and persist across container rebuilds.
|
|
67
|
+
|
|
68
|
+
For more options, see the [Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code).
|
|
69
|
+
|
|
70
|
+
## GitHub CLI Authentication
|
|
103
71
|
|
|
104
|
-
|
|
72
|
+
GitHub CLI (`gh`) is pre-installed for repository operations like pushing code, creating pull requests, and accessing private repositories.
|
|
105
73
|
|
|
106
|
-
|
|
74
|
+
### Interactive Login (Recommended)
|
|
107
75
|
|
|
108
76
|
```bash
|
|
109
|
-
|
|
110
|
-
# Edit .devcontainer/.env with your keys
|
|
77
|
+
gh auth login
|
|
111
78
|
```
|
|
112
79
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
80
|
+
Follow the prompts:
|
|
81
|
+
1. Select **GitHub.com** (or your enterprise server)
|
|
82
|
+
2. Choose your preferred protocol: **HTTPS** (recommended) or **SSH**
|
|
83
|
+
3. Authenticate via **browser** (easiest) or paste a personal access token
|
|
116
84
|
|
|
117
|
-
|
|
118
|
-
TAVILY_API_KEY=tvly-your-key
|
|
85
|
+
### Token-Based Login
|
|
119
86
|
|
|
120
|
-
|
|
121
|
-
REF_TOOLS_API_KEY=your-key
|
|
122
|
-
```
|
|
87
|
+
For automated setups or environments without browser access:
|
|
123
88
|
|
|
124
|
-
|
|
89
|
+
```bash
|
|
90
|
+
# From a file
|
|
91
|
+
gh auth login --with-token < ~/github-token.txt
|
|
125
92
|
|
|
126
|
-
|
|
127
|
-
|
|
93
|
+
# From environment variable
|
|
94
|
+
echo "$GITHUB_TOKEN" | gh auth login --with-token
|
|
95
|
+
```
|
|
128
96
|
|
|
129
|
-
|
|
97
|
+
Generate a token at [github.com/settings/tokens](https://github.com/settings/tokens) with appropriate scopes (typically `repo`, `read:org`).
|
|
130
98
|
|
|
131
|
-
|
|
99
|
+
### Verifying Authentication
|
|
132
100
|
|
|
133
101
|
```bash
|
|
134
|
-
|
|
135
|
-
.devcontainer/config/claude/system-prompt.md
|
|
102
|
+
gh auth status
|
|
136
103
|
```
|
|
137
104
|
|
|
138
|
-
|
|
105
|
+
Expected output shows your authenticated account and token scopes.
|
|
139
106
|
|
|
140
|
-
|
|
107
|
+
### Credential Persistence
|
|
141
108
|
|
|
142
|
-
|
|
143
|
-
# Create custom output styles in Claude Code
|
|
144
|
-
/output-style:new I want an output style that focuses on performance optimization
|
|
145
|
-
```
|
|
109
|
+
GitHub CLI credentials are automatically persisted across container rebuilds. The container is configured to store credentials in `/workspaces/.gh/` (via `GH_CONFIG_DIR`), which is part of the bind-mounted workspace.
|
|
146
110
|
|
|
147
|
-
|
|
111
|
+
**You only need to authenticate once.** After running `gh auth login`, your credentials will survive container rebuilds and be available in future sessions.
|
|
148
112
|
|
|
149
|
-
|
|
113
|
+
## Available Tools
|
|
150
114
|
|
|
151
|
-
|
|
115
|
+
### Languages & Runtimes
|
|
116
|
+
| Tool | Description |
|
|
117
|
+
|------|-------------|
|
|
118
|
+
| Python 3.14 | Base language runtime |
|
|
119
|
+
| Node.js LTS | JavaScript runtime |
|
|
120
|
+
| TypeScript | Via Node.js |
|
|
152
121
|
|
|
153
|
-
|
|
122
|
+
### Package Managers
|
|
123
|
+
| Tool | Description |
|
|
124
|
+
|------|-------------|
|
|
125
|
+
| `uv` | Fast Python package manager (pip alternative) |
|
|
126
|
+
| `npm` | Node.js package manager |
|
|
127
|
+
| `pip` / `pipx` | Python package installers |
|
|
154
128
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
129
|
+
### Development Tools
|
|
130
|
+
| Tool | Description |
|
|
131
|
+
|------|-------------|
|
|
132
|
+
| `gh` | GitHub CLI for repository operations |
|
|
133
|
+
| `docker` | Container CLI (connects to host Docker) |
|
|
134
|
+
| `git` | Version control |
|
|
135
|
+
| `jq` | JSON processor |
|
|
136
|
+
| `curl` | HTTP client |
|
|
163
137
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
{
|
|
172
|
-
"containerEnv": {
|
|
173
|
-
"YOUR_API_KEY": "${localEnv:YOUR_API_KEY}"
|
|
174
|
-
},
|
|
175
|
-
"customizations": {
|
|
176
|
-
"vscode": {
|
|
177
|
-
"extensions": ["your.extension.id"]
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
"features": {
|
|
181
|
-
"ghcr.io/devcontainers/features/aws-cli:1": {}
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
```
|
|
138
|
+
### Code Intelligence
|
|
139
|
+
| Tool | Description |
|
|
140
|
+
|------|-------------|
|
|
141
|
+
| tree-sitter | AST parsing for JavaScript, TypeScript, Python |
|
|
142
|
+
| ast-grep | Structural code search and rewriting |
|
|
143
|
+
| Pyright | Python language server |
|
|
144
|
+
| TypeScript LSP | TypeScript/JavaScript language server |
|
|
185
145
|
|
|
186
|
-
|
|
146
|
+
### Claude Code Tools
|
|
147
|
+
| Tool | Description |
|
|
148
|
+
|------|-------------|
|
|
149
|
+
| `claude` | Claude Code CLI |
|
|
150
|
+
| `cc` | Wrapper with auto-configuration |
|
|
151
|
+
| `ccusage` | Token usage analyzer |
|
|
152
|
+
| `ccstatusline` | Status line for sessions |
|
|
153
|
+
| `claude-monitor` | Real-time usage tracking |
|
|
187
154
|
|
|
188
|
-
|
|
189
|
-
```bash
|
|
190
|
-
devpod delete <workspace> && devpod up . # <workspace> is your project folder name
|
|
191
|
-
# Don't worry - this preserves your ClaudePod configuration and project files
|
|
192
|
-
```
|
|
155
|
+
## Using Claude Code
|
|
193
156
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
157
|
+
### The `cc` Command
|
|
158
|
+
|
|
159
|
+
The `cc` command is a wrapper that:
|
|
160
|
+
- Creates a project-local `.claude/` directory if missing
|
|
161
|
+
- Copies default configuration files
|
|
162
|
+
- Launches Claude Code with the project's system prompt
|
|
198
163
|
|
|
199
|
-
**MCP servers missing?**
|
|
200
164
|
```bash
|
|
201
|
-
|
|
202
|
-
#
|
|
165
|
+
cc # Start Claude Code in current directory
|
|
166
|
+
cc "explain this" # Start with an initial prompt
|
|
203
167
|
```
|
|
204
168
|
|
|
205
|
-
|
|
169
|
+
### Direct CLI
|
|
170
|
+
|
|
171
|
+
For more control, use the `claude` command directly:
|
|
172
|
+
|
|
206
173
|
```bash
|
|
207
|
-
#
|
|
208
|
-
|
|
209
|
-
|
|
174
|
+
claude # Basic invocation
|
|
175
|
+
claude --help # View all options
|
|
176
|
+
claude --resume # Resume previous session
|
|
210
177
|
```
|
|
211
178
|
|
|
212
|
-
|
|
213
|
-
Look in `.devcontainer/config/backups/` - ClaudePod automatically backs up your configs before making changes.
|
|
179
|
+
## Configuration
|
|
214
180
|
|
|
215
|
-
|
|
181
|
+
### Environment Variables
|
|
216
182
|
|
|
217
|
-
|
|
218
|
-
1. **post-create.sh** - Installs Claude Code, dev tools, and creates base configurations
|
|
219
|
-
2. **post-start.sh** - Installs MCP servers and validates everything works
|
|
183
|
+
Edit `.devcontainer/.env` to customize behavior:
|
|
220
184
|
|
|
221
|
-
|
|
185
|
+
| Variable | Default | Description |
|
|
186
|
+
|----------|---------|-------------|
|
|
187
|
+
| `CLAUDE_CONFIG_DIR` | `/workspaces/.claude` | Claude configuration directory |
|
|
188
|
+
| `SETUP_CONFIG` | `true` | Copy config files during setup |
|
|
189
|
+
| `OVERWRITE_CONFIG` | `true` | Overwrite existing configs |
|
|
190
|
+
| `SETUP_ALIASES` | `true` | Add `cc` alias to shell |
|
|
191
|
+
| `SETUP_PLUGINS` | `true` | Install official plugins |
|
|
222
192
|
|
|
223
|
-
|
|
193
|
+
### Claude Code Settings
|
|
224
194
|
|
|
225
|
-
|
|
195
|
+
Default settings are in `.devcontainer/config/settings.json`. These are copied to `/workspaces/.claude/settings.json` on first run.
|
|
226
196
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
git add .devcontainer/ && git commit -m "Add ClaudePod"
|
|
197
|
+
Key defaults:
|
|
198
|
+
- **Model**: Claude Opus 4.5
|
|
199
|
+
- **Default mode**: Plan (prompts before executing)
|
|
200
|
+
- **Max output tokens**: 64,000
|
|
232
201
|
|
|
233
|
-
|
|
234
|
-
devpod up .
|
|
235
|
-
```
|
|
202
|
+
### System Prompt
|
|
236
203
|
|
|
237
|
-
|
|
204
|
+
The default system prompt is in `.devcontainer/config/main-system-prompt.md`. Override it by creating a `.claude/system-prompt.md` in your project directory.
|
|
238
205
|
|
|
239
|
-
##
|
|
206
|
+
## Custom Features
|
|
240
207
|
|
|
241
|
-
|
|
242
|
-
your-project/
|
|
243
|
-
├── .devcontainer/
|
|
244
|
-
│ ├── devcontainer.json # Main container config
|
|
245
|
-
│ ├── post-create.sh # Tool installation
|
|
246
|
-
│ ├── post-start.sh # MCP server setup
|
|
247
|
-
│ ├── .env.example # API key template
|
|
248
|
-
│ ├── config/
|
|
249
|
-
│ │ ├── claude/ # Claude Code templates
|
|
250
|
-
│ │ ├── serena/ # Serena config
|
|
251
|
-
│ │ └── taskmaster/ # TaskMaster config
|
|
252
|
-
│ └── scripts/ # Modular setup scripts
|
|
253
|
-
└── (your files stay exactly the same)
|
|
254
|
-
```
|
|
208
|
+
ClaudePod includes several custom devcontainer features:
|
|
255
209
|
|
|
256
|
-
|
|
210
|
+
| Feature | Description |
|
|
211
|
+
|---------|-------------|
|
|
212
|
+
| `claude-monitor` | Real-time token usage monitoring with ML predictions |
|
|
213
|
+
| `ccusage` | Usage analytics CLI |
|
|
214
|
+
| `ccstatusline` | Compact powerline status display |
|
|
215
|
+
| `ast-grep` | Structural code search using AST patterns |
|
|
216
|
+
| `tree-sitter` | Parser with JS/TS/Python grammars |
|
|
217
|
+
| `lsp-servers` | Pyright and TypeScript language servers |
|
|
257
218
|
|
|
258
|
-
|
|
219
|
+
## Essential Gotchas
|
|
259
220
|
|
|
260
|
-
|
|
221
|
+
- **Authentication required**: Run `claude` once to authenticate before using `cc`
|
|
222
|
+
- **Plan mode default**: The container starts in "plan" mode, which prompts for approval before making changes
|
|
223
|
+
- **Project-local config**: The `cc` command creates `.claude/` in your current directory for project-specific settings
|
|
224
|
+
- **GitHub auth persists**: Run `gh auth login` once; credentials survive container rebuilds (stored in `/workspaces/.gh/`)
|
|
261
225
|
|
|
262
|
-
|
|
226
|
+
## Further Reading
|
|
263
227
|
|
|
264
|
-
|
|
228
|
+
- [Claude Code Documentation](https://docs.anthropic.com/en/docs/claude-code)
|
|
229
|
+
- [Dev Containers Specification](https://containers.dev/)
|
|
230
|
+
- [GitHub CLI Manual](https://cli.github.com/manual/)
|
package/package.json
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claudepod",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Complete development container that sets up Claude Code with
|
|
3
|
+
"version": "1.2.2",
|
|
4
|
+
"description": "Complete development container that sets up Claude Code with modular devcontainer features, modern dev tools, and persistent configurations. Drop it into any project and get a production-ready AI development environment in minutes.",
|
|
5
5
|
"main": "setup.js",
|
|
6
6
|
"bin": {
|
|
7
|
-
"claudepod
|
|
7
|
+
"claudepod": "setup.js"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
|
-
"test": "node test.js"
|
|
11
|
-
"validate-mcp": "node .devcontainer/scripts/generate-mcp-config.js"
|
|
10
|
+
"test": "node test.js"
|
|
12
11
|
},
|
|
13
12
|
"keywords": [
|
|
14
13
|
"devcontainer",
|
|
@@ -21,8 +20,8 @@
|
|
|
21
20
|
"devpod",
|
|
22
21
|
"vscode",
|
|
23
22
|
"container",
|
|
24
|
-
"
|
|
25
|
-
"
|
|
23
|
+
"qdrant",
|
|
24
|
+
"reasoner",
|
|
26
25
|
"ai-development"
|
|
27
26
|
],
|
|
28
27
|
"author": "AnExiledDev",
|
|
@@ -42,8 +41,5 @@
|
|
|
42
41
|
"homepage": "https://github.com/AnExiledDev/ClaudePod#readme",
|
|
43
42
|
"bugs": {
|
|
44
43
|
"url": "https://github.com/AnExiledDev/ClaudePod/issues"
|
|
45
|
-
},
|
|
46
|
-
"dependencies": {
|
|
47
|
-
"dotenv": "^17.2.1"
|
|
48
44
|
}
|
|
49
45
|
}
|
package/setup.js
CHANGED
|
@@ -56,8 +56,8 @@ function main() {
|
|
|
56
56
|
console.log('');
|
|
57
57
|
console.log('📚 Features included:');
|
|
58
58
|
console.log(' • Claude Code CLI with optimized tool configuration');
|
|
59
|
-
console.log(' • MCP servers:
|
|
60
|
-
console.log(' • Development tools: Node.js
|
|
59
|
+
console.log(' • MCP servers: Qdrant (vector memory), Reasoner');
|
|
60
|
+
console.log(' • Development tools: Node.js LTS, Python 3.14, Git with delta');
|
|
61
61
|
console.log(' • Persistent configuration and shell history');
|
|
62
62
|
console.log('');
|
|
63
63
|
console.log('🔗 Documentation: See .devcontainer/README.md');
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"mcpServers": {
|
|
3
|
-
"serena": {
|
|
4
|
-
"command": "uvx",
|
|
5
|
-
"args": [
|
|
6
|
-
"--from",
|
|
7
|
-
"git+https://github.com/oraios/serena",
|
|
8
|
-
"serena",
|
|
9
|
-
"start-mcp-server",
|
|
10
|
-
"--context",
|
|
11
|
-
"ide-assistant",
|
|
12
|
-
"--project",
|
|
13
|
-
"/workspace",
|
|
14
|
-
"--enable-web-dashboard",
|
|
15
|
-
"false"
|
|
16
|
-
]
|
|
17
|
-
},
|
|
18
|
-
"deepwiki": {
|
|
19
|
-
"type": "http",
|
|
20
|
-
"url": "https://mcp.deepwiki.com/mcp"
|
|
21
|
-
},
|
|
22
|
-
"sequential-thinking": {
|
|
23
|
-
"command": "uvx",
|
|
24
|
-
"args": [
|
|
25
|
-
"--from",
|
|
26
|
-
"git+https://github.com/arben-adm/mcp-sequential-thinking.git",
|
|
27
|
-
"--with",
|
|
28
|
-
"portalocker",
|
|
29
|
-
"mcp-sequential-thinking"
|
|
30
|
-
]
|
|
31
|
-
},
|
|
32
|
-
"ccusage": {
|
|
33
|
-
"command": "ccusage",
|
|
34
|
-
"args": [
|
|
35
|
-
"mcp"
|
|
36
|
-
]
|
|
37
|
-
},
|
|
38
|
-
"searxng-enhanced": {
|
|
39
|
-
"command": "python3",
|
|
40
|
-
"args": [
|
|
41
|
-
"/usr/local/mcp-servers/searxng/mcp_server.py"
|
|
42
|
-
],
|
|
43
|
-
"env": {
|
|
44
|
-
"ODS_CONFIG_PATH": "/home/node/.claude/ods_config.json",
|
|
45
|
-
"SEARXNG_ENGINE_API_BASE_URL": "http://localhost:80/search"
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
"ref-tools": {
|
|
49
|
-
"type": "http",
|
|
50
|
-
"url": "https://api.ref.tools/mcp?apiKey=ref-23a0788cef18edde68af",
|
|
51
|
-
"env": {
|
|
52
|
-
"REF_TOOLS_API_KEY": "ref-23a0788cef18edde68af"
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
"github": {
|
|
56
|
-
"command": "docker",
|
|
57
|
-
"args": [
|
|
58
|
-
"run",
|
|
59
|
-
"--rm",
|
|
60
|
-
"-i",
|
|
61
|
-
"-e",
|
|
62
|
-
"GITHUB_PERSONAL_ACCESS_TOKEN=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",
|
|
63
|
-
"-e",
|
|
64
|
-
"GITHUB_API_URL=",
|
|
65
|
-
"-e",
|
|
66
|
-
"GITHUB_TOOLSET=",
|
|
67
|
-
"ghcr.io/github/github-mcp-server:latest"
|
|
68
|
-
],
|
|
69
|
-
"env": {
|
|
70
|
-
"GITHUB_PERSONAL_ACCESS_TOKEN": "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",
|
|
71
|
-
"GITHUB_API_URL": "",
|
|
72
|
-
"GITHUB_TOOLSET": ""
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"servers": {
|
|
3
|
-
"serena": {
|
|
4
|
-
"enabled": "${ENABLE_SERENA_MCP:-true}",
|
|
5
|
-
"config": {
|
|
6
|
-
"command": "uvx",
|
|
7
|
-
"args": [
|
|
8
|
-
"--from",
|
|
9
|
-
"git+https://github.com/oraios/serena",
|
|
10
|
-
"serena",
|
|
11
|
-
"start-mcp-server",
|
|
12
|
-
"--context",
|
|
13
|
-
"ide-assistant",
|
|
14
|
-
"--project",
|
|
15
|
-
"/workspace",
|
|
16
|
-
"--enable-web-dashboard",
|
|
17
|
-
"false"
|
|
18
|
-
]
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
"deepwiki": {
|
|
22
|
-
"enabled": "${ENABLE_DEEPWIKI_MCP:-true}",
|
|
23
|
-
"config": {
|
|
24
|
-
"type": "http",
|
|
25
|
-
"url": "https://mcp.deepwiki.com/mcp"
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"taskmaster-ai": {
|
|
29
|
-
"enabled": "${ENABLE_TASKMASTER_MCP:-true}",
|
|
30
|
-
"config": {
|
|
31
|
-
"command": "npx",
|
|
32
|
-
"args": [
|
|
33
|
-
"-y",
|
|
34
|
-
"--package=task-master-ai",
|
|
35
|
-
"task-master-ai"
|
|
36
|
-
]
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
"sequential-thinking": {
|
|
40
|
-
"enabled": "${ENABLE_SEQUENTIAL_THINKING_MCP:-true}",
|
|
41
|
-
"config": {
|
|
42
|
-
"command": "uvx",
|
|
43
|
-
"args": [
|
|
44
|
-
"--from",
|
|
45
|
-
"git+https://github.com/arben-adm/mcp-sequential-thinking.git",
|
|
46
|
-
"--with",
|
|
47
|
-
"portalocker",
|
|
48
|
-
"mcp-sequential-thinking"
|
|
49
|
-
]
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
"ccusage": {
|
|
53
|
-
"enabled": "${ENABLE_CCUSAGE_MCP:-true}",
|
|
54
|
-
"config": {
|
|
55
|
-
"command": "ccusage",
|
|
56
|
-
"args": ["mcp"]
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
"searxng-enhanced": {
|
|
60
|
-
"enabled": "${ENABLE_SEARXNG_ENHANCED_MCP:-true}",
|
|
61
|
-
"config": {
|
|
62
|
-
"command": "python3",
|
|
63
|
-
"args": ["/usr/local/mcp-servers/searxng/mcp_server.py"],
|
|
64
|
-
"env": {
|
|
65
|
-
"ODS_CONFIG_PATH": "${ODS_CONFIG_PATH:-/home/node/.claude/ods_config.json}",
|
|
66
|
-
"SEARXNG_ENGINE_API_BASE_URL": "${SEARXNG_ENGINE_API_BASE_URL:-http://localhost:80/search}"
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
"tavily-search": {
|
|
71
|
-
"enabled": "${ENABLE_TAVILY_MCP:-false}",
|
|
72
|
-
"requires": ["TAVILY_API_KEY"],
|
|
73
|
-
"config": {
|
|
74
|
-
"type": "http",
|
|
75
|
-
"url": "https://mcp.tavily.com/mcp/?tavilyApiKey=${TAVILY_API_KEY}",
|
|
76
|
-
"env": {
|
|
77
|
-
"TAVILY_API_KEY": "${TAVILY_API_KEY}"
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
"ref-tools": {
|
|
82
|
-
"enabled": "${ENABLE_REF_TOOLS_MCP:-false}",
|
|
83
|
-
"requires": ["REF_TOOLS_API_KEY"],
|
|
84
|
-
"config": {
|
|
85
|
-
"type": "http",
|
|
86
|
-
"url": "https://api.ref.tools/mcp?apiKey=${REF_TOOLS_API_KEY}",
|
|
87
|
-
"env": {
|
|
88
|
-
"REF_TOOLS_API_KEY": "${REF_TOOLS_API_KEY}"
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
"github": {
|
|
93
|
-
"enabled": "${ENABLE_GITHUB_MCP:-false}",
|
|
94
|
-
"requires": ["GITHUB_PERSONAL_ACCESS_TOKEN"],
|
|
95
|
-
"config": {
|
|
96
|
-
"command": "docker",
|
|
97
|
-
"args": [
|
|
98
|
-
"run",
|
|
99
|
-
"--rm",
|
|
100
|
-
"-i",
|
|
101
|
-
"-e",
|
|
102
|
-
"GITHUB_PERSONAL_ACCESS_TOKEN=${GITHUB_PERSONAL_ACCESS_TOKEN}",
|
|
103
|
-
"-e",
|
|
104
|
-
"GITHUB_API_URL=${GITHUB_API_URL}",
|
|
105
|
-
"-e",
|
|
106
|
-
"GITHUB_TOOLSET=${GITHUB_TOOLSET}",
|
|
107
|
-
"ghcr.io/github/github-mcp-server:latest"
|
|
108
|
-
],
|
|
109
|
-
"env": {
|
|
110
|
-
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}",
|
|
111
|
-
"GITHUB_API_URL": "${GITHUB_API_URL}",
|
|
112
|
-
"GITHUB_TOOLSET": "${GITHUB_TOOLSET}"
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|