Skip to content

[Awareness] Consolidating Strands SDK Repositories into a Monorepo #2286

@zastrowm

Description

@zastrowm

Summary

We're planning to consolidate the core Strands Agents repositories into a single monorepo. The strands-agents/sdk-python repo will be renamed to strands-agents/strands-sdk and serve as the home for all consolidated code. Other repos (sdk-typescript, docs, mcp-server) will have their histories merged in and then be archived.

This issue is an early announcement to give the community visibility into the change, explain the reasoning, and share the tentative timeline.

What's changing: The source code for the Python SDK, TypeScript SDK, documentation site, and MCP server will live in one repository (strands-agents/strands-sdk, formerly sdk-python) instead of separate ones.

What's NOT changing: Package names (strands-agents on PyPI, @strands/sdk on npm), install commands, versioning, and release cadence all stay the same. This is a source repository consolidation only.


Why

Our team works across both Python and TypeScript, and features frequently touch both SDKs plus documentation. The current multi-repo setup creates friction:

  • Fragmented PRs — a single feature becomes multiple PRs across repos that need to be reviewed and merged in the right order.
  • Docs lag behind code — documentation lives in a separate repo, so it's a follow-up step rather than part of the feature branch.
  • Context switching — developers and agents lose context jumping between repos. Setting up a working environment means cloning multiple repositories and keeping them in sync.
  • Duplicated CI/tooling — shared workflows and configs get duplicated across repos.

A monorepo lets features, docs, and tests ship together in a single PR with unified CI/CD.


What's Moving

Repo Destination Notes
sdk-python strands-py/ Becomes the monorepo itself (renamed to strands-sdk)
sdk-typescript strands-ts/, strands-wasm/, etc. Already structured as a workspace internally
docs site/, designs/ Astro site + design docs
mcp-server strands-mcp/ MCP server implementation
devtools (partial) Only SDK-specific pieces; general-purpose tools stay

How

We're using sdk-python as the final home and renaming it to strands-sdk. Each repository's full git history is merged in meaning that all commits preserved. Open issues from merged repos will be transferred. Archived repos will have redirects pointing to the new location.


Tentative Timeline

Week What Happens
Week 1 This announcement. Start restructuring repos internally (moving files into target subdirectories).
Week 2 Merge repository histories into sdk-python. Validate CI/CD, publishing pipelines, and builds. Original repos still accept contributions during this period.
Week 3 Rename sdk-pythonstrands-sdk. Final sync, cutover, issue transfer, archive source repos.

Original repos remain fully functional until the Week 3 cutover. There's no disruption to ongoing development during Weeks 1–2.


What This Means for Contributors

  • Before cutover: Keep working in the existing repos as normal. Nothing changes for you yet.
  • After cutover: PRs, issues, and contributions go to strands-agents/strands-sdk.
  • Finding your way around: The monorepo uses clear subdirectory naming (strands-py/, strands-ts/, site/, etc.) and path-based CI so only relevant checks run on your PR.

For the full design document with detailed rationale and industry research, see the design proposal.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions