Skip to content

Commit adca993

Browse files
committed
refactor: rename driver to image, first pass
1 parent 95b195d commit adca993

27 files changed

+289
-305
lines changed

CLAUDE.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@
55
# Install dependencies using uv (Astral)
66
uv sync
77

8-
# Run MC service
9-
uv run -m mcontainer.service
10-
118
# Run MC CLI
129
uv run -m mcontainer.cli
1310
```

README.md

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ mc --help
3838
# Show help message (displays available commands)
3939
mc
4040

41-
# Create a new session with the default driver (using mcx alias)
41+
# Create a new session with the default image (using mcx alias)
4242
mcx
4343

4444
# Create a session and run an initial command before the shell starts
@@ -53,8 +53,8 @@ mc session connect SESSION_ID
5353
# Close a session when done
5454
mc session close SESSION_ID
5555

56-
# Create a session with a specific driver
57-
mcx --driver goose
56+
# Create a session with a specific image
57+
mcx --image goose
5858

5959
# Create a session with environment variables
6060
mcx -e VAR1=value1 -e VAR2=value2
@@ -92,33 +92,34 @@ mcx . --run "apt-get update && apt-get install -y my-package"
9292
mcx --ssh
9393
```
9494

95-
## Driver Management
95+
## Image Management
9696

97-
MC includes a driver management system that allows you to build, manage, and use Docker images for different AI tools:
97+
MC includes a image management system that allows you to build, manage, and use Docker images for different AI tools:
9898

9999
```bash
100-
# List available drivers
101-
mc driver list
100+
# List available images
101+
mc image list
102102

103-
# Get detailed information about a driver
104-
mc driver info goose
103+
# Get detailed information about an image
104+
mc image info goose
105105

106-
# Build a driver image
107-
mc driver build goose
106+
# Build an image
107+
mc image build goose
108108

109-
# Build and push a driver image
110-
mc driver build goose --push
109+
# Build and push an image
110+
mc image build goose --push
111111
```
112112

113-
Drivers are defined in the `mcontainer/drivers/` directory, with each subdirectory containing:
113+
Images are defined in the `mcontainer/images/` directory, with each subdirectory containing:
114114

115115
- `Dockerfile`: Docker image definition
116116
- `entrypoint.sh`: Container entrypoint script
117117
- `mc-init.sh`: Standardized initialization script
118-
- `mc-driver.yaml`: Driver metadata and configuration
119-
- `README.md`: Driver documentation
118+
- `mc-image.yaml`: Image metadata and configuration
119+
- `README.md`: Image documentation
120120

121-
MC automatically discovers and loads driver definitions from the YAML files.
121+
MC automatically discovers and loads image definitions from the YAML files.
122+
```
122123
123124
## Development
124125

docs/specs/1_SPECIFICATIONS.md

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Docker-in-Docker (DinD) environment.
2828

2929
1. **CLI Tool (`mc`)**: The command-line interface users interact with
3030
2. **MC Service**: A web service that handles remote container execution
31-
3. **Container Drivers**: Predefined container templates for various AI tools
31+
3. **Container Images**: Predefined container templates for various AI tools
3232

3333
### Architecture Diagram
3434

@@ -61,8 +61,8 @@ Docker-in-Docker (DinD) environment.
6161

6262
## Core Concepts
6363

64-
- **Session**: An active container instance with a specific driver
65-
- **Driver**: A predefined container template with specific AI tools installed
64+
- **Session**: An active container instance with a specific image
65+
- **Image**: A predefined container template with specific AI tools installed
6666
- **Remote**: A configured MC service instance
6767

6868
## User Configuration
@@ -74,7 +74,7 @@ MC supports user-specific configuration via a YAML file located at `~/.config/mc
7474
```yaml
7575
# ~/.config/mc/config.yaml
7676
defaults:
77-
driver: "goose" # Default driver to use
77+
image: "goose" # Default image to use
7878
connect: true # Automatically connect after creating session
7979
mount_local: true # Mount local directory by default
8080
networks: [] # Default networks to connect to (besides mc-network)
@@ -177,11 +177,11 @@ mc session list
177177
# Create a new session locally
178178
mc session create [OPTIONS]
179179
180-
# Create a session with a specific driver
181-
mc session create --driver goose
180+
# Create a session with a specific image
181+
mc session create --image goose
182182
183183
# Create a session with a specific project repository
184-
mc session create --driver goose --project github.com/hello/private
184+
mc session create --image goose --project github.com/hello/private
185185
186186
# Create a session with external networks
187187
mc session create --network teamnet --network othernetwork
@@ -289,11 +289,11 @@ POST /sessions/{id}/connect - Establish connection to session
289289
GET /sessions/{id}/logs - Stream session logs
290290
```
291291
292-
#### Drivers
292+
#### Images
293293
294294
```
295-
GET /drivers - List available drivers
296-
GET /drivers/{name} - Get driver details
295+
GET /images - List available images
296+
GET /images/{name} - Get image details
297297
```
298298
299299
#### Projects
@@ -332,7 +332,7 @@ logging:
332332
public_key: ${LANGFUSE_INIT_PROJECT_PUBLIC_KEY}
333333
secret_key: ${LANGFUSE_INIT_PROJECT_SECRET_KEY}
334334
335-
drivers:
335+
images:
336336
- name: goose
337337
image: monadical/mc-goose:latest
338338
- name: aider
@@ -385,10 +385,10 @@ MC provides persistent storage for project-specific configurations that need to
385385
- For local projects, the hash is derived from the absolute path of the local directory
386386
- This directory is mounted into the container at `/mc-config`
387387

388-
2. **Driver Configuration**:
389-
- Each driver can specify configuration files/directories that should persist across sessions
390-
- These are defined in the driver's `mc-driver.yaml` file in the `persistent_configs` section
391-
- Example for Goose driver:
388+
2. **Image Configuration**:
389+
- Each image can specify configuration files/directories that should persist across sessions
390+
- These are defined in the image's `mc-image.yaml` file in the `persistent_configs` section
391+
- Example for Goose image:
392392
```yaml
393393
persistent_configs:
394394
- source: "/app/.goose" # Path in container
@@ -407,7 +407,7 @@ MC provides persistent storage for project-specific configurations that need to
407407
- Container has access to configuration location via environment variables:
408408
```
409409
MC_CONFIG_DIR=/mc-config
410-
MC_DRIVER_CONFIG_DIR=/mc-config/<driver-name>
410+
MC_IMAGE_CONFIG_DIR=/mc-config/<image-name>
411411
```
412412

413413
This ensures that important configurations like Goose's memory store, authentication tokens, and other state information persist between container sessions while maintaining isolation between different projects.
@@ -448,25 +448,24 @@ auth:
448448
public_key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI...
449449
```
450450

451-
## Driver Implementation
451+
## Image Implementation
452452

453-
### Driver Structure
453+
### Image Structure
454454

455-
Each driver is a Docker image with a standardized structure:
455+
Each image is a Docker container with a standardized structure:
456456

457457
```
458458
/
459459
├── entrypoint.sh # Container initialization
460460
├── mc-init.sh # Standardized initialization script
461-
├── mc-driver.yaml # Driver metadata and configuration
461+
├── mc-image.yaml # Image metadata and configuration
462462
├── tool/ # AI tool installation
463463
└── ssh/ # SSH server configuration
464464
```
465465

466466
### Standardized Initialization Script
467467

468-
All drivers include a standardized `mc-init.sh` script that handles common initialization tasks:
469-
468+
All images include a standardized `mc-init.sh` script that handles common initialization tasks:
470469
```bash
471470
#!/bin/bash
472471
@@ -498,10 +497,10 @@ if [ -n "$MC_PROJECT_URL" ]; then
498497
fi
499498
fi
500499
501-
# Driver-specific initialization continues...
500+
# Image-specific initialization continues...
502501
```
503502

504-
### Driver Configuration (mc-driver.yaml)
503+
### Image Configuration (mc-image.yaml)
505504

506505
```yaml
507506
name: goose
@@ -558,7 +557,7 @@ persistent_configs:
558557
description: "Goose memory and configuration"
559558
```
560559

561-
### Example Built-in Drivers
560+
### Example Built-in images
562561

563562
1. **goose**: Goose with MCP servers
564563
2. **aider**: Aider coding assistant
@@ -677,7 +676,7 @@ networks:
677676
2. **Phase 2**: MC Service REST API with basic container management
678677
3. **Phase 3**: Authentication and secure connections
679678
4. **Phase 4**: Project management functionality
680-
5. **Phase 5**: Driver implementation (Goose, Aider, Claude Code)
679+
5. **Phase 5**: Image implementation (Goose, Aider, Claude Code)
681680
6. **Phase 6**: Logging integration with Fluentd and Langfuse
682681
7. **Phase 7**: CLI remote connectivity improvements
683-
8. **Phase 8**: Additional drivers and extensibility features
682+
8. **Phase 8**: Additional images and extensibility features

docs/specs/2_MCP_SERVER.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
This document specifies the implementation for Model Control Protocol (MCP) server support in the Monadical Container (MC) system. The MCP server feature allows users to connect, build, and manage external MCP servers that can be attached to MC sessions.
66

7-
An MCP server is a service that can be accessed by a driver (such as Goose or Claude Code) to extend the LLM's capabilities through tool calls. It can be either:
7+
An MCP server is a service that can be accessed by a image (such as Goose or Claude Code) to extend the LLM's capabilities through tool calls. It can be either:
88
- A local stdio-based MCP server running in a container (accessed via an SSE proxy)
99
- A remote HTTP SSE server accessed directly via its URL
1010

@@ -157,4 +157,4 @@ When a session is created with an MCP server:
157157
1. Support for MCP server version management
158158
2. Health checking and automatic restart capabilities
159159
3. Support for MCP server clusters or load balancing
160-
4. Integration with monitoring systems
160+
4. Integration with monitoring systems

0 commit comments

Comments
 (0)