Skip to content

strands-agents/extension-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Strands Agents Extension Template

Build and publish custom components for Strands Agents.

DocumentationPython SDKTypeScript SDKToolsCommunity Packages

This monorepo contains starter templates for building custom Strands Agents extensions in two languages. Each template gives you skeletons for the major extension points, an interactive setup script that customizes the project for your package, and CI/publish workflows wired up to PyPI or npm.

Language Directory Package registry SDK
Python python/ PyPI strands-agents
TypeScript typescript/ npm @strands-agents/sdk

Getting started

  1. Click Use this template on GitHub to create your own repository.
  2. Clone it locally and decide which language you're targeting.
  3. Open the corresponding subdirectory and follow its README:

You can keep both subprojects in the same repo if your package ships SDKs in both languages, or delete the directory you don't need.

What's in each template

Both templates expose the same eight Strands extension points so you can pick whichever fits your use case:

Component Purpose
Tool Add capabilities to agents using the tool primitive
Model provider Integrate custom LLM APIs
Plugin Bundle hooks and tools into a composable package
Intervention Add composable control handlers for authorization, guardrails, and steering
Session manager Persist conversations across restarts
Conversation manager Control context window and message history
Memory store Give agents cross-session knowledge via a search backend
Storage Persist raw bytes under string keys for sessions, offloading, etc.

The interactive setup script in each subdirectory removes the components you don't select, renames everything to your package name, and wires up pyproject.toml / package.json accordingly.

Releases and tags

Releases are scoped per language so the two halves of this monorepo can ship independently:

Tag prefix Workflow Publishes to
python-v* publish-python.yml PyPI
typescript-v* publish-typescript.yml npm

When the setup script hoists your chosen language to the repo root, it drops the dual-prefix scheme automatically — generated repos use the standard v* tag form.

License

Apache 2.0 — see LICENSE for details.

About

Template for building and publishing Strands Agents extensions (tools, model providers, plugins, interventions, and more) in Python and TypeScript

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages