Streamline documentation to focus on core functionality and conda
integration. Changes include:
- Clarify default design and conda environment usage
- Remove redundant workflow benefits section
- Simplify features list to focus on key capabilities
- Remove directory structure (available in repo)
- Add explicit push requirement in CLAUDE.md
- Update task completion requirements
This makes the documentation more focused and easier to understand while
emphasizing the project's integration with conda environments.
Added CLAUDE.md configuration section explaining the autonomous task
executor template and its usage with plan.md. Also documented the
task_log.md feature which captures execution details and insights.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Change git configuration to use Docker build args instead of .env file,
simplifying setup and improving security. This change:
- Removes git config from .env and startup.sh
- Adds GIT_USER_NAME and GIT_USER_EMAIL build args
- Updates documentation for new git config approach
- Improves task logging requirements in CLAUDE.md
The build arg approach provides better isolation and ensures git config is
properly set during image build rather than container runtime.
Add required git user configuration to enable commits from within the container.
This change ensures proper attribution of git commits made inside the container by:
- Adding GIT_USER_NAME and GIT_USER_EMAIL to .env.example
- Configuring git user globally during Docker build
- Adding documentation for git configuration requirements
- Updating README with clearer setup instructions and requirements
The configuration is now required as part of the initial setup to prevent
issues with unattributed commits when using git inside the container.
Add comprehensive prerequisites section with detailed authentication steps.
Include comparison table showing differences from Anthropic's DevContainer.
Enhance documentation structure with better formatting and examples.
Add attribution section crediting dependencies and inspirations.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
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"
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.
- 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.
- 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
- Add authentication persistence to features section
- Update configuration section with claude-home directory
- Clarify what files go where in the setup
- 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
- Update scratchpad with completed MVP status and Phase 2 roadmap
- Rewrite README with comprehensive setup instructions and feature overview
- Document next steps: firewall security and shell history persistence
- 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