Commit Graph

11 Commits

Author SHA1 Message Date
Vishal Jain
bbce5b2928 Fix CLAUDE.md copy during Docker build
Copy CLAUDE.md directly to final location instead of using /tmp
intermediate step. This ensures the COPY fails loudly if there's
an issue and simplifies the build process.
2025-06-18 12:23:40 +01:00
Vishal Jain
93d58eca27 Remove redundant settings.local.json template
The MCP configuration is already handled by the Dockerfile using
claude mcp add-json command. The template file was unnecessary and
could cause confusion.
2025-06-18 11:48:23 +01:00
Vishal Jain
4b314324b2 Fix CLAUDE.md template copy order
Copy CLAUDE.md after auth files to prevent it from being overwritten.
Ensures the project instructions are always available in Claude sessions.
2025-06-18 01:47:17 +01:00
Vishal Jain
2fc876b0a1 Copy CLAUDE.md template to container's ~/.claude directory
Ensures Claude Code sessions automatically read the project instructions
including conda usage, SMS notifications, and context persistence guidelines.
2025-06-18 01:43:21 +01:00
Vishal Jain
066233b03c Add modular system package installation support
Implemented SYSTEM_PACKAGES environment variable for flexible system library installation:

Key Features:
- Users specify packages in .env: SYSTEM_PACKAGES="libopenslide0 libgdal-dev"
- Packages installed during Docker build (secure, no runtime mounting)
- Automatic rebuild detection when packages change
- Documentation with common scientific computing packages

Technical Implementation:
- ARG SYSTEM_PACKAGES in Dockerfile with conditional apt-get install
- Build argument passed from claude-docker.sh script
- Clean package management with cache cleanup

Benefits:
- Secure: No system directory mounting required
- Flexible: Users choose exactly what they need
- Documented: Common packages listed in README
- Clean: Packages baked into image, not mounted at runtime

Tested successfully with OpenSlide: conda run -n prism python -c "import openslide"
2025-06-18 01:21:25 +01:00
Vishal Jain
7cd765b756 Implement zero-friction authentication persistence with MCP user scope
Major breakthrough solving the authentication chicken-and-egg problem:

Key Changes:
- Copy ~/.claude.json and ~/.claude/ during Docker build for baked-in auth
- Add -s user flag to claude mcp add-json for persistent MCP servers
- Simplify rebuild logic to prevent unnecessary rebuilds
- Update documentation with rebuild instructions

Technical Details:
- Authentication files placed before USER switch in Dockerfile
- MCP configuration now persists across all sessions
- Rebuild only occurs when image doesn't exist
- Clean separation of build vs runtime concerns

Result: Users authenticate once on host, then zero login prompts forever.
SMS notifications ready immediately on container start.
2025-06-17 22:27:11 +01:00
Vishal Jain
d9bf0f4b53 Switch to simplified Twilio MCP integration using @yiyang.1i/sms-mcp-server
- Replace API Key/Secret auth with Account SID/Auth Token
- Configure MCP during Docker build instead of runtime
- Remove mcp-config.json and config directory
- Simplify startup script by removing MCP configuration logic
- Update documentation and test scripts for new auth method

The MCP server is now configured directly in the Dockerfile using
'claude mcp add-json' command, making the setup more reliable and
eliminating runtime configuration complexity.
2025-06-17 21:48:00 +01:00
Vishal Jain
6cb57c9dc6 Fix Twilio MCP integration with baked-in credentials
- Add proper type and env sections to mcp-config.json
- Remove dynamic MCP add command, use pre-configured MCP
- Bake .env credentials into Docker image at build time
- Remove runtime .env volume mount - true one-time setup
- Auto-rebuild image when .env file changes
- Export Twilio env vars for MCP server subprocess
- Remove conflicting .mcp.json file
2025-06-13 09:53:43 +01:00
Vishal Jain
dcc936dc10 Implement authentication persistence for Claude Docker
- Add persistent volume mount for Claude home directory (~/.claude)
- Create non-root user in Docker container for better security
- Mount host ~/.claude-docker/claude-home to container ~/.claude
- Update install script to create claude-home directory
- Check for existing credentials on startup
- Authentication tokens now persist across container restarts
2025-06-12 14:09:10 +01:00
Vishal Jain
7c14a75afc Fix Docker startup issues
- Change executable from claude-code to claude in startup.sh
- Fix .env parsing to handle comments using set -a/source
- Add explicit PATH for npm global binaries in Dockerfile
- Update scratchpad.md with fix documentation
2025-06-12 11:10:32 +01:00
Vishal Jain
23524659e8 Initial commit: Claude Docker setup
- Dockerfile with Claude Code and Twilio MCP integration
- Wrapper script for easy invocation from anywhere
- Auto-setup of .claude directory in projects
- SMS notifications via Twilio when tasks complete
- Installation script for zshrc alias
- Full autonomous permissions with --dangerously-skip-permissions
- Context persistence via scratchpad.md
2025-06-11 10:29:15 +01:00