claudepod 1.1.1 → 1.2.1

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.
Files changed (76) hide show
  1. package/.devcontainer/.env +18 -0
  2. package/.devcontainer/CHANGELOG.md +68 -0
  3. package/.devcontainer/CLAUDE.md +100 -0
  4. package/.devcontainer/README.md +220 -0
  5. package/.devcontainer/config/main-system-prompt.md +118 -0
  6. package/.devcontainer/config/settings.json +41 -0
  7. package/.devcontainer/devcontainer.json +71 -113
  8. package/.devcontainer/features/README.md +113 -0
  9. package/.devcontainer/features/ast-grep/README.md +24 -0
  10. package/.devcontainer/features/ast-grep/devcontainer-feature.json +24 -0
  11. package/.devcontainer/features/ast-grep/install.sh +51 -0
  12. package/.devcontainer/features/ccstatusline/README.md +296 -0
  13. package/.devcontainer/features/ccstatusline/devcontainer-feature.json +19 -0
  14. package/.devcontainer/features/ccstatusline/install.sh +290 -0
  15. package/.devcontainer/features/ccusage/README.md +205 -0
  16. package/.devcontainer/features/ccusage/devcontainer-feature.json +38 -0
  17. package/.devcontainer/features/ccusage/install.sh +132 -0
  18. package/.devcontainer/features/claude-code/README.md +498 -0
  19. package/.devcontainer/features/claude-code/config/settings.json +36 -0
  20. package/.devcontainer/features/claude-code/config/system-prompt.md +118 -0
  21. package/.devcontainer/features/claude-code/config/world-building-sp.md +1432 -0
  22. package/.devcontainer/features/claude-code/devcontainer-feature.json +42 -0
  23. package/.devcontainer/features/claude-code/install.sh +466 -0
  24. package/.devcontainer/features/claude-monitor/README.md +74 -0
  25. package/.devcontainer/features/claude-monitor/devcontainer-feature.json +38 -0
  26. package/.devcontainer/features/claude-monitor/install.sh +99 -0
  27. package/.devcontainer/features/lsp-servers/README.md +85 -0
  28. package/.devcontainer/features/lsp-servers/devcontainer-feature.json +34 -0
  29. package/.devcontainer/features/lsp-servers/install.sh +92 -0
  30. package/.devcontainer/features/mcp-qdrant/CHANGES.md +399 -0
  31. package/.devcontainer/features/mcp-qdrant/README.md +474 -0
  32. package/.devcontainer/features/mcp-qdrant/devcontainer-feature.json +57 -0
  33. package/.devcontainer/features/mcp-qdrant/install.sh +295 -0
  34. package/.devcontainer/features/mcp-qdrant/poststart-hook.sh +129 -0
  35. package/.devcontainer/features/mcp-reasoner/README.md +177 -0
  36. package/.devcontainer/features/mcp-reasoner/devcontainer-feature.json +20 -0
  37. package/.devcontainer/features/mcp-reasoner/install.sh +177 -0
  38. package/.devcontainer/features/mcp-reasoner/poststart-hook.sh +67 -0
  39. package/.devcontainer/features/splitrail/README.md +140 -0
  40. package/.devcontainer/features/splitrail/devcontainer-feature.json +34 -0
  41. package/.devcontainer/features/splitrail/install.sh +129 -0
  42. package/.devcontainer/features/tree-sitter/README.md +138 -0
  43. package/.devcontainer/features/tree-sitter/devcontainer-feature.json +52 -0
  44. package/.devcontainer/features/tree-sitter/install.sh +173 -0
  45. package/.devcontainer/scripts/setup-aliases.sh +52 -0
  46. package/.devcontainer/scripts/setup-config.sh +28 -0
  47. package/.devcontainer/scripts/setup-irie-claude.sh +32 -0
  48. package/.devcontainer/scripts/setup-lsp.sh +20 -0
  49. package/.devcontainer/scripts/setup-plugins.sh +31 -0
  50. package/.devcontainer/scripts/setup.sh +60 -0
  51. package/README.md +163 -177
  52. package/package.json +5 -9
  53. package/setup.js +2 -2
  54. package/.devcontainer/config/claude/mcp.json +0 -77
  55. package/.devcontainer/config/claude/mcp.json.backup +0 -77
  56. package/.devcontainer/config/claude/mcp.json.template +0 -118
  57. package/.devcontainer/config/claude/output-styles/strict-development.md +0 -158
  58. package/.devcontainer/config/claude/settings.json +0 -10
  59. package/.devcontainer/config/claude/system-prompt.md +0 -3
  60. package/.devcontainer/config/searxng/ods_config.json +0 -16
  61. package/.devcontainer/config/searxng/searxng_env_template +0 -71
  62. package/.devcontainer/config/serena/serena_config.yml +0 -72
  63. package/.devcontainer/config/taskmaster/config.json +0 -37
  64. package/.devcontainer/ods_config.json +0 -21
  65. package/.devcontainer/post-create.sh +0 -1077
  66. package/.devcontainer/post-start.sh +0 -551
  67. package/.devcontainer/sanitize-system-prompt.sh +0 -31
  68. package/.devcontainer/scripts/config/claude-core.sh +0 -210
  69. package/.devcontainer/scripts/config/searxng.sh +0 -252
  70. package/.devcontainer/scripts/config/serena.sh +0 -47
  71. package/.devcontainer/scripts/config/taskmaster.sh +0 -41
  72. package/.devcontainer/scripts/generate-mcp-config.js +0 -205
  73. package/.devcontainer/scripts/install/claude-code.sh +0 -112
  74. package/.devcontainer/scripts/shell/zsh-config.sh +0 -271
  75. package/.devcontainer/scripts/utils.sh +0 -44
  76. package/.devcontainer/setup-zsh.sh +0 -234
@@ -1,113 +1,71 @@
1
- {
2
- "name": "ClaudePod Development Environment",
3
- "image": "mcr.microsoft.com/vscode/devcontainers/base:ubuntu-22.04",
4
-
5
- "features": {
6
- "ghcr.io/devcontainers/features/common-utils:2": {
7
- "installZsh": true,
8
- "installOhMyZsh": true,
9
- "username": "node",
10
- "uid": 1000,
11
- "gid": 1000,
12
- "upgradePackages": true
13
- },
14
- "ghcr.io/devcontainers/features/node:1": {
15
- "nodeGypDependencies": true,
16
- "version": "20"
17
- },
18
- "ghcr.io/devcontainers/features/python:1": {
19
- "version": "3.13",
20
- "installTools": true,
21
- "toolsToInstall": "flake8,autopep8,black,yapf,mypy,pydocstyle,pycodestyle,bandit,pipenv,virtualenv,pytest,pylint"
22
- },
23
- "ghcr.io/devcontainers/features/git:1": {
24
- "version": "latest",
25
- "ppa": false
26
- },
27
- "ghcr.io/devcontainers/features/github-cli:1": {
28
- "version": "latest"
29
- },
30
- "ghcr.io/devcontainers/features/docker-in-docker:2": {
31
- "version": "latest",
32
- "dockerDashComposeVersion": "v2"
33
- }
34
- },
35
-
36
- "containerEnv": {
37
- "CLAUDE_CONFIG_DIR": "/home/node/.claude",
38
- "DEVCONTAINER": "true",
39
- "TAVILY_API_KEY": "${localEnv:TAVILY_API_KEY}",
40
- "REF_TOOLS_API_KEY": "${localEnv:REF_TOOLS_API_KEY}",
41
- "GITHUB_PERSONAL_ACCESS_TOKEN": "${localEnv:GITHUB_PERSONAL_ACCESS_TOKEN}",
42
- "GITHUB_API_URL": "${localEnv:GITHUB_API_URL}",
43
- "GITHUB_TOOLSET": "${localEnv:GITHUB_TOOLSET}",
44
- "ENABLE_SEARXNG_LOCAL": "${localEnv:ENABLE_SEARXNG_LOCAL:-true}",
45
- "SEARXNG_LOCAL_INSTALL_DIR": "/opt/searxng-local"
46
- },
47
-
48
- "mounts": [
49
- "source=${localWorkspaceFolder}/.claude,target=/home/node/.claude,type=bind,consistency=cached",
50
- "source=${localWorkspaceFolder}/.serena,target=/home/node/.serena,type=bind,consistency=cached",
51
- "source=claudepod-bash-history,target=/home/node/.bash_history,type=volume",
52
- "source=claudepod-zsh-history,target=/home/node/.zsh_history,type=volume",
53
- "source=claudepod-npm-cache,target=/home/node/.npm,type=volume",
54
- "source=claudepod-npm-config,target=/home/node/.config,type=volume",
55
- "source=claudepod-npm-global,target=/home/node/.local,type=volume",
56
- "source=claudepod-searxng-local,target=/opt/searxng-local,type=volume"
57
- ],
58
-
59
- "postCreateCommand": "sudo -E /bin/bash .devcontainer/post-create.sh",
60
- "postStartCommand": "/bin/bash .devcontainer/post-start.sh",
61
-
62
- "forwardPorts": [],
63
- "portsAttributes": {
64
- "*": {
65
- "onAutoForward": "openBrowserOnce"
66
- }
67
- },
68
- "otherPortsAttributes": {
69
- "onAutoForward": "openBrowser"
70
- },
71
-
72
- "customizations": {
73
- "vscode": {
74
- "extensions": [
75
- "ms-vscode-remote.remote-containers",
76
- "ms-vscode-remote.remote-ssh",
77
- "ms-vscode-remote.remote-ssh-edit",
78
- "ms-vscode.remote-explorer",
79
- "ms-vscode-remote.vscode-remote-extensionpack",
80
- "ms-python.python",
81
- "ms-python.vscode-pylance",
82
- "dbaeumer.vscode-eslint",
83
- "esbenp.prettier-vscode",
84
- "GitHub.vscode-pull-request-github",
85
- "eamodio.gitlens"
86
- ],
87
- "settings": {
88
- "remote.SSH.defaultExtensions": [
89
- "ms-vscode-remote.remote-ssh-edit"
90
- ],
91
- "terminal.integrated.defaultProfile.linux": "zsh",
92
- "terminal.integrated.profiles.linux": {
93
- "zsh": {
94
- "path": "/usr/bin/zsh",
95
- "args": ["-l"]
96
- }
97
- },
98
- "terminal.integrated.shell.linux": "/usr/bin/zsh",
99
- "terminal.integrated.shellArgs.linux": ["-l"],
100
- "terminal.integrated.fontFamily": "MesloLGS NF, 'Courier New', monospace",
101
- "terminal.integrated.fontSize": 14
102
- }
103
- }
104
- },
105
-
106
- "remoteUser": "node",
107
- "containerUser": "node",
108
-
109
- "workspaceFolder": "/workspace",
110
- "workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=cached",
111
-
112
- "postAttachCommand": "sudo chown -R node:node /workspace"
113
- }
1
+ {
2
+ "name": "ClaudePod",
3
+ "image": "mcr.microsoft.com/devcontainers/python:3.14",
4
+
5
+ "workspaceFolder": "/workspaces",
6
+ "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces,type=bind",
7
+
8
+ "remoteEnv": {
9
+ "WORKSPACE_ROOT": "/workspaces",
10
+ "CLAUDE_CONFIG_DIR": "/workspaces/.claude",
11
+ "GH_CONFIG_DIR": "/workspaces/.gh"
12
+ },
13
+
14
+ "overrideFeatureInstallOrder": [
15
+ "ghcr.io/devcontainers/features/node",
16
+ "ghcr.io/devcontainers/features/github-cli",
17
+ "ghcr.io/devcontainers/features/docker-outside-of-docker",
18
+ "ghcr.io/devcontainers-extra/features/uv",
19
+ "ghcr.io/anthropics/devcontainer-features/claude-code",
20
+ "./features/claude-monitor",
21
+ "./features/ccusage",
22
+ "./features/ccstatusline",
23
+ "./features/ast-grep",
24
+ "./features/tree-sitter",
25
+ "./features/lsp-servers"
26
+ ],
27
+
28
+ "features": {
29
+ "ghcr.io/devcontainers/features/node:1": {
30
+ "version": "lts",
31
+ "nodeGypDependencies": true
32
+ },
33
+ "ghcr.io/devcontainers/features/github-cli:1": {},
34
+ "ghcr.io/devcontainers/features/docker-outside-of-docker:1":
35
+ {
36
+ "moby": false
37
+ },
38
+ "ghcr.io/devcontainers-extra/features/uv:1": {},
39
+ "ghcr.io/anthropics/devcontainer-features/claude-code:1": {},
40
+ "./features/ccusage": {
41
+ "version": "latest",
42
+ "shells": "both",
43
+ "username": "automatic"
44
+ },
45
+ "./features/claude-monitor": {
46
+ "version": "latest",
47
+ "installer": "uv",
48
+ "username": "automatic"
49
+ },
50
+ "./features/ccstatusline": {
51
+ "username": "automatic"
52
+ },
53
+ "./features/ast-grep": {},
54
+ "./features/tree-sitter": {},
55
+ "./features/lsp-servers": {}
56
+ },
57
+
58
+ "postStartCommand": "bash ${containerWorkspaceFolder}/.devcontainer/scripts/setup.sh",
59
+
60
+ "remoteUser": "vscode",
61
+ "containerUser": "vscode",
62
+
63
+ "customizations": {
64
+ "vscode": {
65
+ "settings": {
66
+ "terminal.integrated.defaultProfile.linux": "bash"
67
+ },
68
+ "extensions": []
69
+ }
70
+ }
71
+ }
@@ -0,0 +1,113 @@
1
+ # AgentPod DevContainer Features
2
+
3
+ This directory contains DevContainer Features for AI coding agent environments. These features follow the [DevContainer Features specification](https://containers.dev/implementors/features/) and can be published to OCI registries for distribution.
4
+
5
+ ## Available Features
6
+
7
+ ### mcp-qdrant
8
+ Vector database integration via Qdrant MCP server. Enables semantic search, embeddings management, and RAG workflows.
9
+
10
+ **Status**: ✅ Complete
11
+ **Documentation**: [mcp-qdrant/README.md](./mcp-qdrant/README.md)
12
+
13
+ ## Feature Structure
14
+
15
+ Each feature follows this structure:
16
+
17
+ ```
18
+ feature-name/
19
+ ├── devcontainer-feature.json # Feature metadata and options
20
+ ├── install.sh # Installation script (executable)
21
+ └── README.md # Feature documentation
22
+ ```
23
+
24
+ ## Development Workflow
25
+
26
+ ### Creating a New Feature
27
+
28
+ 1. **Create directory**: `mkdir features/feature-name`
29
+ 2. **Add metadata**: Create `devcontainer-feature.json`
30
+ 3. **Write installer**: Create `install.sh` (make executable)
31
+ 4. **Document**: Create `README.md`
32
+ 5. **Test locally**: Reference in devcontainer.json
33
+
34
+ ### Local Testing
35
+
36
+ To test a feature locally before publishing:
37
+
38
+ ```json
39
+ {
40
+ "features": {
41
+ "./features/feature-name": {
42
+ "option1": "value1"
43
+ }
44
+ }
45
+ }
46
+ ```
47
+
48
+ ### Publishing Features
49
+
50
+ Features will be published to GitHub Container Registry (GHCR):
51
+
52
+ ```
53
+ ghcr.io/yourorg/agentpod-features/feature-name:1
54
+ ```
55
+
56
+ **Publishing workflow** (future):
57
+ - Push to main branch
58
+ - GitHub Actions builds and publishes
59
+ - Tags create versioned releases
60
+
61
+ ## Feature Guidelines
62
+
63
+ ### Granularity
64
+ - **One feature = One tool/service**
65
+ - Bundle only if tools are always used together
66
+ - See [AGENTPOD_ARCHITECTURE.md](../../AGENTPOD_ARCHITECTURE.md) for guidance
67
+
68
+ ### Options
69
+ - Use clear, descriptive option names
70
+ - Provide sensible defaults
71
+ - Support environment variable substitution: `"${env:VAR}"`
72
+ - Document all options in README
73
+
74
+ ### Installation
75
+ - Must be idempotent (safe to run multiple times)
76
+ - Check if already installed before installing
77
+ - Use appropriate user (not always root)
78
+ - Clean up on failure
79
+
80
+ ### Configuration
81
+ - Generate necessary config files
82
+ - Provide helper scripts for manual setup
83
+ - Print clear installation summary
84
+ - Show next steps to user
85
+
86
+ ## Migration from Modules
87
+
88
+ ClaudePod modules are being converted to DevContainer Features:
89
+
90
+ | Old Module | New Feature | Status |
91
+ |-----------|-------------|---------|
92
+ | mcp_qdrant | mcp-qdrant | ✅ Complete |
93
+ | mcp_browser | mcp-browser | 🔜 Planned |
94
+ | mcp_sourcerer | mcp-sourcerer | 🔜 Planned |
95
+ | mcp_reasoner | mcp-reasoner | 🔜 Planned |
96
+ | mcp_obsidian | mcp-obsidian | 🔜 Planned |
97
+ | mcp_code_runner | mcp-code-runner | 🔜 Planned |
98
+
99
+ ## Resources
100
+
101
+ - [DevContainer Features Specification](https://containers.dev/implementors/features/)
102
+ - [Feature Authoring Guide](https://containers.dev/guide/author-a-feature)
103
+ - [Feature Best Practices](https://containers.dev/guide/feature-authoring-best-practices)
104
+ - [AgentPod Architecture](../../AGENTPOD_ARCHITECTURE.md)
105
+
106
+ ## Contributing
107
+
108
+ Features are part of the AgentPod project. See main repository for contribution guidelines.
109
+
110
+ ---
111
+
112
+ **Status**: Active Development
113
+ **Last Updated**: 2025-11-11
@@ -0,0 +1,24 @@
1
+ # ast-grep (Feature)
2
+
3
+ Installs [ast-grep](https://ast-grep.github.io/) CLI via npm for structural code search, lint, and rewriting using AST matching.
4
+
5
+ ## Usage
6
+
7
+ ```json
8
+ {
9
+ "features": {
10
+ "./features/ast-grep": {}
11
+ }
12
+ }
13
+ ```
14
+
15
+ ## Options
16
+
17
+ | Option | Type | Default | Description |
18
+ |--------|------|---------|-------------|
19
+ | `version` | string | `latest` | @ast-grep/cli npm package version |
20
+ | `username` | string | `automatic` | Container user to install for |
21
+
22
+ ## Dependencies
23
+
24
+ Requires Node.js: `ghcr.io/devcontainers/features/node:1`
@@ -0,0 +1,24 @@
1
+ {
2
+ "id": "ast-grep",
3
+ "version": "1.0.0",
4
+ "name": "ast-grep",
5
+ "description": "Installs ast-grep CLI for structural code search, lint, and rewriting using AST matching",
6
+ "maintainer": "AnExiledDev",
7
+ "documentationURL": "https://ast-grep.github.io/",
8
+ "options": {
9
+ "version": {
10
+ "type": "string",
11
+ "description": "@ast-grep/cli npm package version (e.g., 'latest', '0.31.1')",
12
+ "default": "latest"
13
+ },
14
+ "username": {
15
+ "type": "string",
16
+ "description": "Container user to install for",
17
+ "default": "automatic"
18
+ }
19
+ },
20
+ "installsAfter": [
21
+ "ghcr.io/devcontainers/features/common-utils:2",
22
+ "ghcr.io/devcontainers/features/node:1"
23
+ ]
24
+ }
@@ -0,0 +1,51 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ VERSION="${VERSION:-latest}"
5
+ USERNAME="${USERNAME:-automatic}"
6
+
7
+ echo "[ast-grep] Starting installation..."
8
+ echo "[ast-grep] Version: ${VERSION}"
9
+
10
+ # Source nvm if available
11
+ if [ -f /usr/local/share/nvm/nvm.sh ]; then
12
+ source /usr/local/share/nvm/nvm.sh
13
+ fi
14
+
15
+ # Validate npm is available
16
+ if ! command -v npm &>/dev/null; then
17
+ echo "[ast-grep] ERROR: npm not available"
18
+ echo " Ensure node feature is installed first"
19
+ exit 1
20
+ fi
21
+
22
+ # Detect user
23
+ if [ "${USERNAME}" = "auto" ] || [ "${USERNAME}" = "automatic" ]; then
24
+ if [ -n "${_REMOTE_USER:-}" ]; then
25
+ USERNAME="${_REMOTE_USER}"
26
+ elif getent passwd vscode >/dev/null 2>&1; then
27
+ USERNAME="vscode"
28
+ elif getent passwd node >/dev/null 2>&1; then
29
+ USERNAME="node"
30
+ elif getent passwd codespace >/dev/null 2>&1; then
31
+ USERNAME="codespace"
32
+ else
33
+ USERNAME="root"
34
+ fi
35
+ fi
36
+
37
+ echo "[ast-grep] Installing for user: ${USERNAME}"
38
+
39
+ # Install via npm
40
+ if [ "${VERSION}" = "latest" ]; then
41
+ NPM_PACKAGE="@ast-grep/cli"
42
+ else
43
+ NPM_PACKAGE="@ast-grep/cli@${VERSION}"
44
+ fi
45
+
46
+ npm install -g "${NPM_PACKAGE}" 2>/dev/null || {
47
+ echo "[ast-grep] WARNING: Global install failed, trying user install"
48
+ su - "${USERNAME}" -c "npm install -g ${NPM_PACKAGE}" 2>/dev/null || true
49
+ }
50
+
51
+ echo "[ast-grep] Installed: $(ast-grep --version 2>/dev/null || echo 'unknown')"