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 |
- Click Use this template on GitHub to create your own repository.
- Clone it locally and decide which language you're targeting.
- Open the corresponding subdirectory and follow its README:
- Python →
python/README.md - TypeScript →
typescript/README.md
- Python →
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.
Both templates expose the same five 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 |
| Session manager | Persist conversations across restarts |
| Conversation manager | Control context window and message history |
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 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 |
Once you've run the setup script for your language of choice, you can drop the dual-prefix scheme and use the standard v* form if you'd rather not carry the monorepo conventions into your own repo.
Apache 2.0 — see LICENSE for details.