From aab1a02457d22adf47a504379545fa728d1343e2 Mon Sep 17 00:00:00 2001 From: Mavdol Date: Wed, 22 Apr 2026 20:10:14 +0200 Subject: [PATCH 1/6] add dark/light mode logo support and update project documentation --- README.md | 18 ++++++++++-------- assets/logo-dark-mode.png | Bin 0 -> 48842 bytes assets/logo-light-mode.png | Bin 0 -> 33310 bytes 3 files changed, 10 insertions(+), 8 deletions(-) create mode 100644 assets/logo-dark-mode.png create mode 100644 assets/logo-light-mode.png diff --git a/README.md b/README.md index b04c95f..c004639 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,12 @@
-# `Capsule` + + + + Capsule + -**A secure, durable runtime for AI agents** +# `Capsule` [![CI](https://github.com/mavdol/capsule/actions/workflows/ci.yml/badge.svg)](https://github.com/mavdol/capsule/actions/workflows/ci.yml) @@ -14,16 +18,14 @@ ## Overview -```Capsule``` is a runtime for coordinating AI agent tasks in isolated environments. It is designed to handle untrusted code execution, long-running workflows, large-scale processing, or even multi-agent systems. - -Each task runs inside its own WebAssembly sandbox, providing: +```Capsule``` is a runtime for executing untrusted code in isolated environments. Each task runs inside its own WebAssembly sandbox, providing: - **Isolated execution**: Each task runs isolated from your host system - **Resource limits**: Set CPU, memory, and timeout limits per task - **Automatic retries**: Handle failures without manual intervention - **Lifecycle tracking**: Monitor which tasks are running, completed, or failed -This enables safe task-level execution of untrusted code within AI agent systems. +This enables safe task-level execution of untrusted code. ## How It Works @@ -81,7 +83,7 @@ Each task operates within its own sandbox with configurable resource limits, ens | Package | Description | |---------|-------------| | [`capsule`](https://github.com/capsulerun/capsule) | Core runtime (this repository) | -| [`capsule-bash`](https://github.com/capsulerun/bash) | Sandboxed bash interface built for AI agents | +| [`capsule-bash`](https://github.com/capsulerun/bash) | Sandboxed bash interface built from capsule | ## Getting Started @@ -433,7 +435,7 @@ You can create a `capsule.toml` file in your project root to set default options # capsule.toml [workflow] -name = "My AI Workflow" +name = "My Workflow" version = "1.0.0" entrypoint = "src/main.py" # Default file when running `capsule run` diff --git a/assets/logo-dark-mode.png b/assets/logo-dark-mode.png new file mode 100644 index 0000000000000000000000000000000000000000..2977d81858cf0103f0c984d41ee144737a2dbdd8 GIT binary patch literal 48842 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 P13y5rDl&CareXgFfn5&S literal 0 HcmV?d00001 From 00fbf933e3659e339228726f08ac30ef1df22348 Mon Sep 17 00:00:00 2001 From: Mavdol Date: Wed, 22 Apr 2026 20:23:49 +0200 Subject: [PATCH 2/6] update project branding, documentation text, and repository URLs to capsulerun --- README.md | 19 ++++--------------- crates/capsule-cli/Cargo.toml | 2 +- crates/capsule-cli/docs/README-pypi.md | 14 ++++---------- crates/capsule-cli/npm/README.md | 4 ++-- crates/capsule-cli/npm/package.json | 4 ++-- crates/capsule-cli/pyproject.toml | 4 ++-- crates/capsule-core/Cargo.toml | 4 ++-- crates/capsule-sdk/javascript/README.md | 16 +++++----------- crates/capsule-sdk/javascript/package.json | 4 ++-- crates/capsule-sdk/python/pyproject.toml | 6 +++--- .../javascript/dialogue-evaluator/README.md | 2 +- integrations/README.md | 6 +++--- integrations/mcp-server/README.md | 8 ++++---- integrations/mcp-server/package.json | 4 ++-- integrations/python-adapter/README.md | 4 ++-- integrations/python-adapter/pyproject.toml | 4 ++-- integrations/typescript-adapter/README.md | 4 ++-- integrations/typescript-adapter/package.json | 4 ++-- 18 files changed, 45 insertions(+), 68 deletions(-) diff --git a/README.md b/README.md index c004639..ed6ee76 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ # `Capsule` -[![CI](https://github.com/mavdol/capsule/actions/workflows/ci.yml/badge.svg)](https://github.com/mavdol/capsule/actions/workflows/ci.yml) +[![CI](https://github.com/capsulerun/capsule/actions/workflows/ci.yml/badge.svg)](https://github.com/capsulerun/capsule/actions/workflows/ci.yml) [Getting Started](#getting-started) • [Documentation](#documentation) • [Issues](https://github.com/capsulerun/capsule/issues/new) • [Contributing](#contributing) @@ -25,8 +25,6 @@ - **Automatic retries**: Handle failures without manual intervention - **Lifecycle tracking**: Monitor which tasks are running, completed, or failed -This enables safe task-level execution of untrusted code. - ## How It Works ### With Python @@ -60,15 +58,6 @@ export const analyzeData = task({ // Your code runs safely in a Wasm sandbox return { processed: dataset.length, status: "complete" }; }); - -// The "main" task is required as the entrypoint -export const main = task({ - name: "main", - compute: "HIGH" -}, () => { - return analyzeData([1, 2, 3, 4, 5]); -}); - ``` > [!NOTE] @@ -193,7 +182,7 @@ export const main = task({ ``` > [!TIP] -> If you're looking for a pre-configured, ready-to-use solution, check out the [Python adapter](https://github.com/mavdol/capsule/tree/main/integrations/python-adapter) or [TypeScript adapter](https://github.com/mavdol/capsule/tree/main/integrations/typescript-adapter). +> If you're looking for a pre-configured, ready-to-use solution, check out the [Python adapter](https://github.com/capsulerun/capsule/tree/main/integrations/python-adapter) or [TypeScript adapter](https://github.com/capsulerun/capsule/tree/main/integrations/typescript-adapter). ## Documentation @@ -522,7 +511,7 @@ Contributions are welcome! **Prerequisites:** Rust (latest stable), Python 3.13+, Node.js 22+ ```bash -git clone https://github.com/mavdol/capsule.git +git clone https://github.com/capsulerun/capsule.git cd capsule # Build and install CLI @@ -545,7 +534,7 @@ npm install && npm run build && npm link 3. **Run tests**: `cargo test` (only needed if modifying `crates/capsule-cli` or `crates/capsule-core`) 4. **Open** a Pull Request -Need help? [Open an issue](https://github.com/mavdol/capsule/issues) +Need help? [Open an issue](https://github.com/capsulerun/capsule/issues) ## Credits diff --git a/crates/capsule-cli/Cargo.toml b/crates/capsule-cli/Cargo.toml index e608503..240ddc9 100644 --- a/crates/capsule-cli/Cargo.toml +++ b/crates/capsule-cli/Cargo.toml @@ -4,7 +4,7 @@ version = "0.8.9" edition = "2024" description = "Secure WASM runtime to isolate and manage AI agent tasks" license = "Apache-2.0" -repository = "https://github.com/mavdol/capsule" +repository = "https://github.com/capsulerun/capsule" keywords = ["webassembly", "sandbox", "isolation", "llm", "ai"] categories = ["command-line-utilities", "wasm"] readme = "../../README.md" diff --git a/crates/capsule-cli/docs/README-pypi.md b/crates/capsule-cli/docs/README-pypi.md index 6e2406e..2374296 100644 --- a/crates/capsule-cli/docs/README-pypi.md +++ b/crates/capsule-cli/docs/README-pypi.md @@ -1,20 +1,14 @@ -# capsule-run - -**A secure, durable runtime for agentic workflows** +# `capsule` ## Overview -Capsule is a runtime for coordinating AI agent tasks in isolated environments. It is designed to handle untrusted code execution, long-running workflows, large-scale processing, or even multi-agent systems. - -Each task runs inside its own WebAssembly sandbox, providing: +`Capsule` is a runtime for executing untrusted code in isolated environments. Each task runs inside its own WebAssembly sandbox, providing: - **Isolated execution**: Each task runs isolated from your host system - **Resource limits**: Set CPU, memory, and timeout limits per task - **Automatic retries**: Handle failures without manual intervention - **Lifecycle tracking**: Monitor which tasks are running, completed, or failed -This enables safe task-level execution of untrusted code within AI agent systems. - ## Installation ```bash @@ -251,5 +245,5 @@ def main() -> dict: ## Links -- [GitHub](https://github.com/mavdol/capsule) -- [Issues](https://github.com/mavdol/capsule/issues) +- [GitHub](https://github.com/capsulerun/capsule) +- [Issues](https://github.com/capsulerun/capsule/issues) diff --git a/crates/capsule-cli/npm/README.md b/crates/capsule-cli/npm/README.md index 59a85df..8224280 100644 --- a/crates/capsule-cli/npm/README.md +++ b/crates/capsule-cli/npm/README.md @@ -282,5 +282,5 @@ export const main = task({ ## Links -- [GitHub](https://github.com/mavdol/capsule) -- [Issues](https://github.com/mavdol/capsule/issues) +- [GitHub](https://github.com/capsulerun/capsule) +- [Issues](https://github.com/capsulerun/capsule/issues) diff --git a/crates/capsule-cli/npm/package.json b/crates/capsule-cli/npm/package.json index b8b68ff..d3aede9 100644 --- a/crates/capsule-cli/npm/package.json +++ b/crates/capsule-cli/npm/package.json @@ -19,9 +19,9 @@ "license": "Apache-2.0", "repository": { "type": "git", - "url": "https://github.com/mavdol/capsule.git" + "url": "https://github.com/capsulerun/capsule.git" }, - "homepage": "https://github.com/mavdol/capsule", + "homepage": "https://github.com/capsulerun/capsule", "publishConfig": { "access": "public" }, diff --git a/crates/capsule-cli/pyproject.toml b/crates/capsule-cli/pyproject.toml index aade098..fc7703b 100644 --- a/crates/capsule-cli/pyproject.toml +++ b/crates/capsule-cli/pyproject.toml @@ -43,8 +43,8 @@ dependencies = [ ] [project.urls] -Homepage = "https://github.com/mavdol/capsule" -Repository = "https://github.com/mavdol/capsule" +Homepage = "https://github.com/capsulerun/capsule" +Repository = "https://github.com/capsulerun/capsule" [tool.maturin] bindings = "bin" diff --git a/crates/capsule-core/Cargo.toml b/crates/capsule-core/Cargo.toml index 603a7c6..bd2cdd5 100644 --- a/crates/capsule-core/Cargo.toml +++ b/crates/capsule-core/Cargo.toml @@ -2,9 +2,9 @@ name = "capsule-core" version = "0.8.9" edition = "2024" -description = "Core library for Capsule - WASM runtime for AI agent isolation" +description = "Core library for Capsule" license = "Apache-2.0" -repository = "https://github.com/mavdol/capsule" +repository = "https://github.com/capsulerun/capsule" keywords = ["webassembly", "sandbox", "isolation", "runtime", "wasm"] categories = ["wasm"] readme = "../../README.md" diff --git a/crates/capsule-sdk/javascript/README.md b/crates/capsule-sdk/javascript/README.md index 33839d7..3103425 100644 --- a/crates/capsule-sdk/javascript/README.md +++ b/crates/capsule-sdk/javascript/README.md @@ -1,20 +1,14 @@ -# capsule - -**A secure, durable runtime for agentic workflows** +# `capsule` ## Overview -Capsule is a runtime for coordinating AI agent tasks in isolated environments. It is designed to handle untrusted code execution, long-running workflows, large-scale processing, or even multi-agent systems. - -Each task runs inside its own WebAssembly sandbox, providing: +```Capsule``` is a runtime for executing untrusted code in isolated environments. Each task runs inside its own WebAssembly sandbox, providing: - **Isolated execution**: Each task runs isolated from your host system - **Resource limits**: Set CPU, memory, and timeout limits per task - **Automatic retries**: Handle failures without manual intervention - **Lifecycle tracking**: Monitor which tasks are running, completed, or failed -This enables safe task-level execution of untrusted code within AI agent systems. - ## Installation ```bash @@ -194,7 +188,7 @@ Create a `capsule.toml` file in your project root to set default options: ```toml [workflow] -name = "My AI Workflow" +name = "My Workflow" version = "1.0.0" entrypoint = "src/main.ts" # Run `capsule run` without specifying a file @@ -282,5 +276,5 @@ export const main = task({ ## Links -- [GitHub](https://github.com/mavdol/capsule) -- [Issues](https://github.com/mavdol/capsule/issues) +- [GitHub](https://github.com/capsulerun/capsule) +- [Issues](https://github.com/capsulerun/capsule/issues) diff --git a/crates/capsule-sdk/javascript/package.json b/crates/capsule-sdk/javascript/package.json index 0e86f47..61e8249 100644 --- a/crates/capsule-sdk/javascript/package.json +++ b/crates/capsule-sdk/javascript/package.json @@ -5,10 +5,10 @@ "type": "module", "main": "./dist/index.js", "types": "./dist/index.d.ts", - "homepage": "https://github.com/mavdol/capsule", + "homepage": "https://github.com/capsulerun/capsule", "repository": { "type": "git", - "url": "https://github.com/mavdol/capsule.git" + "url": "https://github.com/capsulerun/capsule.git" }, "exports": { ".": { diff --git a/crates/capsule-sdk/python/pyproject.toml b/crates/capsule-sdk/python/pyproject.toml index 2fcafa8..0453fb4 100644 --- a/crates/capsule-sdk/python/pyproject.toml +++ b/crates/capsule-sdk/python/pyproject.toml @@ -45,9 +45,9 @@ dev = [ ] [project.urls] -Homepage = "https://github.com/mavdol/capsule" -Repository = "https://github.com/mavdol/capsule" -Documentation = "https://github.com/mavdol/capsule" +Homepage = "https://github.com/capsulerun/capsule" +Repository = "https://github.com/capsulerun/capsule" +Documentation = "https://github.com/capsulerun/capsule" [tool.setuptools.packages.find] where = ["src"] diff --git a/examples/javascript/dialogue-evaluator/README.md b/examples/javascript/dialogue-evaluator/README.md index 9c0b940..8a01282 100644 --- a/examples/javascript/dialogue-evaluator/README.md +++ b/examples/javascript/dialogue-evaluator/README.md @@ -1,6 +1,6 @@ # Dialogue Evaluator -GitHub Repository: https://github.com/mavdol/capsule +GitHub Repository: https://github.com/capsulerun/capsule This example demonstrates how to build a multi-task workflow in that processes data, interacts with an external LLM, and manages file I/O. We're creating many tiny agents that evaluate video game dialogue emotions and save them in a CSV. diff --git a/integrations/README.md b/integrations/README.md index 6bacb14..de42df3 100644 --- a/integrations/README.md +++ b/integrations/README.md @@ -4,9 +4,9 @@ This directory contains integrations for Capsule with popular AI frameworks and ## Available Integrations -- [MCP Server](https://github.com/mavdol/capsule/tree/main/integrations/mcp-server) - Model Context Protocol server implementation -- [Python adapter](https://github.com/mavdol/capsule/tree/main/integrations/python-adapter) - Adapter to run Python/JavaScript code from your Python applications -- [Typecript adapter](https://github.com/mavdol/capsule/tree/main/integrations/typescript-adapter) - Adapter to run Python/JavaScript code from your Typescript applications +- [MCP Server](https://github.com/capsulerun/capsule/tree/main/integrations/mcp-server) - Model Context Protocol server implementation +- [Python adapter](https://github.com/capsulerun/capsule/tree/main/integrations/python-adapter) - Adapter to run Python/JavaScript code from your Python applications +- [Typecript adapter](https://github.com/capsulerun/capsule/tree/main/integrations/typescript-adapter) - Adapter to run Python/JavaScript code from your Typescript applications ## External Integrations diff --git a/integrations/mcp-server/README.md b/integrations/mcp-server/README.md index f71d480..9e1807b 100644 --- a/integrations/mcp-server/README.md +++ b/integrations/mcp-server/README.md @@ -1,8 +1,8 @@ # `Capsule` MCP Server -[![MCP Server Release](https://github.com/mavdol/capsule/actions/workflows/mcp-integration-release.yml/badge.svg)](https://github.com/mavdol/capsule/actions/workflows/mcp-integration-release.yml) +[![MCP Server Release](https://github.com/capsulerun/capsule/actions/workflows/mcp-integration-release.yml/badge.svg)](https://github.com/capsulerun/capsule/actions/workflows/mcp-integration-release.yml) -Give your AI agent the ability to write and run Python and JavaScript code, in a secure sandbox. +Give your agent the ability to write and run Python and JavaScript code, in a secure sandbox. Every execution happens inside its own WebAssembly sandbox with strict resource limits. No file system access, no risk to your host system. @@ -15,7 +15,7 @@ Every execution happens inside its own WebAssembly sandbox with strict resource ### Example -Ask your AI agent: +Ask your agent: > *"I have monthly revenue of [12400, 15800, 14200, 18900, 21000, 19500]. What's the average and which month grew the most?"* @@ -56,7 +56,7 @@ The server ships two pre-compiled WebAssembly modules: one for Python, one for J - **CPU/Ram limits** — fuel-metered execution prevents runaway loops - **No host access** — no filesystem or network unless explicitly allowed -Learn more about [Capsule](https://github.com/mavdol/capsule). +Learn more about [Capsule](https://github.com/capsulerun/capsule). ## Limitations diff --git a/integrations/mcp-server/package.json b/integrations/mcp-server/package.json index 24dd213..ee39020 100644 --- a/integrations/mcp-server/package.json +++ b/integrations/mcp-server/package.json @@ -11,9 +11,9 @@ }, "repository": { "type": "git", - "url": "https://github.com/mavdol/capsule.git" + "url": "https://github.com/capsulerun/capsule.git" }, - "homepage": "https://github.com/mavdol/capsule", + "homepage": "https://github.com/capsulerun/capsule", "scripts": { "build:ts": "tsc", "build:wasm:py": "capsule build src/python_sandbox.py --export && mv src/python_sandbox.wasm dist/sandboxes/python_sandbox.wasm", diff --git a/integrations/python-adapter/README.md b/integrations/python-adapter/README.md index ae43b68..f22a484 100644 --- a/integrations/python-adapter/README.md +++ b/integrations/python-adapter/README.md @@ -1,6 +1,6 @@ # `Capsule` Python Adapter -[![Python Adapter Release](https://github.com/mavdol/capsule/actions/workflows/python-adapter-release.yml/badge.svg)](https://github.com/mavdol/capsule/actions/workflows/python-adapter-release.yml) +[![Python Adapter Release](https://github.com/capsulerun/capsule/actions/workflows/python-adapter-release.yml/badge.svg)](https://github.com/capsulerun/capsule/actions/workflows/python-adapter-release.yml) Execute Python and JavaScript code securely inside Capsule sandboxes from your Python applications. @@ -138,4 +138,4 @@ async with Session() as s: The adapter compiles Python and JavaScript sandboxes into WebAssembly modules during the build step. When you call `run_python()` or `run_javascript()`, the adapter invokes these pre-built sandboxes using Capsule's runner with the code you provide. -Learn more about [Capsule](https://github.com/mavdol/capsule). +Learn more about [Capsule](https://github.com/capsulerun/capsule). diff --git a/integrations/python-adapter/pyproject.toml b/integrations/python-adapter/pyproject.toml index 15092e7..ee78834 100644 --- a/integrations/python-adapter/pyproject.toml +++ b/integrations/python-adapter/pyproject.toml @@ -27,8 +27,8 @@ dependencies = [ ] [project.urls] -Homepage = "https://github.com/mavdol/capsule" -Repository = "https://github.com/mavdol/capsule/tree/main/integrations/python-adapter" +Homepage = "https://github.com/capsulerun/capsule" +Repository = "https://github.com/capsulerun/capsule/tree/main/integrations/python-adapter" [project.optional-dependencies] test = [ diff --git a/integrations/typescript-adapter/README.md b/integrations/typescript-adapter/README.md index c2a2751..bd09944 100644 --- a/integrations/typescript-adapter/README.md +++ b/integrations/typescript-adapter/README.md @@ -1,6 +1,6 @@ # `Capsule` TypeScript Adapter -[![TypeScript Adapter Release](https://github.com/mavdol/capsule/actions/workflows/typescript-adapter-release.yml/badge.svg)](https://github.com/mavdol/capsule/actions/workflows/typescript-adapter-release.yml) +[![TypeScript Adapter Release](https://github.com/capsulerun/capsule/actions/workflows/typescript-adapter-release.yml/badge.svg)](https://github.com/capsulerun/capsule/actions/workflows/typescript-adapter-release.yml) Execute Python and JavaScript code securely inside Capsule sandboxes from your TypeScript/JavaScript applications. @@ -146,4 +146,4 @@ const result = await s.run("x"); // throws The adapter compiles Python and JavaScript sandboxes into WebAssembly modules during the build step. When you call `runPython()` or `runJavaScript()`, the adapter invokes these pre-built sandboxes using Capsule's runner with the code you provide. -Learn more about [Capsule](https://github.com/mavdol/capsule). +Learn more about [Capsule](https://github.com/capsulerun/capsule). diff --git a/integrations/typescript-adapter/package.json b/integrations/typescript-adapter/package.json index 89e1c40..337d8ed 100644 --- a/integrations/typescript-adapter/package.json +++ b/integrations/typescript-adapter/package.json @@ -11,9 +11,9 @@ }, "repository": { "type": "git", - "url": "https://github.com/mavdol/capsule.git" + "url": "https://github.com/capsulerun/capsule.git" }, - "homepage": "https://github.com/mavdol/capsule", + "homepage": "https://github.com/capsulerun/capsule", "scripts": { "build:ts": "tsc", "build:wasm:py": "capsule build src/python_sandbox.py --export && mv src/python_sandbox.wasm dist/sandboxes/python_sandbox.wasm", From a034ed48d71f35f9e81ab449238a98e7fada9fea Mon Sep 17 00:00:00 2001 From: Mavdol Date: Wed, 22 Apr 2026 20:26:25 +0200 Subject: [PATCH 3/6] update project descriptions and documentation to emphasize untrusted code execution --- crates/capsule-cli/Cargo.toml | 2 +- crates/capsule-cli/npm/README.md | 10 ++-------- crates/capsule-cli/npm/package.json | 2 +- crates/capsule-cli/pyproject.toml | 2 +- crates/capsule-cli/src/cli.rs | 2 +- crates/capsule-sdk/javascript/package.json | 2 +- crates/capsule-sdk/python/pyproject.toml | 2 +- 7 files changed, 8 insertions(+), 14 deletions(-) diff --git a/crates/capsule-cli/Cargo.toml b/crates/capsule-cli/Cargo.toml index 240ddc9..082f474 100644 --- a/crates/capsule-cli/Cargo.toml +++ b/crates/capsule-cli/Cargo.toml @@ -2,7 +2,7 @@ name = "capsule-run" version = "0.8.9" edition = "2024" -description = "Secure WASM runtime to isolate and manage AI agent tasks" +description = "Secure WASM runtime to execute untrusted code" license = "Apache-2.0" repository = "https://github.com/capsulerun/capsule" keywords = ["webassembly", "sandbox", "isolation", "llm", "ai"] diff --git a/crates/capsule-cli/npm/README.md b/crates/capsule-cli/npm/README.md index 8224280..0080e5c 100644 --- a/crates/capsule-cli/npm/README.md +++ b/crates/capsule-cli/npm/README.md @@ -1,20 +1,14 @@ -# capsule - -**A secure, durable runtime for agentic workflows** +# `capsule` ## Overview -Capsule is a runtime for coordinating AI agent tasks in isolated environments. It is designed to handle untrusted code execution, long-running workflows, large-scale processing, or even multi-agent systems. - -Each task runs inside its own WebAssembly sandbox, providing: +`Capsule` is a runtime for executing untrusted code in isolated environments. Each task runs inside its own WebAssembly sandbox, providing: - **Isolated execution**: Each task runs isolated from your host system - **Resource limits**: Set CPU, memory, and timeout limits per task - **Automatic retries**: Handle failures without manual intervention - **Lifecycle tracking**: Monitor which tasks are running, completed, or failed -This enables safe task-level execution of untrusted code within AI agent systems. - ## Installation ```bash diff --git a/crates/capsule-cli/npm/package.json b/crates/capsule-cli/npm/package.json index d3aede9..5136012 100644 --- a/crates/capsule-cli/npm/package.json +++ b/crates/capsule-cli/npm/package.json @@ -1,7 +1,7 @@ { "name": "@capsule-run/cli", "version": "0.8.9", - "description": "Secure WASM runtime to isolate and manage AI agent tasks", + "description": "Secure WASM runtime to execute untrusted code", "bin": { "capsule": "./bin/capsule.js" }, diff --git a/crates/capsule-cli/pyproject.toml b/crates/capsule-cli/pyproject.toml index fc7703b..4f7ccba 100644 --- a/crates/capsule-cli/pyproject.toml +++ b/crates/capsule-cli/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "maturin" [project] name = "capsule-run" version = "0.8.9" -description = "Secure WASM runtime to isolate and manage AI agent tasks" +description = "Secure WASM runtime to execute untrusted code" readme = "docs/README-pypi.md" license = {text = "Apache-2.0"} requires-python = ">=3.10" diff --git a/crates/capsule-cli/src/cli.rs b/crates/capsule-cli/src/cli.rs index 368a923..9d9b1f2 100644 --- a/crates/capsule-cli/src/cli.rs +++ b/crates/capsule-cli/src/cli.rs @@ -3,7 +3,7 @@ use clap::{Parser, Subcommand}; #[derive(Parser)] #[command(name = "capsule")] #[command(version)] -#[command(about = "A secure, durable runtime for AI agents", long_about = None)] +#[command(about = "A secure, durable runtime for untrusted code", long_about = None)] pub struct Cli { #[command(subcommand)] pub command: Commands, diff --git a/crates/capsule-sdk/javascript/package.json b/crates/capsule-sdk/javascript/package.json index 61e8249..74f0413 100644 --- a/crates/capsule-sdk/javascript/package.json +++ b/crates/capsule-sdk/javascript/package.json @@ -1,7 +1,7 @@ { "name": "@capsule-run/sdk", "version": "0.8.9", - "description": "Capsule JavaScript SDK - run AI agent tasks in secure WASM sandboxes", + "description": "Capsule JavaScript SDK - Execute untrusted code in secure WASM sandboxes", "type": "module", "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/crates/capsule-sdk/python/pyproject.toml b/crates/capsule-sdk/python/pyproject.toml index 0453fb4..9816f53 100644 --- a/crates/capsule-sdk/python/pyproject.toml +++ b/crates/capsule-sdk/python/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "capsule" version = "0.8.9" -description = "Capsule Python SDK - run AI agent tasks in secure WASM sandboxes" +description = "Capsule Python SDK - run untrusted code in secure WASM sandboxes" readme = "README.md" requires-python = ">=3.10" license = {text = "Apache-2.0"} From 390c72ec4b66a1b5a59c4896c15d086876ba2938 Mon Sep 17 00:00:00 2001 From: Mavdol Date: Wed, 22 Apr 2026 20:33:04 +0200 Subject: [PATCH 4/6] increase logo width in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ed6ee76..ca0dd17 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ - Capsule + Capsule # `Capsule` From 5e6dfdaf064da27509adbe10b7012d5529a1eb8c Mon Sep 17 00:00:00 2001 From: Mavdol Date: Wed, 22 Apr 2026 20:44:59 +0200 Subject: [PATCH 5/6] add release, npm download, and star count badges to README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ca0dd17..b0446ad 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ # `Capsule` -[![CI](https://github.com/capsulerun/capsule/actions/workflows/ci.yml/badge.svg)](https://github.com/capsulerun/capsule/actions/workflows/ci.yml) +[![CI](https://img.shields.io/github/actions/workflow/status/capsulerun/capsule/ci.yml?branch=main) ![Release](https://img.shields.io/github/v/release/capsulerun/capsule)](https://github.com/capsulerun/capsule/releases) [![NPM Downloads](https://img.shields.io/npm/dm/%40capsule-run%252Fcli)](https://www.npmjs.com/package/@capsule-run/cli) [Getting Started](#getting-started) • [Documentation](#documentation) • [Issues](https://github.com/capsulerun/capsule/issues/new) • [Contributing](#contributing) From 50d9f18b39d0cbb86be28e0a33f10163f2cf6cab Mon Sep 17 00:00:00 2001 From: Mavdol Date: Wed, 22 Apr 2026 21:02:14 +0200 Subject: [PATCH 6/6] update logo size and add PyPI/CI badges to README --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b0446ad..3cbb7cc 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,13 @@ - Capsule + Capsule # `Capsule` -[![CI](https://img.shields.io/github/actions/workflow/status/capsulerun/capsule/ci.yml?branch=main) ![Release](https://img.shields.io/github/v/release/capsulerun/capsule)](https://github.com/capsulerun/capsule/releases) [![NPM Downloads](https://img.shields.io/npm/dm/%40capsule-run%252Fcli)](https://www.npmjs.com/package/@capsule-run/cli) +[![CI](https://img.shields.io/github/actions/workflow/status/capsulerun/capsule/ci.yml?branch=main&label=CI)](https://github.com/capsulerun/capsule/actions/workflows/ci.yml) [![NPM Downloads](https://img.shields.io/npm/dm/@capsule-run%2Fcli?label=npm&color=orange)](https://www.npmjs.com/package/@capsule-run/cli) [![PyPI Downloads](https://img.shields.io/pypi/dm/capsule-run?label=PyPI&color=3775A9)](https://pypistats.org/packages/capsule-run) + [Getting Started](#getting-started) • [Documentation](#documentation) • [Issues](https://github.com/capsulerun/capsule/issues/new) • [Contributing](#contributing)