Closed
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
1 change: 1 addition & 0 deletions .prettierignore
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
CHANGELOG.md
src/assets/**/*.md
src/assets/**/*.ts
6 changes: 5 additions & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,6 +14,7 @@ AgentCore with minimal configuration.

- **Node.js** 20.x or later
- **uv** for Python agents ([install](https://docs.astral.sh/uv/getting-started/installation/))
- **Docker**, **Podman**, or **Finch** for TypeScript agents (Container deployment only)

## Installation

Expand DownExpand Up@@ -120,11 +121,14 @@ my-project/
```
├── app/ # Application code
│ └── <AgentName>/ # Agent directory
│ ├── main.py # Agent entry point
│ ├── main.py # Python agent entry point
│ ├── pyproject.toml # Python dependencies
│ └── model/ # Model configuration
```

TypeScript agents use a similar structure with `main.ts`, `package.json`, `tsconfig.json`, and a `Dockerfile` for
deployment.

## Configuration

Projects use JSON schema files in the `agentcore/` directory:
Expand Down
52 changes: 26 additions & 26 deletions docs/commands.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -65,30 +65,30 @@ agentcore create \
--memory none
```

| Flag | Description |
| ------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Project name (alphanumeric, starts with letter, max 23 chars) |
| `--defaults` | Use defaults (Python, Strands, Bedrock, no memory) |
| `--no-agent` | Skip agent creation |
| `--type <type>` | `create` (default) or `import` |
| `--language <lang>` | `Python` (default) |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--build <type>` | `CodeZip` (default) or `Container` (see [Container Builds](container-builds.md)) |
| `--api-key <key>` | API key for non-Bedrock providers |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` (see [Memory Shorthand Mapping](memory.md#--memory-shorthand-mapping)) |
| `--protocol <protocol>` | `HTTP` (default), `MCP`, `A2A` |
| `--network-mode <mode>` | `PUBLIC` (default) or `VPC` |
| `--subnets <ids>` | Comma-separated subnet IDs (required for VPC mode) |
| `--security-groups <ids>` | Comma-separated security group IDs (required for VPC mode) |
| `--agent-id <id>` | Bedrock Agent ID (import only) |
| `--agent-alias-id <id>` | Bedrock Agent Alias ID (import only) |
| `--region <region>` | AWS region for Bedrock Agent (import only) |
| `--output-dir <dir>` | Output directory |
| `--skip-git` | Skip git initialization |
| `--skip-python-setup` | Skip venv setup |
| `--dry-run` | Preview without creating |
| `--json` | JSON output |
| Flag | Description |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Project name (alphanumeric, starts with letter, max 23 chars) |
| `--defaults` | Use defaults (Python, Strands, Bedrock, no memory) |
| `--no-agent` | Skip agent creation |
| `--type <type>` | `create` (default) or `import` |
| `--language <lang>` | `Python` (default) or `TypeScript` |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--build <type>` | `CodeZip` (default for Python) or `Container` (default for TypeScript; see [Container Builds](container-builds.md)) |
| `--api-key <key>` | API key for non-Bedrock providers |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` (see [Memory Shorthand Mapping](memory.md#--memory-shorthand-mapping)) |
| `--protocol <protocol>` | `HTTP` (default), `MCP`, `A2A` |
| `--network-mode <mode>` | `PUBLIC` (default) or `VPC` |
| `--subnets <ids>` | Comma-separated subnet IDs (required for VPC mode) |
| `--security-groups <ids>` | Comma-separated security group IDs (required for VPC mode) |
| `--agent-id <id>` | Bedrock Agent ID (import only) |
| `--agent-alias-id <id>` | Bedrock Agent Alias ID (import only) |
| `--region <region>` | AWS region for Bedrock Agent (import only) |
| `--output-dir <dir>` | Output directory |
| `--skip-git` | Skip git initialization |
| `--skip-python-setup` | Skip venv setup |
| `--dry-run` | Preview without creating |
| `--json` | JSON output |

### deploy

Expand DownExpand Up@@ -197,8 +197,8 @@ agentcore add agent \
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Agent name (alphanumeric + underscores, starts with letter, max 48 chars) |
| `--type <type>` | `create` (default), `byo`, or `import` |
| `--build <type>` | `CodeZip` (default) or `Container` (see [Container Builds](container-builds.md)) |
| `--language <lang>` | `Python` (create); `Python`, `TypeScript`, `Other` (BYO) |
| `--build <type>` | `CodeZip` (default for Python) or `Container` (default for TypeScript; see [Container Builds](container-builds.md)) |
| `--language <lang>` | `Python` (default) or `TypeScript` (create); `Python`, `TypeScript`, `Other` (BYO) |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--api-key <key>` | API key for non-Bedrock providers |
Expand Down
38 changes: 32 additions & 6 deletions docs/container-builds.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
Container builds package your agent as a Docker container image instead of a code ZIP. Use containers when you need
system-level dependencies, custom native libraries, or full control over the runtime environment.

TypeScript agents always use Container build because AgentCore Runtime's CodeZip mode only supports Python runtimes. The
CLI sets this automatically — no manual configuration needed.

## Prerequisites

A container runtime is required for local development (`agentcore dev`) and packaging (`agentcore package`). Supported
runtimes:
A container runtime is required for packaging (`agentcore package`) and for Python container agents during local
development. Supported runtimes:

1. [Docker](https://docker.com)
2. [Podman](https://podman.io)
Expand All@@ -16,13 +19,18 @@ The CLI auto-detects the first working runtime in the order listed above. If mul
highest-priority one wins.

> A local runtime is **not** required for `agentcore deploy` — AWS CodeBuild builds the image remotely.
>
> TypeScript agents do **not** need a local container runtime for `agentcore dev` — they run directly with `tsx watch`.

## Getting Started

```bash
# New project with container build
# Python project with container build (opt-in)
agentcore create --name MyProject --build Container

# TypeScript project (Container is the default and only option)
agentcore create --name MyProject --language TypeScript --framework Strands --model-provider Bedrock

# Add container agent to existing project
agentcore add agent --name MyAgent --build Container --framework Strands --model-provider Bedrock
```
Expand All@@ -33,10 +41,21 @@ Both commands generate a `Dockerfile` and `.dockerignore` in the agent's code di
app/MyAgent/
├── Dockerfile
├── .dockerignore
├── pyproject.toml
├── pyproject.toml # Python
└── main.py
```

TypeScript agents generate a Node.js-based Dockerfile:

```
app/MyAgent/
├── Dockerfile # Node 22 slim base
├── .dockerignore
├── package.json
├── tsconfig.json
└── main.ts
```

## Generated Dockerfile

The template uses `ghcr.io/astral-sh/uv:python3.12-bookworm-slim` as the base image with these design choices:
Expand DownExpand Up@@ -75,13 +94,20 @@ All other fields work the same as CodeZip agents.
agentcore dev
```

For container agents, the dev server:
For **Python** container agents, the dev server:

1. Builds the container image and adds a dev layer with `uvicorn`
2. Runs the container with your source directory volume-mounted at `/app`
3. Enables hot reload via `uvicorn --reload` — code changes apply without rebuilding

AWS credentials are forwarded automatically (environment variables and `~/.aws` mounted read-only).
For **TypeScript** container agents, the dev server runs locally without Docker:

1. Runs `npm install` if needed
2. Starts `tsx watch` with hot-reload
3. No container build or runtime required

AWS credentials are forwarded automatically (environment variables and `~/.aws` mounted read-only for Python
containers).

## Packaging and Deployment

Expand Down
39 changes: 32 additions & 7 deletions docs/frameworks.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,6 +121,34 @@ that runs on AgentCore:
| `--framework <fw>` | `Strands` or `LangChain_LangGraph` |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` |

## Supported Languages

| Language | Build Type | Dev Server | Frameworks |
| -------------- | ---------- | ----------------- | ----------------------------------------------- |
| **Python** | CodeZip | uvicorn (local) | Strands, LangChain/LangGraph, GoogleADK, OpenAI |
| **TypeScript** | Container | tsx watch (local) | Strands |

### TypeScript Agents

TypeScript agents use the [Strands Agents SDK](https://github.com/strands-agents/sdk-typescript) with Express and deploy
as Container images. AgentCore Runtime's CodeZip mode only supports Python runtimes, so TypeScript agents automatically
default to Container build.

> **Local development runs without Docker.** The `agentcore dev` command runs TypeScript agents directly with
> `tsx watch` for fast iteration and hot-reload — no container build needed. Docker/Podman/Finch is only required for
> `agentcore deploy` and `agentcore package`.

```bash
# Create a TypeScript agent
agentcore create --name MyProject --language TypeScript --framework Strands --model-provider Bedrock

# Local dev — runs with tsx, no Docker needed
agentcore dev

# Deploy — builds container image via CodeBuild
agentcore deploy
```

## Bring Your Own (BYO) Agent

For existing agent code or frameworks not listed above, use the BYO option:
Expand All@@ -138,16 +166,13 @@ agentcore add agent \

1. **Entrypoint**: Your code must expose an HTTP endpoint that accepts agent invocation requests
2. **Code location**: Directory containing your agent code
3. **Language**: Python
3. **Language**: Python or TypeScript

### BYO Options

| Flag | Description |
| ------------------------ | ------------------------------------------ |
| `--type byo` | Use BYO mode (required) |
| `--code-location <path>` | Directory containing your agent code |
| `--entrypoint <file>` | Entry file (e.g., `main.py` or `index.ts`) |
| `--language <lang>` | `Python` |
| Flag | Description |\n| ------------------------ | ------------------------------------------ | | `--type byo` | Use
BYO mode (required) | | `--code-location <path>` | Directory containing your agent code | | `--entrypoint <file>` |
Entry file (e.g., `main.py` or `main.ts`) | | `--language <lang>` | `Python` or `TypeScript` |

## Framework Comparison

Expand Down
19 changes: 16 additions & 3 deletions docs/local-development.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,6 +42,16 @@ The dev server automatically:
2. Runs `uv sync` to install dependencies from `pyproject.toml`
3. Starts uvicorn with your agent

### TypeScript / Node.js

The dev server automatically:

1. Runs `npm install` if `node_modules` is missing
2. Starts `tsx watch` with your agent entry point (hot-reload enabled)

> TypeScript agents use Container build for deployment, but `agentcore dev` runs them locally without Docker for fast
> iteration.

### API Keys

For non-Bedrock providers, add keys to `agentcore/.env.local`:
Expand DownExpand Up@@ -93,10 +103,13 @@ immediately.

### Container Agents

For container agents, the dev server builds a Docker image and runs it with your source directory mounted as a volume.
Changes to your code are picked up by uvicorn's `--reload` inside the container — no image rebuild needed.
For Python container agents, the dev server builds a Docker image and runs it with your source directory mounted as a
volume. Changes to your code are picked up by uvicorn's `--reload` inside the container — no image rebuild needed.

TypeScript agents always run locally in dev mode (via `tsx watch`), even though they use Container build for deployment.
No Docker is needed for `agentcore dev` with TypeScript.

See [Container Builds](container-builds.md) for full details on container development.
See [Container Builds](container-builds.md) for full details on container development and deployment.

## Dev vs Deployed Behavior

Expand Down
Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Closed
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
1 change: 1 addition & 0 deletions .prettierignore
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
CHANGELOG.md
src/assets/**/*.md
src/assets/**/*.ts
6 changes: 5 additions & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,6 +14,7 @@ AgentCore with minimal configuration.

- **Node.js** 20.x or later
- **uv** for Python agents ([install](https://docs.astral.sh/uv/getting-started/installation/))
- **Docker**, **Podman**, or **Finch** for TypeScript agents (Container deployment only)

## Installation

Expand DownExpand Up@@ -120,11 +121,14 @@ my-project/
```
├── app/ # Application code
│ └── <AgentName>/ # Agent directory
│ ├── main.py # Agent entry point
│ ├── main.py # Python agent entry point
│ ├── pyproject.toml # Python dependencies
│ └── model/ # Model configuration
```

TypeScript agents use a similar structure with `main.ts`, `package.json`, `tsconfig.json`, and a `Dockerfile` for
deployment.

## Configuration

Projects use JSON schema files in the `agentcore/` directory:
Expand Down
52 changes: 26 additions & 26 deletions docs/commands.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -65,30 +65,30 @@ agentcore create \
--memory none
```

| Flag | Description |
| ------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Project name (alphanumeric, starts with letter, max 23 chars) |
| `--defaults` | Use defaults (Python, Strands, Bedrock, no memory) |
| `--no-agent` | Skip agent creation |
| `--type <type>` | `create` (default) or `import` |
| `--language <lang>` | `Python` (default) |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--build <type>` | `CodeZip` (default) or `Container` (see [Container Builds](container-builds.md)) |
| `--api-key <key>` | API key for non-Bedrock providers |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` (see [Memory Shorthand Mapping](memory.md#--memory-shorthand-mapping)) |
| `--protocol <protocol>` | `HTTP` (default), `MCP`, `A2A` |
| `--network-mode <mode>` | `PUBLIC` (default) or `VPC` |
| `--subnets <ids>` | Comma-separated subnet IDs (required for VPC mode) |
| `--security-groups <ids>` | Comma-separated security group IDs (required for VPC mode) |
| `--agent-id <id>` | Bedrock Agent ID (import only) |
| `--agent-alias-id <id>` | Bedrock Agent Alias ID (import only) |
| `--region <region>` | AWS region for Bedrock Agent (import only) |
| `--output-dir <dir>` | Output directory |
| `--skip-git` | Skip git initialization |
| `--skip-python-setup` | Skip venv setup |
| `--dry-run` | Preview without creating |
| `--json` | JSON output |
| Flag | Description |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Project name (alphanumeric, starts with letter, max 23 chars) |
| `--defaults` | Use defaults (Python, Strands, Bedrock, no memory) |
| `--no-agent` | Skip agent creation |
| `--type <type>` | `create` (default) or `import` |
| `--language <lang>` | `Python` (default) or `TypeScript` |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--build <type>` | `CodeZip` (default for Python) or `Container` (default for TypeScript; see [Container Builds](container-builds.md)) |
| `--api-key <key>` | API key for non-Bedrock providers |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` (see [Memory Shorthand Mapping](memory.md#--memory-shorthand-mapping)) |
| `--protocol <protocol>` | `HTTP` (default), `MCP`, `A2A` |
| `--network-mode <mode>` | `PUBLIC` (default) or `VPC` |
| `--subnets <ids>` | Comma-separated subnet IDs (required for VPC mode) |
| `--security-groups <ids>` | Comma-separated security group IDs (required for VPC mode) |
| `--agent-id <id>` | Bedrock Agent ID (import only) |
| `--agent-alias-id <id>` | Bedrock Agent Alias ID (import only) |
| `--region <region>` | AWS region for Bedrock Agent (import only) |
| `--output-dir <dir>` | Output directory |
| `--skip-git` | Skip git initialization |
| `--skip-python-setup` | Skip venv setup |
| `--dry-run` | Preview without creating |
| `--json` | JSON output |

### deploy

Expand DownExpand Up@@ -197,8 +197,8 @@ agentcore add agent \
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Agent name (alphanumeric + underscores, starts with letter, max 48 chars) |
| `--type <type>` | `create` (default), `byo`, or `import` |
| `--build <type>` | `CodeZip` (default) or `Container` (see [Container Builds](container-builds.md)) |
| `--language <lang>` | `Python` (create); `Python`, `TypeScript`, `Other` (BYO) |
| `--build <type>` | `CodeZip` (default for Python) or `Container` (default for TypeScript; see [Container Builds](container-builds.md)) |
| `--language <lang>` | `Python` (default) or `TypeScript` (create); `Python`, `TypeScript`, `Other` (BYO) |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--api-key <key>` | API key for non-Bedrock providers |
Expand Down
38 changes: 32 additions & 6 deletions docs/container-builds.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
Container builds package your agent as a Docker container image instead of a code ZIP. Use containers when you need
system-level dependencies, custom native libraries, or full control over the runtime environment.

TypeScript agents always use Container build because AgentCore Runtime's CodeZip mode only supports Python runtimes. The
CLI sets this automatically — no manual configuration needed.

## Prerequisites

A container runtime is required for local development (`agentcore dev`) and packaging (`agentcore package`). Supported
runtimes:
A container runtime is required for packaging (`agentcore package`) and for Python container agents during local
development. Supported runtimes:

1. [Docker](https://docker.com)
2. [Podman](https://podman.io)
Expand All@@ -16,13 +19,18 @@ The CLI auto-detects the first working runtime in the order listed above. If mul
highest-priority one wins.

> A local runtime is **not** required for `agentcore deploy` — AWS CodeBuild builds the image remotely.
>
> TypeScript agents do **not** need a local container runtime for `agentcore dev` — they run directly with `tsx watch`.

## Getting Started

```bash
# New project with container build
# Python project with container build (opt-in)
agentcore create --name MyProject --build Container

# TypeScript project (Container is the default and only option)
agentcore create --name MyProject --language TypeScript --framework Strands --model-provider Bedrock

# Add container agent to existing project
agentcore add agent --name MyAgent --build Container --framework Strands --model-provider Bedrock
```
Expand All@@ -33,10 +41,21 @@ Both commands generate a `Dockerfile` and `.dockerignore` in the agent's code di
app/MyAgent/
├── Dockerfile
├── .dockerignore
├── pyproject.toml
├── pyproject.toml # Python
└── main.py
```

TypeScript agents generate a Node.js-based Dockerfile:

```
app/MyAgent/
├── Dockerfile # Node 22 slim base
├── .dockerignore
├── package.json
├── tsconfig.json
└── main.ts
```

## Generated Dockerfile

The template uses `ghcr.io/astral-sh/uv:python3.12-bookworm-slim` as the base image with these design choices:
Expand DownExpand Up@@ -75,13 +94,20 @@ All other fields work the same as CodeZip agents.
agentcore dev
```

For container agents, the dev server:
For **Python** container agents, the dev server:

1. Builds the container image and adds a dev layer with `uvicorn`
2. Runs the container with your source directory volume-mounted at `/app`
3. Enables hot reload via `uvicorn --reload` — code changes apply without rebuilding

AWS credentials are forwarded automatically (environment variables and `~/.aws` mounted read-only).
For **TypeScript** container agents, the dev server runs locally without Docker:

1. Runs `npm install` if needed
2. Starts `tsx watch` with hot-reload
3. No container build or runtime required

AWS credentials are forwarded automatically (environment variables and `~/.aws` mounted read-only for Python
containers).

## Packaging and Deployment

Expand Down
39 changes: 32 additions & 7 deletions docs/frameworks.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,6 +121,34 @@ that runs on AgentCore:
| `--framework <fw>` | `Strands` or `LangChain_LangGraph` |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` |

## Supported Languages

| Language | Build Type | Dev Server | Frameworks |
| -------------- | ---------- | ----------------- | ----------------------------------------------- |
| **Python** | CodeZip | uvicorn (local) | Strands, LangChain/LangGraph, GoogleADK, OpenAI |
| **TypeScript** | Container | tsx watch (local) | Strands |

### TypeScript Agents

TypeScript agents use the [Strands Agents SDK](https://github.com/strands-agents/sdk-typescript) with Express and deploy
as Container images. AgentCore Runtime's CodeZip mode only supports Python runtimes, so TypeScript agents automatically
default to Container build.

> **Local development runs without Docker.** The `agentcore dev` command runs TypeScript agents directly with
> `tsx watch` for fast iteration and hot-reload — no container build needed. Docker/Podman/Finch is only required for
> `agentcore deploy` and `agentcore package`.

```bash
# Create a TypeScript agent
agentcore create --name MyProject --language TypeScript --framework Strands --model-provider Bedrock

# Local dev — runs with tsx, no Docker needed
agentcore dev

# Deploy — builds container image via CodeBuild
agentcore deploy
```

## Bring Your Own (BYO) Agent

For existing agent code or frameworks not listed above, use the BYO option:
Expand All@@ -138,16 +166,13 @@ agentcore add agent \

1. **Entrypoint**: Your code must expose an HTTP endpoint that accepts agent invocation requests
2. **Code location**: Directory containing your agent code
3. **Language**: Python
3. **Language**: Python or TypeScript

### BYO Options

| Flag | Description |
| ------------------------ | ------------------------------------------ |
| `--type byo` | Use BYO mode (required) |
| `--code-location <path>` | Directory containing your agent code |
| `--entrypoint <file>` | Entry file (e.g., `main.py` or `index.ts`) |
| `--language <lang>` | `Python` |
| Flag | Description |\n| ------------------------ | ------------------------------------------ | | `--type byo` | Use
BYO mode (required) | | `--code-location <path>` | Directory containing your agent code | | `--entrypoint <file>` |
Entry file (e.g., `main.py` or `main.ts`) | | `--language <lang>` | `Python` or `TypeScript` |

## Framework Comparison

Expand Down
19 changes: 16 additions & 3 deletions docs/local-development.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,6 +42,16 @@ The dev server automatically:
2. Runs `uv sync` to install dependencies from `pyproject.toml`
3. Starts uvicorn with your agent

### TypeScript / Node.js

The dev server automatically:

1. Runs `npm install` if `node_modules` is missing
2. Starts `tsx watch` with your agent entry point (hot-reload enabled)

> TypeScript agents use Container build for deployment, but `agentcore dev` runs them locally without Docker for fast
> iteration.

### API Keys

For non-Bedrock providers, add keys to `agentcore/.env.local`:
Expand DownExpand Up@@ -93,10 +103,13 @@ immediately.

### Container Agents

For container agents, the dev server builds a Docker image and runs it with your source directory mounted as a volume.
Changes to your code are picked up by uvicorn's `--reload` inside the container — no image rebuild needed.
For Python container agents, the dev server builds a Docker image and runs it with your source directory mounted as a
volume. Changes to your code are picked up by uvicorn's `--reload` inside the container — no image rebuild needed.

TypeScript agents always run locally in dev mode (via `tsx watch`), even though they use Container build for deployment.
No Docker is needed for `agentcore dev` with TypeScript.

See [Container Builds](container-builds.md) for full details on container development.
See [Container Builds](container-builds.md) for full details on container development and deployment.

## Dev vs Deployed Behavior

Expand Down
Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Closed
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
1 change: 1 addition & 0 deletions .prettierignore
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
CHANGELOG.md
src/assets/**/*.md
src/assets/**/*.ts
6 changes: 5 additions & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,6 +14,7 @@ AgentCore with minimal configuration.

- **Node.js** 20.x or later
- **uv** for Python agents ([install](https://docs.astral.sh/uv/getting-started/installation/))
- **Docker**, **Podman**, or **Finch** for TypeScript agents (Container deployment only)

## Installation

Expand DownExpand Up@@ -120,11 +121,14 @@ my-project/
```
├── app/ # Application code
│ └── <AgentName>/ # Agent directory
│ ├── main.py # Agent entry point
│ ├── main.py # Python agent entry point
│ ├── pyproject.toml # Python dependencies
│ └── model/ # Model configuration
```

TypeScript agents use a similar structure with `main.ts`, `package.json`, `tsconfig.json`, and a `Dockerfile` for
deployment.

## Configuration

Projects use JSON schema files in the `agentcore/` directory:
Expand Down
52 changes: 26 additions & 26 deletions docs/commands.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -65,30 +65,30 @@ agentcore create \
--memory none
```

| Flag | Description |
| ------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Project name (alphanumeric, starts with letter, max 23 chars) |
| `--defaults` | Use defaults (Python, Strands, Bedrock, no memory) |
| `--no-agent` | Skip agent creation |
| `--type <type>` | `create` (default) or `import` |
| `--language <lang>` | `Python` (default) |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--build <type>` | `CodeZip` (default) or `Container` (see [Container Builds](container-builds.md)) |
| `--api-key <key>` | API key for non-Bedrock providers |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` (see [Memory Shorthand Mapping](memory.md#--memory-shorthand-mapping)) |
| `--protocol <protocol>` | `HTTP` (default), `MCP`, `A2A` |
| `--network-mode <mode>` | `PUBLIC` (default) or `VPC` |
| `--subnets <ids>` | Comma-separated subnet IDs (required for VPC mode) |
| `--security-groups <ids>` | Comma-separated security group IDs (required for VPC mode) |
| `--agent-id <id>` | Bedrock Agent ID (import only) |
| `--agent-alias-id <id>` | Bedrock Agent Alias ID (import only) |
| `--region <region>` | AWS region for Bedrock Agent (import only) |
| `--output-dir <dir>` | Output directory |
| `--skip-git` | Skip git initialization |
| `--skip-python-setup` | Skip venv setup |
| `--dry-run` | Preview without creating |
| `--json` | JSON output |
| Flag | Description |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Project name (alphanumeric, starts with letter, max 23 chars) |
| `--defaults` | Use defaults (Python, Strands, Bedrock, no memory) |
| `--no-agent` | Skip agent creation |
| `--type <type>` | `create` (default) or `import` |
| `--language <lang>` | `Python` (default) or `TypeScript` |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--build <type>` | `CodeZip` (default for Python) or `Container` (default for TypeScript; see [Container Builds](container-builds.md)) |
| `--api-key <key>` | API key for non-Bedrock providers |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` (see [Memory Shorthand Mapping](memory.md#--memory-shorthand-mapping)) |
| `--protocol <protocol>` | `HTTP` (default), `MCP`, `A2A` |
| `--network-mode <mode>` | `PUBLIC` (default) or `VPC` |
| `--subnets <ids>` | Comma-separated subnet IDs (required for VPC mode) |
| `--security-groups <ids>` | Comma-separated security group IDs (required for VPC mode) |
| `--agent-id <id>` | Bedrock Agent ID (import only) |
| `--agent-alias-id <id>` | Bedrock Agent Alias ID (import only) |
| `--region <region>` | AWS region for Bedrock Agent (import only) |
| `--output-dir <dir>` | Output directory |
| `--skip-git` | Skip git initialization |
| `--skip-python-setup` | Skip venv setup |
| `--dry-run` | Preview without creating |
| `--json` | JSON output |

### deploy

Expand DownExpand Up@@ -197,8 +197,8 @@ agentcore add agent \
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Agent name (alphanumeric + underscores, starts with letter, max 48 chars) |
| `--type <type>` | `create` (default), `byo`, or `import` |
| `--build <type>` | `CodeZip` (default) or `Container` (see [Container Builds](container-builds.md)) |
| `--language <lang>` | `Python` (create); `Python`, `TypeScript`, `Other` (BYO) |
| `--build <type>` | `CodeZip` (default for Python) or `Container` (default for TypeScript; see [Container Builds](container-builds.md)) |
| `--language <lang>` | `Python` (default) or `TypeScript` (create); `Python`, `TypeScript`, `Other` (BYO) |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--api-key <key>` | API key for non-Bedrock providers |
Expand Down
38 changes: 32 additions & 6 deletions docs/container-builds.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
Container builds package your agent as a Docker container image instead of a code ZIP. Use containers when you need
system-level dependencies, custom native libraries, or full control over the runtime environment.

TypeScript agents always use Container build because AgentCore Runtime's CodeZip mode only supports Python runtimes. The
CLI sets this automatically — no manual configuration needed.

## Prerequisites

A container runtime is required for local development (`agentcore dev`) and packaging (`agentcore package`). Supported
runtimes:
A container runtime is required for packaging (`agentcore package`) and for Python container agents during local
development. Supported runtimes:

1. [Docker](https://docker.com)
2. [Podman](https://podman.io)
Expand All@@ -16,13 +19,18 @@ The CLI auto-detects the first working runtime in the order listed above. If mul
highest-priority one wins.

> A local runtime is **not** required for `agentcore deploy` — AWS CodeBuild builds the image remotely.
>
> TypeScript agents do **not** need a local container runtime for `agentcore dev` — they run directly with `tsx watch`.

## Getting Started

```bash
# New project with container build
# Python project with container build (opt-in)
agentcore create --name MyProject --build Container

# TypeScript project (Container is the default and only option)
agentcore create --name MyProject --language TypeScript --framework Strands --model-provider Bedrock

# Add container agent to existing project
agentcore add agent --name MyAgent --build Container --framework Strands --model-provider Bedrock
```
Expand All@@ -33,10 +41,21 @@ Both commands generate a `Dockerfile` and `.dockerignore` in the agent's code di
app/MyAgent/
├── Dockerfile
├── .dockerignore
├── pyproject.toml
├── pyproject.toml # Python
└── main.py
```

TypeScript agents generate a Node.js-based Dockerfile:

```
app/MyAgent/
├── Dockerfile # Node 22 slim base
├── .dockerignore
├── package.json
├── tsconfig.json
└── main.ts
```

## Generated Dockerfile

The template uses `ghcr.io/astral-sh/uv:python3.12-bookworm-slim` as the base image with these design choices:
Expand DownExpand Up@@ -75,13 +94,20 @@ All other fields work the same as CodeZip agents.
agentcore dev
```

For container agents, the dev server:
For **Python** container agents, the dev server:

1. Builds the container image and adds a dev layer with `uvicorn`
2. Runs the container with your source directory volume-mounted at `/app`
3. Enables hot reload via `uvicorn --reload` — code changes apply without rebuilding

AWS credentials are forwarded automatically (environment variables and `~/.aws` mounted read-only).
For **TypeScript** container agents, the dev server runs locally without Docker:

1. Runs `npm install` if needed
2. Starts `tsx watch` with hot-reload
3. No container build or runtime required

AWS credentials are forwarded automatically (environment variables and `~/.aws` mounted read-only for Python
containers).

## Packaging and Deployment

Expand Down
39 changes: 32 additions & 7 deletions docs/frameworks.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,6 +121,34 @@ that runs on AgentCore:
| `--framework <fw>` | `Strands` or `LangChain_LangGraph` |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` |

## Supported Languages

| Language | Build Type | Dev Server | Frameworks |
| -------------- | ---------- | ----------------- | ----------------------------------------------- |
| **Python** | CodeZip | uvicorn (local) | Strands, LangChain/LangGraph, GoogleADK, OpenAI |
| **TypeScript** | Container | tsx watch (local) | Strands |

### TypeScript Agents

TypeScript agents use the [Strands Agents SDK](https://github.com/strands-agents/sdk-typescript) with Express and deploy
as Container images. AgentCore Runtime's CodeZip mode only supports Python runtimes, so TypeScript agents automatically
default to Container build.

> **Local development runs without Docker.** The `agentcore dev` command runs TypeScript agents directly with
> `tsx watch` for fast iteration and hot-reload — no container build needed. Docker/Podman/Finch is only required for
> `agentcore deploy` and `agentcore package`.

```bash
# Create a TypeScript agent
agentcore create --name MyProject --language TypeScript --framework Strands --model-provider Bedrock

# Local dev — runs with tsx, no Docker needed
agentcore dev

# Deploy — builds container image via CodeBuild
agentcore deploy
```

## Bring Your Own (BYO) Agent

For existing agent code or frameworks not listed above, use the BYO option:
Expand All@@ -138,16 +166,13 @@ agentcore add agent \

1. **Entrypoint**: Your code must expose an HTTP endpoint that accepts agent invocation requests
2. **Code location**: Directory containing your agent code
3. **Language**: Python
3. **Language**: Python or TypeScript

### BYO Options

| Flag | Description |
| ------------------------ | ------------------------------------------ |
| `--type byo` | Use BYO mode (required) |
| `--code-location <path>` | Directory containing your agent code |
| `--entrypoint <file>` | Entry file (e.g., `main.py` or `index.ts`) |
| `--language <lang>` | `Python` |
| Flag | Description |\n| ------------------------ | ------------------------------------------ | | `--type byo` | Use
BYO mode (required) | | `--code-location <path>` | Directory containing your agent code | | `--entrypoint <file>` |
Entry file (e.g., `main.py` or `main.ts`) | | `--language <lang>` | `Python` or `TypeScript` |

## Framework Comparison

Expand Down
19 changes: 16 additions & 3 deletions docs/local-development.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,6 +42,16 @@ The dev server automatically:
2. Runs `uv sync` to install dependencies from `pyproject.toml`
3. Starts uvicorn with your agent

### TypeScript / Node.js

The dev server automatically:

1. Runs `npm install` if `node_modules` is missing
2. Starts `tsx watch` with your agent entry point (hot-reload enabled)

> TypeScript agents use Container build for deployment, but `agentcore dev` runs them locally without Docker for fast
> iteration.

### API Keys

For non-Bedrock providers, add keys to `agentcore/.env.local`:
Expand DownExpand Up@@ -93,10 +103,13 @@ immediately.

### Container Agents

For container agents, the dev server builds a Docker image and runs it with your source directory mounted as a volume.
Changes to your code are picked up by uvicorn's `--reload` inside the container — no image rebuild needed.
For Python container agents, the dev server builds a Docker image and runs it with your source directory mounted as a
volume. Changes to your code are picked up by uvicorn's `--reload` inside the container — no image rebuild needed.

TypeScript agents always run locally in dev mode (via `tsx watch`), even though they use Container build for deployment.
No Docker is needed for `agentcore dev` with TypeScript.

See [Container Builds](container-builds.md) for full details on container development.
See [Container Builds](container-builds.md) for full details on container development and deployment.

## Dev vs Deployed Behavior

Expand Down
Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Closed
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
1 change: 1 addition & 0 deletions .prettierignore
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
CHANGELOG.md
src/assets/**/*.md
src/assets/**/*.ts
6 changes: 5 additions & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,6 +14,7 @@ AgentCore with minimal configuration.

- **Node.js** 20.x or later
- **uv** for Python agents ([install](https://docs.astral.sh/uv/getting-started/installation/))
- **Docker**, **Podman**, or **Finch** for TypeScript agents (Container deployment only)

## Installation

Expand DownExpand Up@@ -120,11 +121,14 @@ my-project/
```
├── app/ # Application code
│ └── <AgentName>/ # Agent directory
│ ├── main.py # Agent entry point
│ ├── main.py # Python agent entry point
│ ├── pyproject.toml # Python dependencies
│ └── model/ # Model configuration
```

TypeScript agents use a similar structure with `main.ts`, `package.json`, `tsconfig.json`, and a `Dockerfile` for
deployment.

## Configuration

Projects use JSON schema files in the `agentcore/` directory:
Expand Down
52 changes: 26 additions & 26 deletions docs/commands.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -65,30 +65,30 @@ agentcore create \
--memory none
```

| Flag | Description |
| ------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Project name (alphanumeric, starts with letter, max 23 chars) |
| `--defaults` | Use defaults (Python, Strands, Bedrock, no memory) |
| `--no-agent` | Skip agent creation |
| `--type <type>` | `create` (default) or `import` |
| `--language <lang>` | `Python` (default) |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--build <type>` | `CodeZip` (default) or `Container` (see [Container Builds](container-builds.md)) |
| `--api-key <key>` | API key for non-Bedrock providers |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` (see [Memory Shorthand Mapping](memory.md#--memory-shorthand-mapping)) |
| `--protocol <protocol>` | `HTTP` (default), `MCP`, `A2A` |
| `--network-mode <mode>` | `PUBLIC` (default) or `VPC` |
| `--subnets <ids>` | Comma-separated subnet IDs (required for VPC mode) |
| `--security-groups <ids>` | Comma-separated security group IDs (required for VPC mode) |
| `--agent-id <id>` | Bedrock Agent ID (import only) |
| `--agent-alias-id <id>` | Bedrock Agent Alias ID (import only) |
| `--region <region>` | AWS region for Bedrock Agent (import only) |
| `--output-dir <dir>` | Output directory |
| `--skip-git` | Skip git initialization |
| `--skip-python-setup` | Skip venv setup |
| `--dry-run` | Preview without creating |
| `--json` | JSON output |
| Flag | Description |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Project name (alphanumeric, starts with letter, max 23 chars) |
| `--defaults` | Use defaults (Python, Strands, Bedrock, no memory) |
| `--no-agent` | Skip agent creation |
| `--type <type>` | `create` (default) or `import` |
| `--language <lang>` | `Python` (default) or `TypeScript` |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--build <type>` | `CodeZip` (default for Python) or `Container` (default for TypeScript; see [Container Builds](container-builds.md)) |
| `--api-key <key>` | API key for non-Bedrock providers |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` (see [Memory Shorthand Mapping](memory.md#--memory-shorthand-mapping)) |
| `--protocol <protocol>` | `HTTP` (default), `MCP`, `A2A` |
| `--network-mode <mode>` | `PUBLIC` (default) or `VPC` |
| `--subnets <ids>` | Comma-separated subnet IDs (required for VPC mode) |
| `--security-groups <ids>` | Comma-separated security group IDs (required for VPC mode) |
| `--agent-id <id>` | Bedrock Agent ID (import only) |
| `--agent-alias-id <id>` | Bedrock Agent Alias ID (import only) |
| `--region <region>` | AWS region for Bedrock Agent (import only) |
| `--output-dir <dir>` | Output directory |
| `--skip-git` | Skip git initialization |
| `--skip-python-setup` | Skip venv setup |
| `--dry-run` | Preview without creating |
| `--json` | JSON output |

### deploy

Expand DownExpand Up@@ -197,8 +197,8 @@ agentcore add agent \
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Agent name (alphanumeric + underscores, starts with letter, max 48 chars) |
| `--type <type>` | `create` (default), `byo`, or `import` |
| `--build <type>` | `CodeZip` (default) or `Container` (see [Container Builds](container-builds.md)) |
| `--language <lang>` | `Python` (create); `Python`, `TypeScript`, `Other` (BYO) |
| `--build <type>` | `CodeZip` (default for Python) or `Container` (default for TypeScript; see [Container Builds](container-builds.md)) |
| `--language <lang>` | `Python` (default) or `TypeScript` (create); `Python`, `TypeScript`, `Other` (BYO) |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--api-key <key>` | API key for non-Bedrock providers |
Expand Down
38 changes: 32 additions & 6 deletions docs/container-builds.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
Container builds package your agent as a Docker container image instead of a code ZIP. Use containers when you need
system-level dependencies, custom native libraries, or full control over the runtime environment.

TypeScript agents always use Container build because AgentCore Runtime's CodeZip mode only supports Python runtimes. The
CLI sets this automatically — no manual configuration needed.

## Prerequisites

A container runtime is required for local development (`agentcore dev`) and packaging (`agentcore package`). Supported
runtimes:
A container runtime is required for packaging (`agentcore package`) and for Python container agents during local
development. Supported runtimes:

1. [Docker](https://docker.com)
2. [Podman](https://podman.io)
Expand All@@ -16,13 +19,18 @@ The CLI auto-detects the first working runtime in the order listed above. If mul
highest-priority one wins.

> A local runtime is **not** required for `agentcore deploy` — AWS CodeBuild builds the image remotely.
>
> TypeScript agents do **not** need a local container runtime for `agentcore dev` — they run directly with `tsx watch`.

## Getting Started

```bash
# New project with container build
# Python project with container build (opt-in)
agentcore create --name MyProject --build Container

# TypeScript project (Container is the default and only option)
agentcore create --name MyProject --language TypeScript --framework Strands --model-provider Bedrock

# Add container agent to existing project
agentcore add agent --name MyAgent --build Container --framework Strands --model-provider Bedrock
```
Expand All@@ -33,10 +41,21 @@ Both commands generate a `Dockerfile` and `.dockerignore` in the agent's code di
app/MyAgent/
├── Dockerfile
├── .dockerignore
├── pyproject.toml
├── pyproject.toml # Python
└── main.py
```

TypeScript agents generate a Node.js-based Dockerfile:

```
app/MyAgent/
├── Dockerfile # Node 22 slim base
├── .dockerignore
├── package.json
├── tsconfig.json
└── main.ts
```

## Generated Dockerfile

The template uses `ghcr.io/astral-sh/uv:python3.12-bookworm-slim` as the base image with these design choices:
Expand DownExpand Up@@ -75,13 +94,20 @@ All other fields work the same as CodeZip agents.
agentcore dev
```

For container agents, the dev server:
For **Python** container agents, the dev server:

1. Builds the container image and adds a dev layer with `uvicorn`
2. Runs the container with your source directory volume-mounted at `/app`
3. Enables hot reload via `uvicorn --reload` — code changes apply without rebuilding

AWS credentials are forwarded automatically (environment variables and `~/.aws` mounted read-only).
For **TypeScript** container agents, the dev server runs locally without Docker:

1. Runs `npm install` if needed
2. Starts `tsx watch` with hot-reload
3. No container build or runtime required

AWS credentials are forwarded automatically (environment variables and `~/.aws` mounted read-only for Python
containers).

## Packaging and Deployment

Expand Down
39 changes: 32 additions & 7 deletions docs/frameworks.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,6 +121,34 @@ that runs on AgentCore:
| `--framework <fw>` | `Strands` or `LangChain_LangGraph` |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` |

## Supported Languages

| Language | Build Type | Dev Server | Frameworks |
| -------------- | ---------- | ----------------- | ----------------------------------------------- |
| **Python** | CodeZip | uvicorn (local) | Strands, LangChain/LangGraph, GoogleADK, OpenAI |
| **TypeScript** | Container | tsx watch (local) | Strands |

### TypeScript Agents

TypeScript agents use the [Strands Agents SDK](https://github.com/strands-agents/sdk-typescript) with Express and deploy
as Container images. AgentCore Runtime's CodeZip mode only supports Python runtimes, so TypeScript agents automatically
default to Container build.

> **Local development runs without Docker.** The `agentcore dev` command runs TypeScript agents directly with
> `tsx watch` for fast iteration and hot-reload — no container build needed. Docker/Podman/Finch is only required for
> `agentcore deploy` and `agentcore package`.

```bash
# Create a TypeScript agent
agentcore create --name MyProject --language TypeScript --framework Strands --model-provider Bedrock

# Local dev — runs with tsx, no Docker needed
agentcore dev

# Deploy — builds container image via CodeBuild
agentcore deploy
```

## Bring Your Own (BYO) Agent

For existing agent code or frameworks not listed above, use the BYO option:
Expand All@@ -138,16 +166,13 @@ agentcore add agent \

1. **Entrypoint**: Your code must expose an HTTP endpoint that accepts agent invocation requests
2. **Code location**: Directory containing your agent code
3. **Language**: Python
3. **Language**: Python or TypeScript

### BYO Options

| Flag | Description |
| ------------------------ | ------------------------------------------ |
| `--type byo` | Use BYO mode (required) |
| `--code-location <path>` | Directory containing your agent code |
| `--entrypoint <file>` | Entry file (e.g., `main.py` or `index.ts`) |
| `--language <lang>` | `Python` |
| Flag | Description |\n| ------------------------ | ------------------------------------------ | | `--type byo` | Use
BYO mode (required) | | `--code-location <path>` | Directory containing your agent code | | `--entrypoint <file>` |
Entry file (e.g., `main.py` or `main.ts`) | | `--language <lang>` | `Python` or `TypeScript` |

## Framework Comparison

Expand Down
19 changes: 16 additions & 3 deletions docs/local-development.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,6 +42,16 @@ The dev server automatically:
2. Runs `uv sync` to install dependencies from `pyproject.toml`
3. Starts uvicorn with your agent

### TypeScript / Node.js

The dev server automatically:

1. Runs `npm install` if `node_modules` is missing
2. Starts `tsx watch` with your agent entry point (hot-reload enabled)

> TypeScript agents use Container build for deployment, but `agentcore dev` runs them locally without Docker for fast
> iteration.

### API Keys

For non-Bedrock providers, add keys to `agentcore/.env.local`:
Expand DownExpand Up@@ -93,10 +103,13 @@ immediately.

### Container Agents

For container agents, the dev server builds a Docker image and runs it with your source directory mounted as a volume.
Changes to your code are picked up by uvicorn's `--reload` inside the container — no image rebuild needed.
For Python container agents, the dev server builds a Docker image and runs it with your source directory mounted as a
volume. Changes to your code are picked up by uvicorn's `--reload` inside the container — no image rebuild needed.

TypeScript agents always run locally in dev mode (via `tsx watch`), even though they use Container build for deployment.
No Docker is needed for `agentcore dev` with TypeScript.

See [Container Builds](container-builds.md) for full details on container development.
See [Container Builds](container-builds.md) for full details on container development and deployment.

## Dev vs Deployed Behavior

Expand Down
Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Closed
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
1 change: 1 addition & 0 deletions .prettierignore
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
CHANGELOG.md
src/assets/**/*.md
src/assets/**/*.ts
6 changes: 5 additions & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,6 +14,7 @@ AgentCore with minimal configuration.

- **Node.js** 20.x or later
- **uv** for Python agents ([install](https://docs.astral.sh/uv/getting-started/installation/))
- **Docker**, **Podman**, or **Finch** for TypeScript agents (Container deployment only)

## Installation

Expand DownExpand Up@@ -120,11 +121,14 @@ my-project/
```
├── app/ # Application code
│ └── <AgentName>/ # Agent directory
│ ├── main.py # Agent entry point
│ ├── main.py # Python agent entry point
│ ├── pyproject.toml # Python dependencies
│ └── model/ # Model configuration
```

TypeScript agents use a similar structure with `main.ts`, `package.json`, `tsconfig.json`, and a `Dockerfile` for
deployment.

## Configuration

Projects use JSON schema files in the `agentcore/` directory:
Expand Down
52 changes: 26 additions & 26 deletions docs/commands.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -65,30 +65,30 @@ agentcore create \
--memory none
```

| Flag | Description |
| ------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Project name (alphanumeric, starts with letter, max 23 chars) |
| `--defaults` | Use defaults (Python, Strands, Bedrock, no memory) |
| `--no-agent` | Skip agent creation |
| `--type <type>` | `create` (default) or `import` |
| `--language <lang>` | `Python` (default) |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--build <type>` | `CodeZip` (default) or `Container` (see [Container Builds](container-builds.md)) |
| `--api-key <key>` | API key for non-Bedrock providers |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` (see [Memory Shorthand Mapping](memory.md#--memory-shorthand-mapping)) |
| `--protocol <protocol>` | `HTTP` (default), `MCP`, `A2A` |
| `--network-mode <mode>` | `PUBLIC` (default) or `VPC` |
| `--subnets <ids>` | Comma-separated subnet IDs (required for VPC mode) |
| `--security-groups <ids>` | Comma-separated security group IDs (required for VPC mode) |
| `--agent-id <id>` | Bedrock Agent ID (import only) |
| `--agent-alias-id <id>` | Bedrock Agent Alias ID (import only) |
| `--region <region>` | AWS region for Bedrock Agent (import only) |
| `--output-dir <dir>` | Output directory |
| `--skip-git` | Skip git initialization |
| `--skip-python-setup` | Skip venv setup |
| `--dry-run` | Preview without creating |
| `--json` | JSON output |
| Flag | Description |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Project name (alphanumeric, starts with letter, max 23 chars) |
| `--defaults` | Use defaults (Python, Strands, Bedrock, no memory) |
| `--no-agent` | Skip agent creation |
| `--type <type>` | `create` (default) or `import` |
| `--language <lang>` | `Python` (default) or `TypeScript` |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--build <type>` | `CodeZip` (default for Python) or `Container` (default for TypeScript; see [Container Builds](container-builds.md)) |
| `--api-key <key>` | API key for non-Bedrock providers |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` (see [Memory Shorthand Mapping](memory.md#--memory-shorthand-mapping)) |
| `--protocol <protocol>` | `HTTP` (default), `MCP`, `A2A` |
| `--network-mode <mode>` | `PUBLIC` (default) or `VPC` |
| `--subnets <ids>` | Comma-separated subnet IDs (required for VPC mode) |
| `--security-groups <ids>` | Comma-separated security group IDs (required for VPC mode) |
| `--agent-id <id>` | Bedrock Agent ID (import only) |
| `--agent-alias-id <id>` | Bedrock Agent Alias ID (import only) |
| `--region <region>` | AWS region for Bedrock Agent (import only) |
| `--output-dir <dir>` | Output directory |
| `--skip-git` | Skip git initialization |
| `--skip-python-setup` | Skip venv setup |
| `--dry-run` | Preview without creating |
| `--json` | JSON output |

### deploy

Expand DownExpand Up@@ -197,8 +197,8 @@ agentcore add agent \
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Agent name (alphanumeric + underscores, starts with letter, max 48 chars) |
| `--type <type>` | `create` (default), `byo`, or `import` |
| `--build <type>` | `CodeZip` (default) or `Container` (see [Container Builds](container-builds.md)) |
| `--language <lang>` | `Python` (create); `Python`, `TypeScript`, `Other` (BYO) |
| `--build <type>` | `CodeZip` (default for Python) or `Container` (default for TypeScript; see [Container Builds](container-builds.md)) |
| `--language <lang>` | `Python` (default) or `TypeScript` (create); `Python`, `TypeScript`, `Other` (BYO) |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--api-key <key>` | API key for non-Bedrock providers |
Expand Down
38 changes: 32 additions & 6 deletions docs/container-builds.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
Container builds package your agent as a Docker container image instead of a code ZIP. Use containers when you need
system-level dependencies, custom native libraries, or full control over the runtime environment.

TypeScript agents always use Container build because AgentCore Runtime's CodeZip mode only supports Python runtimes. The
CLI sets this automatically — no manual configuration needed.

## Prerequisites

A container runtime is required for local development (`agentcore dev`) and packaging (`agentcore package`). Supported
runtimes:
A container runtime is required for packaging (`agentcore package`) and for Python container agents during local
development. Supported runtimes:

1. [Docker](https://docker.com)
2. [Podman](https://podman.io)
Expand All@@ -16,13 +19,18 @@ The CLI auto-detects the first working runtime in the order listed above. If mul
highest-priority one wins.

> A local runtime is **not** required for `agentcore deploy` — AWS CodeBuild builds the image remotely.
>
> TypeScript agents do **not** need a local container runtime for `agentcore dev` — they run directly with `tsx watch`.

## Getting Started

```bash
# New project with container build
# Python project with container build (opt-in)
agentcore create --name MyProject --build Container

# TypeScript project (Container is the default and only option)
agentcore create --name MyProject --language TypeScript --framework Strands --model-provider Bedrock

# Add container agent to existing project
agentcore add agent --name MyAgent --build Container --framework Strands --model-provider Bedrock
```
Expand All@@ -33,10 +41,21 @@ Both commands generate a `Dockerfile` and `.dockerignore` in the agent's code di
app/MyAgent/
├── Dockerfile
├── .dockerignore
├── pyproject.toml
├── pyproject.toml # Python
└── main.py
```

TypeScript agents generate a Node.js-based Dockerfile:

```
app/MyAgent/
├── Dockerfile # Node 22 slim base
├── .dockerignore
├── package.json
├── tsconfig.json
└── main.ts
```

## Generated Dockerfile

The template uses `ghcr.io/astral-sh/uv:python3.12-bookworm-slim` as the base image with these design choices:
Expand DownExpand Up@@ -75,13 +94,20 @@ All other fields work the same as CodeZip agents.
agentcore dev
```

For container agents, the dev server:
For **Python** container agents, the dev server:

1. Builds the container image and adds a dev layer with `uvicorn`
2. Runs the container with your source directory volume-mounted at `/app`
3. Enables hot reload via `uvicorn --reload` — code changes apply without rebuilding

AWS credentials are forwarded automatically (environment variables and `~/.aws` mounted read-only).
For **TypeScript** container agents, the dev server runs locally without Docker:

1. Runs `npm install` if needed
2. Starts `tsx watch` with hot-reload
3. No container build or runtime required

AWS credentials are forwarded automatically (environment variables and `~/.aws` mounted read-only for Python
containers).

## Packaging and Deployment

Expand Down
39 changes: 32 additions & 7 deletions docs/frameworks.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,6 +121,34 @@ that runs on AgentCore:
| `--framework <fw>` | `Strands` or `LangChain_LangGraph` |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` |

## Supported Languages

| Language | Build Type | Dev Server | Frameworks |
| -------------- | ---------- | ----------------- | ----------------------------------------------- |
| **Python** | CodeZip | uvicorn (local) | Strands, LangChain/LangGraph, GoogleADK, OpenAI |
| **TypeScript** | Container | tsx watch (local) | Strands |

### TypeScript Agents

TypeScript agents use the [Strands Agents SDK](https://github.com/strands-agents/sdk-typescript) with Express and deploy
as Container images. AgentCore Runtime's CodeZip mode only supports Python runtimes, so TypeScript agents automatically
default to Container build.

> **Local development runs without Docker.** The `agentcore dev` command runs TypeScript agents directly with
> `tsx watch` for fast iteration and hot-reload — no container build needed. Docker/Podman/Finch is only required for
> `agentcore deploy` and `agentcore package`.

```bash
# Create a TypeScript agent
agentcore create --name MyProject --language TypeScript --framework Strands --model-provider Bedrock

# Local dev — runs with tsx, no Docker needed
agentcore dev

# Deploy — builds container image via CodeBuild
agentcore deploy
```

## Bring Your Own (BYO) Agent

For existing agent code or frameworks not listed above, use the BYO option:
Expand All@@ -138,16 +166,13 @@ agentcore add agent \

1. **Entrypoint**: Your code must expose an HTTP endpoint that accepts agent invocation requests
2. **Code location**: Directory containing your agent code
3. **Language**: Python
3. **Language**: Python or TypeScript

### BYO Options

| Flag | Description |
| ------------------------ | ------------------------------------------ |
| `--type byo` | Use BYO mode (required) |
| `--code-location <path>` | Directory containing your agent code |
| `--entrypoint <file>` | Entry file (e.g., `main.py` or `index.ts`) |
| `--language <lang>` | `Python` |
| Flag | Description |\n| ------------------------ | ------------------------------------------ | | `--type byo` | Use
BYO mode (required) | | `--code-location <path>` | Directory containing your agent code | | `--entrypoint <file>` |
Entry file (e.g., `main.py` or `main.ts`) | | `--language <lang>` | `Python` or `TypeScript` |

## Framework Comparison

Expand Down
19 changes: 16 additions & 3 deletions docs/local-development.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,6 +42,16 @@ The dev server automatically:
2. Runs `uv sync` to install dependencies from `pyproject.toml`
3. Starts uvicorn with your agent

### TypeScript / Node.js

The dev server automatically:

1. Runs `npm install` if `node_modules` is missing
2. Starts `tsx watch` with your agent entry point (hot-reload enabled)

> TypeScript agents use Container build for deployment, but `agentcore dev` runs them locally without Docker for fast
> iteration.

### API Keys

For non-Bedrock providers, add keys to `agentcore/.env.local`:
Expand DownExpand Up@@ -93,10 +103,13 @@ immediately.

### Container Agents

For container agents, the dev server builds a Docker image and runs it with your source directory mounted as a volume.
Changes to your code are picked up by uvicorn's `--reload` inside the container — no image rebuild needed.
For Python container agents, the dev server builds a Docker image and runs it with your source directory mounted as a
volume. Changes to your code are picked up by uvicorn's `--reload` inside the container — no image rebuild needed.

TypeScript agents always run locally in dev mode (via `tsx watch`), even though they use Container build for deployment.
No Docker is needed for `agentcore dev` with TypeScript.

See [Container Builds](container-builds.md) for full details on container development.
See [Container Builds](container-builds.md) for full details on container development and deployment.

## Dev vs Deployed Behavior

Expand Down
Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Closed
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
1 change: 1 addition & 0 deletions .prettierignore
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
CHANGELOG.md
src/assets/**/*.md
src/assets/**/*.ts
6 changes: 5 additions & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,6 +14,7 @@ AgentCore with minimal configuration.

- **Node.js** 20.x or later
- **uv** for Python agents ([install](https://docs.astral.sh/uv/getting-started/installation/))
- **Docker**, **Podman**, or **Finch** for TypeScript agents (Container deployment only)

## Installation

Expand DownExpand Up@@ -120,11 +121,14 @@ my-project/
```
├── app/ # Application code
│ └── <AgentName>/ # Agent directory
│ ├── main.py # Agent entry point
│ ├── main.py # Python agent entry point
│ ├── pyproject.toml # Python dependencies
│ └── model/ # Model configuration
```

TypeScript agents use a similar structure with `main.ts`, `package.json`, `tsconfig.json`, and a `Dockerfile` for
deployment.

## Configuration

Projects use JSON schema files in the `agentcore/` directory:
Expand Down
52 changes: 26 additions & 26 deletions docs/commands.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -65,30 +65,30 @@ agentcore create \
--memory none
```

| Flag | Description |
| ------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Project name (alphanumeric, starts with letter, max 23 chars) |
| `--defaults` | Use defaults (Python, Strands, Bedrock, no memory) |
| `--no-agent` | Skip agent creation |
| `--type <type>` | `create` (default) or `import` |
| `--language <lang>` | `Python` (default) |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--build <type>` | `CodeZip` (default) or `Container` (see [Container Builds](container-builds.md)) |
| `--api-key <key>` | API key for non-Bedrock providers |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` (see [Memory Shorthand Mapping](memory.md#--memory-shorthand-mapping)) |
| `--protocol <protocol>` | `HTTP` (default), `MCP`, `A2A` |
| `--network-mode <mode>` | `PUBLIC` (default) or `VPC` |
| `--subnets <ids>` | Comma-separated subnet IDs (required for VPC mode) |
| `--security-groups <ids>` | Comma-separated security group IDs (required for VPC mode) |
| `--agent-id <id>` | Bedrock Agent ID (import only) |
| `--agent-alias-id <id>` | Bedrock Agent Alias ID (import only) |
| `--region <region>` | AWS region for Bedrock Agent (import only) |
| `--output-dir <dir>` | Output directory |
| `--skip-git` | Skip git initialization |
| `--skip-python-setup` | Skip venv setup |
| `--dry-run` | Preview without creating |
| `--json` | JSON output |
| Flag | Description |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Project name (alphanumeric, starts with letter, max 23 chars) |
| `--defaults` | Use defaults (Python, Strands, Bedrock, no memory) |
| `--no-agent` | Skip agent creation |
| `--type <type>` | `create` (default) or `import` |
| `--language <lang>` | `Python` (default) or `TypeScript` |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--build <type>` | `CodeZip` (default for Python) or `Container` (default for TypeScript; see [Container Builds](container-builds.md)) |
| `--api-key <key>` | API key for non-Bedrock providers |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` (see [Memory Shorthand Mapping](memory.md#--memory-shorthand-mapping)) |
| `--protocol <protocol>` | `HTTP` (default), `MCP`, `A2A` |
| `--network-mode <mode>` | `PUBLIC` (default) or `VPC` |
| `--subnets <ids>` | Comma-separated subnet IDs (required for VPC mode) |
| `--security-groups <ids>` | Comma-separated security group IDs (required for VPC mode) |
| `--agent-id <id>` | Bedrock Agent ID (import only) |
| `--agent-alias-id <id>` | Bedrock Agent Alias ID (import only) |
| `--region <region>` | AWS region for Bedrock Agent (import only) |
| `--output-dir <dir>` | Output directory |
| `--skip-git` | Skip git initialization |
| `--skip-python-setup` | Skip venv setup |
| `--dry-run` | Preview without creating |
| `--json` | JSON output |

### deploy

Expand DownExpand Up@@ -197,8 +197,8 @@ agentcore add agent \
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Agent name (alphanumeric + underscores, starts with letter, max 48 chars) |
| `--type <type>` | `create` (default), `byo`, or `import` |
| `--build <type>` | `CodeZip` (default) or `Container` (see [Container Builds](container-builds.md)) |
| `--language <lang>` | `Python` (create); `Python`, `TypeScript`, `Other` (BYO) |
| `--build <type>` | `CodeZip` (default for Python) or `Container` (default for TypeScript; see [Container Builds](container-builds.md)) |
| `--language <lang>` | `Python` (default) or `TypeScript` (create); `Python`, `TypeScript`, `Other` (BYO) |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--api-key <key>` | API key for non-Bedrock providers |
Expand Down
38 changes: 32 additions & 6 deletions docs/container-builds.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
Container builds package your agent as a Docker container image instead of a code ZIP. Use containers when you need
system-level dependencies, custom native libraries, or full control over the runtime environment.

TypeScript agents always use Container build because AgentCore Runtime's CodeZip mode only supports Python runtimes. The
CLI sets this automatically — no manual configuration needed.

## Prerequisites

A container runtime is required for local development (`agentcore dev`) and packaging (`agentcore package`). Supported
runtimes:
A container runtime is required for packaging (`agentcore package`) and for Python container agents during local
development. Supported runtimes:

1. [Docker](https://docker.com)
2. [Podman](https://podman.io)
Expand All@@ -16,13 +19,18 @@ The CLI auto-detects the first working runtime in the order listed above. If mul
highest-priority one wins.

> A local runtime is **not** required for `agentcore deploy` — AWS CodeBuild builds the image remotely.
>
> TypeScript agents do **not** need a local container runtime for `agentcore dev` — they run directly with `tsx watch`.

## Getting Started

```bash
# New project with container build
# Python project with container build (opt-in)
agentcore create --name MyProject --build Container

# TypeScript project (Container is the default and only option)
agentcore create --name MyProject --language TypeScript --framework Strands --model-provider Bedrock

# Add container agent to existing project
agentcore add agent --name MyAgent --build Container --framework Strands --model-provider Bedrock
```
Expand All@@ -33,10 +41,21 @@ Both commands generate a `Dockerfile` and `.dockerignore` in the agent's code di
app/MyAgent/
├── Dockerfile
├── .dockerignore
├── pyproject.toml
├── pyproject.toml # Python
└── main.py
```

TypeScript agents generate a Node.js-based Dockerfile:

```
app/MyAgent/
├── Dockerfile # Node 22 slim base
├── .dockerignore
├── package.json
├── tsconfig.json
└── main.ts
```

## Generated Dockerfile

The template uses `ghcr.io/astral-sh/uv:python3.12-bookworm-slim` as the base image with these design choices:
Expand DownExpand Up@@ -75,13 +94,20 @@ All other fields work the same as CodeZip agents.
agentcore dev
```

For container agents, the dev server:
For **Python** container agents, the dev server:

1. Builds the container image and adds a dev layer with `uvicorn`
2. Runs the container with your source directory volume-mounted at `/app`
3. Enables hot reload via `uvicorn --reload` — code changes apply without rebuilding

AWS credentials are forwarded automatically (environment variables and `~/.aws` mounted read-only).
For **TypeScript** container agents, the dev server runs locally without Docker:

1. Runs `npm install` if needed
2. Starts `tsx watch` with hot-reload
3. No container build or runtime required

AWS credentials are forwarded automatically (environment variables and `~/.aws` mounted read-only for Python
containers).

## Packaging and Deployment

Expand Down
39 changes: 32 additions & 7 deletions docs/frameworks.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,6 +121,34 @@ that runs on AgentCore:
| `--framework <fw>` | `Strands` or `LangChain_LangGraph` |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` |

## Supported Languages

| Language | Build Type | Dev Server | Frameworks |
| -------------- | ---------- | ----------------- | ----------------------------------------------- |
| **Python** | CodeZip | uvicorn (local) | Strands, LangChain/LangGraph, GoogleADK, OpenAI |
| **TypeScript** | Container | tsx watch (local) | Strands |

### TypeScript Agents

TypeScript agents use the [Strands Agents SDK](https://github.com/strands-agents/sdk-typescript) with Express and deploy
as Container images. AgentCore Runtime's CodeZip mode only supports Python runtimes, so TypeScript agents automatically
default to Container build.

> **Local development runs without Docker.** The `agentcore dev` command runs TypeScript agents directly with
> `tsx watch` for fast iteration and hot-reload — no container build needed. Docker/Podman/Finch is only required for
> `agentcore deploy` and `agentcore package`.

```bash
# Create a TypeScript agent
agentcore create --name MyProject --language TypeScript --framework Strands --model-provider Bedrock

# Local dev — runs with tsx, no Docker needed
agentcore dev

# Deploy — builds container image via CodeBuild
agentcore deploy
```

## Bring Your Own (BYO) Agent

For existing agent code or frameworks not listed above, use the BYO option:
Expand All@@ -138,16 +166,13 @@ agentcore add agent \

1. **Entrypoint**: Your code must expose an HTTP endpoint that accepts agent invocation requests
2. **Code location**: Directory containing your agent code
3. **Language**: Python
3. **Language**: Python or TypeScript

### BYO Options

| Flag | Description |
| ------------------------ | ------------------------------------------ |
| `--type byo` | Use BYO mode (required) |
| `--code-location <path>` | Directory containing your agent code |
| `--entrypoint <file>` | Entry file (e.g., `main.py` or `index.ts`) |
| `--language <lang>` | `Python` |
| Flag | Description |\n| ------------------------ | ------------------------------------------ | | `--type byo` | Use
BYO mode (required) | | `--code-location <path>` | Directory containing your agent code | | `--entrypoint <file>` |
Entry file (e.g., `main.py` or `main.ts`) | | `--language <lang>` | `Python` or `TypeScript` |

## Framework Comparison

Expand Down
19 changes: 16 additions & 3 deletions docs/local-development.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,6 +42,16 @@ The dev server automatically:
2. Runs `uv sync` to install dependencies from `pyproject.toml`
3. Starts uvicorn with your agent

### TypeScript / Node.js

The dev server automatically:

1. Runs `npm install` if `node_modules` is missing
2. Starts `tsx watch` with your agent entry point (hot-reload enabled)

> TypeScript agents use Container build for deployment, but `agentcore dev` runs them locally without Docker for fast
> iteration.

### API Keys

For non-Bedrock providers, add keys to `agentcore/.env.local`:
Expand DownExpand Up@@ -93,10 +103,13 @@ immediately.

### Container Agents

For container agents, the dev server builds a Docker image and runs it with your source directory mounted as a volume.
Changes to your code are picked up by uvicorn's `--reload` inside the container — no image rebuild needed.
For Python container agents, the dev server builds a Docker image and runs it with your source directory mounted as a
volume. Changes to your code are picked up by uvicorn's `--reload` inside the container — no image rebuild needed.

TypeScript agents always run locally in dev mode (via `tsx watch`), even though they use Container build for deployment.
No Docker is needed for `agentcore dev` with TypeScript.

See [Container Builds](container-builds.md) for full details on container development.
See [Container Builds](container-builds.md) for full details on container development and deployment.

## Dev vs Deployed Behavior

Expand Down
Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Closed
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
1 change: 1 addition & 0 deletions .prettierignore
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
CHANGELOG.md
src/assets/**/*.md
src/assets/**/*.ts
6 changes: 5 additions & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,6 +14,7 @@ AgentCore with minimal configuration.

- **Node.js** 20.x or later
- **uv** for Python agents ([install](https://docs.astral.sh/uv/getting-started/installation/))
- **Docker**, **Podman**, or **Finch** for TypeScript agents (Container deployment only)

## Installation

Expand DownExpand Up@@ -120,11 +121,14 @@ my-project/
```
├── app/ # Application code
│ └── <AgentName>/ # Agent directory
│ ├── main.py # Agent entry point
│ ├── main.py # Python agent entry point
│ ├── pyproject.toml # Python dependencies
│ └── model/ # Model configuration
```

TypeScript agents use a similar structure with `main.ts`, `package.json`, `tsconfig.json`, and a `Dockerfile` for
deployment.

## Configuration

Projects use JSON schema files in the `agentcore/` directory:
Expand Down
52 changes: 26 additions & 26 deletions docs/commands.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -65,30 +65,30 @@ agentcore create \
--memory none
```

| Flag | Description |
| ------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Project name (alphanumeric, starts with letter, max 23 chars) |
| `--defaults` | Use defaults (Python, Strands, Bedrock, no memory) |
| `--no-agent` | Skip agent creation |
| `--type <type>` | `create` (default) or `import` |
| `--language <lang>` | `Python` (default) |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--build <type>` | `CodeZip` (default) or `Container` (see [Container Builds](container-builds.md)) |
| `--api-key <key>` | API key for non-Bedrock providers |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` (see [Memory Shorthand Mapping](memory.md#--memory-shorthand-mapping)) |
| `--protocol <protocol>` | `HTTP` (default), `MCP`, `A2A` |
| `--network-mode <mode>` | `PUBLIC` (default) or `VPC` |
| `--subnets <ids>` | Comma-separated subnet IDs (required for VPC mode) |
| `--security-groups <ids>` | Comma-separated security group IDs (required for VPC mode) |
| `--agent-id <id>` | Bedrock Agent ID (import only) |
| `--agent-alias-id <id>` | Bedrock Agent Alias ID (import only) |
| `--region <region>` | AWS region for Bedrock Agent (import only) |
| `--output-dir <dir>` | Output directory |
| `--skip-git` | Skip git initialization |
| `--skip-python-setup` | Skip venv setup |
| `--dry-run` | Preview without creating |
| `--json` | JSON output |
| Flag | Description |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Project name (alphanumeric, starts with letter, max 23 chars) |
| `--defaults` | Use defaults (Python, Strands, Bedrock, no memory) |
| `--no-agent` | Skip agent creation |
| `--type <type>` | `create` (default) or `import` |
| `--language <lang>` | `Python` (default) or `TypeScript` |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--build <type>` | `CodeZip` (default for Python) or `Container` (default for TypeScript; see [Container Builds](container-builds.md)) |
| `--api-key <key>` | API key for non-Bedrock providers |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` (see [Memory Shorthand Mapping](memory.md#--memory-shorthand-mapping)) |
| `--protocol <protocol>` | `HTTP` (default), `MCP`, `A2A` |
| `--network-mode <mode>` | `PUBLIC` (default) or `VPC` |
| `--subnets <ids>` | Comma-separated subnet IDs (required for VPC mode) |
| `--security-groups <ids>` | Comma-separated security group IDs (required for VPC mode) |
| `--agent-id <id>` | Bedrock Agent ID (import only) |
| `--agent-alias-id <id>` | Bedrock Agent Alias ID (import only) |
| `--region <region>` | AWS region for Bedrock Agent (import only) |
| `--output-dir <dir>` | Output directory |
| `--skip-git` | Skip git initialization |
| `--skip-python-setup` | Skip venv setup |
| `--dry-run` | Preview without creating |
| `--json` | JSON output |

### deploy

Expand DownExpand Up@@ -197,8 +197,8 @@ agentcore add agent \
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Agent name (alphanumeric + underscores, starts with letter, max 48 chars) |
| `--type <type>` | `create` (default), `byo`, or `import` |
| `--build <type>` | `CodeZip` (default) or `Container` (see [Container Builds](container-builds.md)) |
| `--language <lang>` | `Python` (create); `Python`, `TypeScript`, `Other` (BYO) |
| `--build <type>` | `CodeZip` (default for Python) or `Container` (default for TypeScript; see [Container Builds](container-builds.md)) |
| `--language <lang>` | `Python` (default) or `TypeScript` (create); `Python`, `TypeScript`, `Other` (BYO) |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--api-key <key>` | API key for non-Bedrock providers |
Expand Down
38 changes: 32 additions & 6 deletions docs/container-builds.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
Container builds package your agent as a Docker container image instead of a code ZIP. Use containers when you need
system-level dependencies, custom native libraries, or full control over the runtime environment.

TypeScript agents always use Container build because AgentCore Runtime's CodeZip mode only supports Python runtimes. The
CLI sets this automatically — no manual configuration needed.

## Prerequisites

A container runtime is required for local development (`agentcore dev`) and packaging (`agentcore package`). Supported
runtimes:
A container runtime is required for packaging (`agentcore package`) and for Python container agents during local
development. Supported runtimes:

1. [Docker](https://docker.com)
2. [Podman](https://podman.io)
Expand All@@ -16,13 +19,18 @@ The CLI auto-detects the first working runtime in the order listed above. If mul
highest-priority one wins.

> A local runtime is **not** required for `agentcore deploy` — AWS CodeBuild builds the image remotely.
>
> TypeScript agents do **not** need a local container runtime for `agentcore dev` — they run directly with `tsx watch`.

## Getting Started

```bash
# New project with container build
# Python project with container build (opt-in)
agentcore create --name MyProject --build Container

# TypeScript project (Container is the default and only option)
agentcore create --name MyProject --language TypeScript --framework Strands --model-provider Bedrock

# Add container agent to existing project
agentcore add agent --name MyAgent --build Container --framework Strands --model-provider Bedrock
```
Expand All@@ -33,10 +41,21 @@ Both commands generate a `Dockerfile` and `.dockerignore` in the agent's code di
app/MyAgent/
├── Dockerfile
├── .dockerignore
├── pyproject.toml
├── pyproject.toml # Python
└── main.py
```

TypeScript agents generate a Node.js-based Dockerfile:

```
app/MyAgent/
├── Dockerfile # Node 22 slim base
├── .dockerignore
├── package.json
├── tsconfig.json
└── main.ts
```

## Generated Dockerfile

The template uses `ghcr.io/astral-sh/uv:python3.12-bookworm-slim` as the base image with these design choices:
Expand DownExpand Up@@ -75,13 +94,20 @@ All other fields work the same as CodeZip agents.
agentcore dev
```

For container agents, the dev server:
For **Python** container agents, the dev server:

1. Builds the container image and adds a dev layer with `uvicorn`
2. Runs the container with your source directory volume-mounted at `/app`
3. Enables hot reload via `uvicorn --reload` — code changes apply without rebuilding

AWS credentials are forwarded automatically (environment variables and `~/.aws` mounted read-only).
For **TypeScript** container agents, the dev server runs locally without Docker:

1. Runs `npm install` if needed
2. Starts `tsx watch` with hot-reload
3. No container build or runtime required

AWS credentials are forwarded automatically (environment variables and `~/.aws` mounted read-only for Python
containers).

## Packaging and Deployment

Expand Down
39 changes: 32 additions & 7 deletions docs/frameworks.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,6 +121,34 @@ that runs on AgentCore:
| `--framework <fw>` | `Strands` or `LangChain_LangGraph` |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` |

## Supported Languages

| Language | Build Type | Dev Server | Frameworks |
| -------------- | ---------- | ----------------- | ----------------------------------------------- |
| **Python** | CodeZip | uvicorn (local) | Strands, LangChain/LangGraph, GoogleADK, OpenAI |
| **TypeScript** | Container | tsx watch (local) | Strands |

### TypeScript Agents

TypeScript agents use the [Strands Agents SDK](https://github.com/strands-agents/sdk-typescript) with Express and deploy
as Container images. AgentCore Runtime's CodeZip mode only supports Python runtimes, so TypeScript agents automatically
default to Container build.

> **Local development runs without Docker.** The `agentcore dev` command runs TypeScript agents directly with
> `tsx watch` for fast iteration and hot-reload — no container build needed. Docker/Podman/Finch is only required for
> `agentcore deploy` and `agentcore package`.

```bash
# Create a TypeScript agent
agentcore create --name MyProject --language TypeScript --framework Strands --model-provider Bedrock

# Local dev — runs with tsx, no Docker needed
agentcore dev

# Deploy — builds container image via CodeBuild
agentcore deploy
```

## Bring Your Own (BYO) Agent

For existing agent code or frameworks not listed above, use the BYO option:
Expand All@@ -138,16 +166,13 @@ agentcore add agent \

1. **Entrypoint**: Your code must expose an HTTP endpoint that accepts agent invocation requests
2. **Code location**: Directory containing your agent code
3. **Language**: Python
3. **Language**: Python or TypeScript

### BYO Options

| Flag | Description |
| ------------------------ | ------------------------------------------ |
| `--type byo` | Use BYO mode (required) |
| `--code-location <path>` | Directory containing your agent code |
| `--entrypoint <file>` | Entry file (e.g., `main.py` or `index.ts`) |
| `--language <lang>` | `Python` |
| Flag | Description |\n| ------------------------ | ------------------------------------------ | | `--type byo` | Use
BYO mode (required) | | `--code-location <path>` | Directory containing your agent code | | `--entrypoint <file>` |
Entry file (e.g., `main.py` or `main.ts`) | | `--language <lang>` | `Python` or `TypeScript` |

## Framework Comparison

Expand Down
19 changes: 16 additions & 3 deletions docs/local-development.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,6 +42,16 @@ The dev server automatically:
2. Runs `uv sync` to install dependencies from `pyproject.toml`
3. Starts uvicorn with your agent

### TypeScript / Node.js

The dev server automatically:

1. Runs `npm install` if `node_modules` is missing
2. Starts `tsx watch` with your agent entry point (hot-reload enabled)

> TypeScript agents use Container build for deployment, but `agentcore dev` runs them locally without Docker for fast
> iteration.

### API Keys

For non-Bedrock providers, add keys to `agentcore/.env.local`:
Expand DownExpand Up@@ -93,10 +103,13 @@ immediately.

### Container Agents

For container agents, the dev server builds a Docker image and runs it with your source directory mounted as a volume.
Changes to your code are picked up by uvicorn's `--reload` inside the container — no image rebuild needed.
For Python container agents, the dev server builds a Docker image and runs it with your source directory mounted as a
volume. Changes to your code are picked up by uvicorn's `--reload` inside the container — no image rebuild needed.

TypeScript agents always run locally in dev mode (via `tsx watch`), even though they use Container build for deployment.
No Docker is needed for `agentcore dev` with TypeScript.

See [Container Builds](container-builds.md) for full details on container development.
See [Container Builds](container-builds.md) for full details on container development and deployment.

## Dev vs Deployed Behavior

Expand Down
Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Closed
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
1 change: 1 addition & 0 deletions .prettierignore
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
CHANGELOG.md
src/assets/**/*.md
src/assets/**/*.ts
6 changes: 5 additions & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,6 +14,7 @@ AgentCore with minimal configuration.

- **Node.js** 20.x or later
- **uv** for Python agents ([install](https://docs.astral.sh/uv/getting-started/installation/))
- **Docker**, **Podman**, or **Finch** for TypeScript agents (Container deployment only)

## Installation

Expand DownExpand Up@@ -120,11 +121,14 @@ my-project/
```
├── app/ # Application code
│ └── <AgentName>/ # Agent directory
│ ├── main.py # Agent entry point
│ ├── main.py # Python agent entry point
│ ├── pyproject.toml # Python dependencies
│ └── model/ # Model configuration
```

TypeScript agents use a similar structure with `main.ts`, `package.json`, `tsconfig.json`, and a `Dockerfile` for
deployment.

## Configuration

Projects use JSON schema files in the `agentcore/` directory:
Expand Down
52 changes: 26 additions & 26 deletions docs/commands.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -65,30 +65,30 @@ agentcore create \
--memory none
```

| Flag | Description |
| ------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Project name (alphanumeric, starts with letter, max 23 chars) |
| `--defaults` | Use defaults (Python, Strands, Bedrock, no memory) |
| `--no-agent` | Skip agent creation |
| `--type <type>` | `create` (default) or `import` |
| `--language <lang>` | `Python` (default) |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--build <type>` | `CodeZip` (default) or `Container` (see [Container Builds](container-builds.md)) |
| `--api-key <key>` | API key for non-Bedrock providers |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` (see [Memory Shorthand Mapping](memory.md#--memory-shorthand-mapping)) |
| `--protocol <protocol>` | `HTTP` (default), `MCP`, `A2A` |
| `--network-mode <mode>` | `PUBLIC` (default) or `VPC` |
| `--subnets <ids>` | Comma-separated subnet IDs (required for VPC mode) |
| `--security-groups <ids>` | Comma-separated security group IDs (required for VPC mode) |
| `--agent-id <id>` | Bedrock Agent ID (import only) |
| `--agent-alias-id <id>` | Bedrock Agent Alias ID (import only) |
| `--region <region>` | AWS region for Bedrock Agent (import only) |
| `--output-dir <dir>` | Output directory |
| `--skip-git` | Skip git initialization |
| `--skip-python-setup` | Skip venv setup |
| `--dry-run` | Preview without creating |
| `--json` | JSON output |
| Flag | Description |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Project name (alphanumeric, starts with letter, max 23 chars) |
| `--defaults` | Use defaults (Python, Strands, Bedrock, no memory) |
| `--no-agent` | Skip agent creation |
| `--type <type>` | `create` (default) or `import` |
| `--language <lang>` | `Python` (default) or `TypeScript` |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--build <type>` | `CodeZip` (default for Python) or `Container` (default for TypeScript; see [Container Builds](container-builds.md)) |
| `--api-key <key>` | API key for non-Bedrock providers |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` (see [Memory Shorthand Mapping](memory.md#--memory-shorthand-mapping)) |
| `--protocol <protocol>` | `HTTP` (default), `MCP`, `A2A` |
| `--network-mode <mode>` | `PUBLIC` (default) or `VPC` |
| `--subnets <ids>` | Comma-separated subnet IDs (required for VPC mode) |
| `--security-groups <ids>` | Comma-separated security group IDs (required for VPC mode) |
| `--agent-id <id>` | Bedrock Agent ID (import only) |
| `--agent-alias-id <id>` | Bedrock Agent Alias ID (import only) |
| `--region <region>` | AWS region for Bedrock Agent (import only) |
| `--output-dir <dir>` | Output directory |
| `--skip-git` | Skip git initialization |
| `--skip-python-setup` | Skip venv setup |
| `--dry-run` | Preview without creating |
| `--json` | JSON output |

### deploy

Expand DownExpand Up@@ -197,8 +197,8 @@ agentcore add agent \
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `--name <name>` | Agent name (alphanumeric + underscores, starts with letter, max 48 chars) |
| `--type <type>` | `create` (default), `byo`, or `import` |
| `--build <type>` | `CodeZip` (default) or `Container` (see [Container Builds](container-builds.md)) |
| `--language <lang>` | `Python` (create); `Python`, `TypeScript`, `Other` (BYO) |
| `--build <type>` | `CodeZip` (default for Python) or `Container` (default for TypeScript; see [Container Builds](container-builds.md)) |
| `--language <lang>` | `Python` (default) or `TypeScript` (create); `Python`, `TypeScript`, `Other` (BYO) |
| `--framework <fw>` | `Strands`, `LangChain_LangGraph`, `GoogleADK`, `OpenAIAgents` |
| `--model-provider <p>` | `Bedrock`, `Anthropic`, `OpenAI`, `Gemini` |
| `--api-key <key>` | API key for non-Bedrock providers |
Expand Down
38 changes: 32 additions & 6 deletions docs/container-builds.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
Container builds package your agent as a Docker container image instead of a code ZIP. Use containers when you need
system-level dependencies, custom native libraries, or full control over the runtime environment.

TypeScript agents always use Container build because AgentCore Runtime's CodeZip mode only supports Python runtimes. The
CLI sets this automatically — no manual configuration needed.

## Prerequisites

A container runtime is required for local development (`agentcore dev`) and packaging (`agentcore package`). Supported
runtimes:
A container runtime is required for packaging (`agentcore package`) and for Python container agents during local
development. Supported runtimes:

1. [Docker](https://docker.com)
2. [Podman](https://podman.io)
Expand All@@ -16,13 +19,18 @@ The CLI auto-detects the first working runtime in the order listed above. If mul
highest-priority one wins.

> A local runtime is **not** required for `agentcore deploy` — AWS CodeBuild builds the image remotely.
>
> TypeScript agents do **not** need a local container runtime for `agentcore dev` — they run directly with `tsx watch`.

## Getting Started

```bash
# New project with container build
# Python project with container build (opt-in)
agentcore create --name MyProject --build Container

# TypeScript project (Container is the default and only option)
agentcore create --name MyProject --language TypeScript --framework Strands --model-provider Bedrock

# Add container agent to existing project
agentcore add agent --name MyAgent --build Container --framework Strands --model-provider Bedrock
```
Expand All@@ -33,10 +41,21 @@ Both commands generate a `Dockerfile` and `.dockerignore` in the agent's code di
app/MyAgent/
├── Dockerfile
├── .dockerignore
├── pyproject.toml
├── pyproject.toml # Python
└── main.py
```

TypeScript agents generate a Node.js-based Dockerfile:

```
app/MyAgent/
├── Dockerfile # Node 22 slim base
├── .dockerignore
├── package.json
├── tsconfig.json
└── main.ts
```

## Generated Dockerfile

The template uses `ghcr.io/astral-sh/uv:python3.12-bookworm-slim` as the base image with these design choices:
Expand DownExpand Up@@ -75,13 +94,20 @@ All other fields work the same as CodeZip agents.
agentcore dev
```

For container agents, the dev server:
For **Python** container agents, the dev server:

1. Builds the container image and adds a dev layer with `uvicorn`
2. Runs the container with your source directory volume-mounted at `/app`
3. Enables hot reload via `uvicorn --reload` — code changes apply without rebuilding

AWS credentials are forwarded automatically (environment variables and `~/.aws` mounted read-only).
For **TypeScript** container agents, the dev server runs locally without Docker:

1. Runs `npm install` if needed
2. Starts `tsx watch` with hot-reload
3. No container build or runtime required

AWS credentials are forwarded automatically (environment variables and `~/.aws` mounted read-only for Python
containers).

## Packaging and Deployment

Expand Down
39 changes: 32 additions & 7 deletions docs/frameworks.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,6 +121,34 @@ that runs on AgentCore:
| `--framework <fw>` | `Strands` or `LangChain_LangGraph` |
| `--memory <opt>` | `none`, `shortTerm`, `longAndShortTerm` |

## Supported Languages

| Language | Build Type | Dev Server | Frameworks |
| -------------- | ---------- | ----------------- | ----------------------------------------------- |
| **Python** | CodeZip | uvicorn (local) | Strands, LangChain/LangGraph, GoogleADK, OpenAI |
| **TypeScript** | Container | tsx watch (local) | Strands |

### TypeScript Agents

TypeScript agents use the [Strands Agents SDK](https://github.com/strands-agents/sdk-typescript) with Express and deploy
as Container images. AgentCore Runtime's CodeZip mode only supports Python runtimes, so TypeScript agents automatically
default to Container build.

> **Local development runs without Docker.** The `agentcore dev` command runs TypeScript agents directly with
> `tsx watch` for fast iteration and hot-reload — no container build needed. Docker/Podman/Finch is only required for
> `agentcore deploy` and `agentcore package`.

```bash
# Create a TypeScript agent
agentcore create --name MyProject --language TypeScript --framework Strands --model-provider Bedrock

# Local dev — runs with tsx, no Docker needed
agentcore dev

# Deploy — builds container image via CodeBuild
agentcore deploy
```

## Bring Your Own (BYO) Agent

For existing agent code or frameworks not listed above, use the BYO option:
Expand All@@ -138,16 +166,13 @@ agentcore add agent \

1. **Entrypoint**: Your code must expose an HTTP endpoint that accepts agent invocation requests
2. **Code location**: Directory containing your agent code
3. **Language**: Python
3. **Language**: Python or TypeScript

### BYO Options

| Flag | Description |
| ------------------------ | ------------------------------------------ |
| `--type byo` | Use BYO mode (required) |
| `--code-location <path>` | Directory containing your agent code |
| `--entrypoint <file>` | Entry file (e.g., `main.py` or `index.ts`) |
| `--language <lang>` | `Python` |
| Flag | Description |\n| ------------------------ | ------------------------------------------ | | `--type byo` | Use
BYO mode (required) | | `--code-location <path>` | Directory containing your agent code | | `--entrypoint <file>` |
Entry file (e.g., `main.py` or `main.ts`) | | `--language <lang>` | `Python` or `TypeScript` |

## Framework Comparison

Expand Down
19 changes: 16 additions & 3 deletions docs/local-development.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,6 +42,16 @@ The dev server automatically:
2. Runs `uv sync` to install dependencies from `pyproject.toml`
3. Starts uvicorn with your agent

### TypeScript / Node.js

The dev server automatically:

1. Runs `npm install` if `node_modules` is missing
2. Starts `tsx watch` with your agent entry point (hot-reload enabled)

> TypeScript agents use Container build for deployment, but `agentcore dev` runs them locally without Docker for fast
> iteration.

### API Keys

For non-Bedrock providers, add keys to `agentcore/.env.local`:
Expand DownExpand Up@@ -93,10 +103,13 @@ immediately.

### Container Agents

For container agents, the dev server builds a Docker image and runs it with your source directory mounted as a volume.
Changes to your code are picked up by uvicorn's `--reload` inside the container — no image rebuild needed.
For Python container agents, the dev server builds a Docker image and runs it with your source directory mounted as a
volume. Changes to your code are picked up by uvicorn's `--reload` inside the container — no image rebuild needed.

TypeScript agents always run locally in dev mode (via `tsx watch`), even though they use Container build for deployment.
No Docker is needed for `agentcore dev` with TypeScript.

See [Container Builds](container-builds.md) for full details on container development.
See [Container Builds](container-builds.md) for full details on container development and deployment.

## Dev vs Deployed Behavior

Expand Down
Loading
Loading