Skip to content
This repository was archived by the owner on Apr 21, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/publish-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ on:

env:
REGISTRY: ghcr.io
IMAGE_NAME: boxlite-labs/claudebox-runtime
IMAGE_NAME: boxlite-ai/claudebox-runtime

jobs:
build-and-push:
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.PHONY: build-image publish-image install test lint format clean help

# Configuration
IMAGE := ghcr.io/boxlite-labs/claudebox-runtime
IMAGE := ghcr.io/boxlite-ai/claudebox-runtime
VERSION := $(shell grep 'version = ' pyproject.toml | head -1 | cut -d'"' -f2)

help:
Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ If you prefer containerized development:

```bash
# Pull the ClaudeBox runtime image
docker pull ghcr.io/boxlite-labs/claudebox-runtime:latest
docker pull ghcr.io/boxlite-ai/claudebox-runtime:latest

# Use with ClaudeBox Python API
python3 -c "from claudebox import ClaudeBox; print('Ready!')"
Expand Down
20 changes: 10 additions & 10 deletions docs/guides/templates.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ ClaudeBox provides **6 built-in templates**:

**Docker Image:**
```
ghcr.io/boxlite-labs/claudebox-runtime:latest
ghcr.io/boxlite-ai/claudebox-runtime:latest
```

**When to use:**
Expand Down Expand Up @@ -79,7 +79,7 @@ async def default_example():

**Docker Image:**
```
ghcr.io/boxlite-labs/claudebox-runtime:web-dev
ghcr.io/boxlite-ai/claudebox-runtime:web-dev
```

**When to use:**
Expand Down Expand Up @@ -130,7 +130,7 @@ await box.code("Create a full-stack app: React frontend + Express backend")

**Docker Image:**
```
ghcr.io/boxlite-labs/claudebox-runtime:data-science
ghcr.io/boxlite-ai/claudebox-runtime:data-science
```

**When to use:**
Expand Down Expand Up @@ -191,7 +191,7 @@ await box.code("Create Jupyter notebook for exploratory analysis")

**Docker Image:**
```
ghcr.io/boxlite-labs/claudebox-runtime:security
ghcr.io/boxlite-ai/claudebox-runtime:security
```

**When to use:**
Expand Down Expand Up @@ -246,7 +246,7 @@ await box.code("Decode base64-encoded flag from file")

**Docker Image:**
```
ghcr.io/boxlite-labs/claudebox-runtime:devops
ghcr.io/boxlite-ai/claudebox-runtime:devops
```

**When to use:**
Expand Down Expand Up @@ -300,7 +300,7 @@ await box.code("Create Ansible playbook to configure web servers")

**Docker Image:**
```
ghcr.io/boxlite-labs/claudebox-runtime:mobile
ghcr.io/boxlite-ai/claudebox-runtime:mobile
```

**When to use:**
Expand Down Expand Up @@ -438,7 +438,7 @@ async def main():
**1. Create Dockerfile:**
```dockerfile
# Start from ClaudeBox base
FROM ghcr.io/boxlite-labs/claudebox-runtime:latest
FROM ghcr.io/boxlite-ai/claudebox-runtime:latest

# Install custom tools
RUN apt-get update && apt-get install -y \
Expand Down Expand Up @@ -479,7 +479,7 @@ async def main():
### Example: Custom ML Research Template

```dockerfile
FROM ghcr.io/boxlite-labs/claudebox-runtime:data-science
FROM ghcr.io/boxlite-ai/claudebox-runtime:data-science

# Additional ML frameworks
RUN pip3 install \
Expand Down Expand Up @@ -664,13 +664,13 @@ for name, description in templates.items():

**Error:**
```
Error pulling image 'ghcr.io/boxlite-labs/claudebox-runtime:web-dev'
Error pulling image 'ghcr.io/boxlite-ai/claudebox-runtime:web-dev'
```

**Solution:**
```bash
# Pull image manually
docker pull ghcr.io/boxlite-labs/claudebox-runtime:web-dev
docker pull ghcr.io/boxlite-ai/claudebox-runtime:web-dev

# Verify image exists
docker images | grep claudebox
Expand Down
2 changes: 2 additions & 0 deletions examples/01_basic_usage.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"""

import asyncio
import logging

from claudebox import ClaudeBox

Expand Down Expand Up @@ -171,4 +172,5 @@ async def main():


if __name__ == "__main__":
logging.basicConfig(level=logging.DEBUG, format="%(name)s %(levelname)s %(message)s")
asyncio.run(main())
2 changes: 2 additions & 0 deletions examples/02_skills.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"""

import asyncio
import logging

from claudebox import (
API_SKILL,
Expand Down Expand Up @@ -293,4 +294,5 @@ async def main():


if __name__ == "__main__":
logging.basicConfig(level=logging.INFO, format="%(name)s %(levelname)s %(message)s")
asyncio.run(main())
10 changes: 6 additions & 4 deletions examples/03_templates.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"""

import asyncio
import logging

from claudebox import (
ClaudeBox,
Expand Down Expand Up @@ -144,7 +145,7 @@ async def example_template_string():
# You can use template string directly
async with ClaudeBox(
session_id="string-template",
template="ghcr.io/boxlite-labs/claudebox-runtime:latest",
template="ghcr.io/boxlite-ai/claudebox-runtime:latest",
) as box:
print(f"Using template string directly")
print(f" Box ID: {box.id}")
Expand All @@ -157,7 +158,7 @@ async def example_custom_image():
print("\n=== Example 9: Custom Docker Image ===")

# Use a completely custom image
custom_image = "ghcr.io/boxlite-labs/claudebox-runtime:latest"
custom_image = "ghcr.io/boxlite-ai/claudebox-runtime:latest"

async with ClaudeBox(
session_id="custom-image", image=custom_image
Expand All @@ -177,7 +178,7 @@ async def example_image_overrides_template():
async with ClaudeBox(
session_id="override-example",
template=SandboxTemplate.WEB_DEV, # This is ignored
image="ghcr.io/boxlite-labs/claudebox-runtime:latest", # This is used
image="ghcr.io/boxlite-ai/claudebox-runtime:latest", # This is used
) as box:
print(f"Image parameter takes priority over template")
print(f" Box ID: {box.id}")
Expand Down Expand Up @@ -207,7 +208,7 @@ async def example_get_template_image():
print(f" {web_dev_image}")

# Works with string too
ds_image = get_template_image("ghcr.io/boxlite-labs/claudebox-runtime:data-science")
ds_image = get_template_image("ghcr.io/boxlite-ai/claudebox-runtime:data-science")
print(f"\nData Science image URL:")
print(f" {ds_image}")

Expand Down Expand Up @@ -250,4 +251,5 @@ async def main():


if __name__ == "__main__":
logging.basicConfig(level=logging.INFO, format="%(name)s %(levelname)s %(message)s")
asyncio.run(main())
2 changes: 2 additions & 0 deletions examples/04_rl_rewards.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"""

import asyncio
import logging

from claudebox import (
BuiltinRewards,
Expand Down Expand Up @@ -393,4 +394,5 @@ async def main():


if __name__ == "__main__":
logging.basicConfig(level=logging.INFO, format="%(name)s %(levelname)s %(message)s")
asyncio.run(main())
2 changes: 2 additions & 0 deletions examples/05_security.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"""

import asyncio
import logging

from claudebox import (
READONLY_POLICY,
Expand Down Expand Up @@ -393,4 +394,5 @@ async def main():


if __name__ == "__main__":
logging.basicConfig(level=logging.INFO, format="%(name)s %(levelname)s %(message)s")
asyncio.run(main())
2 changes: 2 additions & 0 deletions examples/06_advanced.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"""

import asyncio
import logging

from claudebox import (
API_SKILL,
Expand Down Expand Up @@ -431,4 +432,5 @@ async def main():


if __name__ == "__main__":
logging.basicConfig(level=logging.INFO, format="%(name)s %(levelname)s %(message)s")
asyncio.run(main())
4 changes: 2 additions & 2 deletions examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -295,15 +295,15 @@ Complex workflows and production patterns:
8. **Template as String**
```python
async with ClaudeBox(
template="ghcr.io/boxlite-labs/claudebox-runtime:latest"
template="ghcr.io/boxlite-ai/claudebox-runtime:latest"
) as box:
...
```

9. **Custom Docker Images**
```python
async with ClaudeBox(
image="ghcr.io/boxlite-labs/claudebox-runtime:custom"
image="ghcr.io/boxlite-ai/claudebox-runtime:custom"
) as box:
...
```
Expand Down
2 changes: 2 additions & 0 deletions examples/computer_use.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"""

import asyncio
import logging

from claudebox import ClaudeBox

Expand All @@ -28,4 +29,5 @@ async def main():


if __name__ == "__main__":
logging.basicConfig(level=logging.INFO, format="%(name)s %(levelname)s %(message)s")
asyncio.run(main())
2 changes: 2 additions & 0 deletions examples/persistent_session.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"""

import asyncio
import logging

from claudebox import ClaudeBox

Expand Down Expand Up @@ -58,4 +59,5 @@ async def main():


if __name__ == "__main__":
logging.basicConfig(level=logging.INFO, format="%(name)s %(levelname)s %(message)s")
asyncio.run(main())
2 changes: 1 addition & 1 deletion image/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
set -e

VERSION=${1:-latest}
IMAGE="ghcr.io/boxlite-labs/claudebox-runtime"
IMAGE="ghcr.io/boxlite-ai/claudebox-runtime"

echo "Building $IMAGE:$VERSION..."
docker build -t "$IMAGE:$VERSION" .
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ classifiers = [
"Topic :: Scientific/Engineering :: Artificial Intelligence",
]
dependencies = [
"boxlite>=0.4.4",
"boxlite>=0.5.9",
]

[project.optional-dependencies]
Expand Down
Loading