Commit Graph

83 Commits

Author SHA1 Message Date
672b8a8e31 feat: add configuration override in session create with --config/-c 2025-07-10 14:51:33 -06:00
da5937e708 feat: support config openai.url for goose/opencode/aider 2025-07-10 12:12:45 -06:00
4958b07401 fix: update readme 2025-07-10 11:30:39 -06:00
4c4e207b67 mathieu/add-opencode-persistent-config 2025-07-07 18:53:35 -06:00
dba7a7c1ef fix: claudecode and opencode arm64 images (#21) 2025-07-02 21:22:49 +00:00
9c8ddbb3f3 feat: add sudo and sudoers (#20)
* feat: add sudo and sudoers

* Update cubbi/images/cubbi_init.py

Co-authored-by: pr-agent-monadical[bot] <198624643+pr-agent-monadical[bot]@users.noreply.github.com>

---------

Co-authored-by: pr-agent-monadical[bot] <198624643+pr-agent-monadical[bot]@users.noreply.github.com>
2025-07-02 21:17:05 +00:00
Xavier Bouthillier
d750e64608 feat: add MCP tracking to sessions (#19)
Add mcps field to Session model to track active MCP servers and populate it from container labels in ContainerManager. Enhance MCP remove command to warn when removing servers used by active sessions.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-26 18:25:11 -04:00
Xavier Bouthillier
fc0d6b51af feat: implement Aider AI pair programming support (#17)
* feat: implement Aider AI pair programming support

  - Add comprehensive Aider Docker image with Python 3.12 and system pip installation
  - Implement aider_plugin.py for secure API key management and environment configuration
  - Support multiple LLM providers: OpenAI, Anthropic, DeepSeek, Gemini, OpenRouter
  - Add persistent configuration for ~/.aider/ and ~/.cache/aider/ directories
  - Create comprehensive documentation with usage examples and troubleshooting
  - Include automated test suite with 6 test categories covering all functionality
  - Update container.py to support DEEPSEEK_API_KEY and GEMINI_API_KEY
  - Integrate with Cubbi CLI for seamless session management

  🤖 Generated with [Claude Code](https://claude.ai/code)

  Co-Authored-By: Claude <noreply@anthropic.com>

* Fix pytest for aider

* Fix pre-commit

---------

Co-authored-by: Your Name <you@example.com>
2025-06-26 18:25:04 -04:00
Xavier Bouthillier
b28c2bd63e feat: add Claude Code image support (#16)
* feat: add Claude Code image support

Add a new Cubbi image for Claude Code (Anthropic's official CLI) with:
- Full Claude Code CLI functionality via NPM package
- Secure API key management with multiple authentication options
- Enterprise support (Bedrock, Vertex AI, proxy configuration)
- Persistent configuration and cache directories
- Comprehensive test suite and documentation

The image allows users to run Claude Code in containers with proper
isolation, persistent settings, and seamless Cubbi integration. It
gracefully handles missing API keys to allow flexible authentication.

Also adds optional Claude Code API keys to container.py for enterprise
deployments.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Pre-commit fixes

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Your Name <you@example.com>
2025-06-26 18:24:55 -04:00
e70ec3538b feat: add ripgrep and openssh-client in images (#15) 2025-06-24 19:05:30 -06:00
5fca51e515 feat: include new image opencode (#14)
* feat: include new image opencode

* docs: update readme
2025-06-20 02:09:12 +02:00
e5121ddea4 refactor: new image layout and organization (#13)
* refactor: rework how image are defined, in order to create others wrapper for others tools

* refactor: fix issues with ownership

* refactor: image share now information with others images type

* fix: update readme
2025-06-20 02:04:31 +02:00
github-actions
563e41f213 0.2.0
Automatically generated by python-semantic-release
v0.2.0
2025-05-21 17:32:50 +00:00
31e09bc7ba ci: try fixing the dynamic_import issue (2, force adding pyproject.toml) 2025-05-21 11:31:17 -06:00
252d8be735 ci: try fixing the dynamic_import issue 2025-05-21 11:25:05 -06:00
fbba8b7613 ci: add semantic release configuration (and use pyproject version) 2025-05-21 11:11:40 -06:00
75daccb366 feat(cubbix): add --no-shell in combination with --run to not drop a shell and exit when the command is done 2025-04-30 09:46:28 -06:00
e852fdd1fb doc: fix url 2025-04-25 00:17:28 +02:00
e34fc56df4 doc: remove .git of the clone url 2025-04-25 00:11:48 +02:00
ba852d502e docs: add information for uvx 2025-04-18 11:10:29 -06:00
15d86d25e7 docs: update README 2025-04-18 11:09:19 -06:00
5218bb1218 docs: update classifiers 2025-04-18 10:58:23 -06:00
13c896a58d docs: add mit license 2025-04-18 10:55:23 -06:00
github-actions
ea0d44f4db 0.1.0-rc.1
Automatically generated by python-semantic-release
v0.1.0-rc.1
2025-04-18 15:35:36 +00:00
3850bc3212 ci: add ci files (#11)
* ci: add ci files

* fix: add goose image build
2025-04-18 17:33:25 +02:00
12d77d0128 refactor: rename project to cubbi 2025-04-17 20:33:20 -06:00
51fb79baa3 refactor: rename driver to image, first pass 2025-04-17 17:33:51 -06:00
3799f04c13 fix: mcp tests 2025-04-13 18:30:02 -06:00
7fc9cfd8e1 fix: osx tests on volume 2025-04-13 18:20:33 -06:00
979b43846a refactor: reduce amount of data in session.yaml 2025-04-09 11:52:02 -06:00
4f54c0fbe7 fix: remove the "mc stop" meant to be in the container, but not implemented 2025-04-09 11:40:33 -06:00
3a182fd265 feat(project): explicitely add --project to save information in /mc-config across run.
Containers are now isolated by default.
2025-04-04 17:16:26 -06:00
2f9fd68cad feat(gemini): support for gemini model 2025-04-03 16:11:27 -06:00
e25e30e749 fix(uid): correctly pass uid/gid to project 2025-04-02 17:21:56 -06:00
b1aa415dde fix(goose): always update the file 2025-04-02 16:55:33 -06:00
5b9713dc2f feat(llm): add default model/provider to auto configure the driver (#7) 2025-04-03 00:11:53 +02:00
9e742b439b feat(goose): update config using uv script with pyyaml (#6) 2025-04-02 23:27:37 +02:00
cfa7dd647d fix(goose): ensure configuration is run as user 2025-04-01 19:37:58 -06:00
deff036406 fix(mcp): fix UnboundLocalError: cannot access local variable 'container_name' where it is not associated with a value 2025-04-01 19:00:34 -06:00
5678438661 feat(ssh): make SSH server optional with --ssh flag
- Added --ssh flag to session create command
- Modified mc-init.sh to check MC_SSH_ENABLED environment variable
- SSH server is now disabled by default
- Updated README.md with new flag example
- Fixed UnboundLocalError with container_name in exception handler
2025-04-01 18:58:06 -06:00
30c6b995cb chore: remove unnecessary output 2025-04-01 17:11:14 -06:00
f32b3dd269 fix(ssh): do not enable ssh automatically 2025-04-01 17:08:52 -06:00
a74251b119 fix(uid): use symlink instead of volume for persistent volume in the container 2025-04-01 17:01:25 -06:00
9c21611a7f docs: Prefer mcx alias in README examples 2025-04-01 09:54:16 -06:00
6b2c1ebf1c docs: Add --run option examples to README 2025-04-01 09:54:16 -06:00
33d90d0531 feat(run): add --run command 2025-04-01 09:54:16 -06:00
a51115a45d feat(mc): support for uid/gid, and use default current user 2025-04-01 09:54:16 -06:00
0d75bfc3d8 feat(mcp): ensure inner mcp environemnt variables are passed 2025-04-01 09:54:16 -06:00
7805aa720e feat(goose): auto add mcp server to goose configuration when starting a session 2025-03-25 23:48:08 +01:00
16f59b1c40 feat(goose): optimize init status 2025-03-25 23:20:19 +01:00