Skip to content
microsoftPublic

About

Tandem is a collaborative workspace for turning ideas and existing code into software you understand and intend.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

8 stars

Watchers

0 watching

Forks

Repository files navigation

Tandem bicycle logo Tandem bicycle logo Tandem: Two minds, one direction.

Package version License: MIT Contributions welcome

Tandem is a collaborative workspace for turning ideas and existing code into software you understand and intend. Discuss the experience, make decisions visible in UI designs and Design artifacts, then explicitly approve implementation.

It is for developers, designers and project owners who want to work with a coding agent without leaving product decisions hidden in a prompt.

Original illustration of a person and Copilot discussing a user journey, interface sketch and technical flow on a shared whiteboard.

The illustration above expresses that vision; it is not a product screenshot.

πŸ“° News

  • 2026-11-02: Meet Brainstorm whiteboard, an optional, agent-neutral Excalidraw whiteboard where humans and agents can edit, annotate and seal versions, then read factual changes. It complements normal chat without replacing the Tandem framework.
  • 2026-10-29: We are releasing Tandem 0.0.16 today.

Brainstorm whiteboard: add a missing branch

A user adds a missing branch to an editable review flow, then the agent reads the sealed change.

Automated replay of actual native UI/API edits, not a live LLM session or a real-human recording. See all three whiteboard demos.

🎬 See Tandem in action

Watch the 94-second introduction:

why-tandem-v2-voiced.mp4

Using Tandem: a two-minute highlights tour

Follow a weekend-away planner through Requirements, drawings, a UI prototype with mocked data, Design discussion, implementation and Review.

using-tandem.mp4

Watch this for an E2E tutorial: a 14-minute coffee-shop walkthrough from goal to implementation and Review.

πŸ’‘ Why Tandem?

  • See the idea before committing to it. Explore requirements, UI designs and interactive prototypes instead of reconstructing everything from a long spec.
  • Start where your project is. Discover a new idea or work directly from an existing application; Preparation is optional.
  • Keep implementation tied to your decisions. Review the Design, approve the proposed work, and inspect implementation and Review outcomes.

Read the Tandem story for the approach and a concrete example.

πŸš€ Get started

Source preview: the instructions below build this checkout; they do not install a published release. Use Windows with PowerShell, actual Node 24.15+ (24.x LTS) or Node 26+, Git, and a Copilot account with the required model access. Other platforms are not yet qualified. The browser app does not require .NET or a running Copilot desktop app.

From your Tandem source checkout, run:

npm ci
npm run login:browser
npm run browser -- --workspace C:\projects\my-app

Both browser scripts build the app automatically. Pass launch options after --.

Optionally choose the main session's model and reasoning effort using a model available to your account:

npm run browser -- --workspace C:\projects\my-app --model gpt-6-astra --reasoning-effort low

Omitting these flags preserves saved selection. With no selected main model, standalone startup activates and verifies the native preferred model without forcing an effort level. Project settings has separate Main session model and Development model controls; see model options for creation-time Development inheritance and independent effort settings.

If you also have Tandem installed, explicitly isolate a source preview from that installation:

npm run browser -- --source-preview --workspace C:\projects\my-app

This restricts native extension launches to the exact session-staged Tandem payload and disables main-session configuration discovery. Other discovered extensions cannot execute; the bundled skill remains available. Sign-in, saved session identity and native permission prompts are unchanged. The installed extension is not modified. Without this option, normal installed-provider preference remains in effect.

Replace C:\projects\my-app with your project folder (the repository/worktree root for existing Git projects), not the Tandem source folder. Before Development, Tandem offers explicit local Git setup when needed; the quick start shows both paths. Use a test project or worktree for your first trial.

What you will see: Tandem opens your project folder and asks where to start:

Start with Preparation Go to Development
Clarify an idea through Requirements, Designs and Prototype, then continue into Development. Explore existing files or refine a rough idea directly in Design and Conversation.

The choice is saved for that folder. In Development, review the Design and answer questions, then request implementation. Plan and implement explicitly authorizes planning and code changes in your selected working copy; opening a view or finishing a prototype does not.

Keep the launch terminal open. Closing a browser tab leaves work running; use the host's Stop or Ctrl+C to exit, and check any reported failure. Private launch URLs must not be shared.

Documentation

Guide Use it to
Quick start Open your first project and reach an implementation decision.
The Tandem story Understand the vision through a concrete example.
User manual Learn the workspace and everyday controls.
Task recipes Revise a prototype, refine Design, or inspect saved outcomes.
Troubleshooting Handle queued work, unavailable previews, Stop and reopen.

The documentation index also links advanced configuration and engineering references.

Development and contributions

Contributions are subject to the Microsoft Contributor License Agreement; see CONTRIBUTING.md for the CLA process and submission guidance. Please follow our Code of Conduct.

Work from source in src and development\tandem; do not hand-edit the generated extension under .github\extensions\tandem. From the repository root:

npm ci
npm --prefix development\tandem ci
npm run check
npm test
npm run build

For Development changes, also follow its contributor instructions. See the engineering reference for architecture boundaries, packaging, optional hosts and qualification limits.

For shared UI components, tokens and isolated light/dark examples, see the UI system guide. Run npm run storybook to open its local development server; this does not start Copilot or a project runtime.

For automatic frontend rebuilds and browser refresh:

npm run dev:browser -- --workspace C:\projects\my-app

Add --source-preview to use the same explicit isolation while watching UI files.

UI saves refresh the whole page without restarting Copilot runtimes; unsent input may be lost. Backend/runtime source changes require restarting the command.

For a bug report or proposed change, describe the expected behavior, what happened, and the source/package version. Keep private launch URLs, credentials and sensitive project content out of reports. Report security vulnerabilities through the process in SECURITY.md, not a public issue. See SUPPORT.md for help and support channels.

Data and privacy

Tandem uses GitHub Copilot CLI and SDK for AI work. Prompts, selected project context and tool results are processed by the configured AI services; this is not an offline application. This checkout does not include voice input or microphone capture. Local workflow records and diagnostic logs remain necessary for history, troubleshooting and recovery.

Tandem does not configure an analytics exporter. Copilot runtimes can support optional OpenTelemetry tracing; check the executing runtime's copilot --version and copilot help monitoring, rather than inferring behavior from an npm package version. For runtimes whose monitoring help documents the three activation settings below, tracing is off by default, but inherited environment settings can enable it. To keep those activation settings unset, run the following in the PowerShell terminal before launching Tandem or its host:

Remove-Item Env:COPILOT_OTEL_ENABLED -ErrorAction SilentlyContinue
Remove-Item Env:OTEL_EXPORTER_OTLP_ENDPOINT -ErrorAction SilentlyContinue
Remove-Item Env:COPILOT_OTEL_FILE_EXPORTER_PATH -ErrorAction SilentlyContinue

These controls disable optional OpenTelemetry export, not required service processing, local logs, or other runtime usage collection. They are not a verified opt-out for all Copilot runtime collection; that dependency's collection and opt-out coverage still need confirmation before a release can claim no telemetry. See the GitHub privacy statement and Microsoft privacy statement for service data handling.

License

MIT. Bundled third-party components retain their own licenses. See the renderer bundle notices, the Lucide license, and the notices included in generated bundles and distributions.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

Citation

To cite this repository, use the following BibTeX entry. Identify the version or commit you used alongside the citation so readers can find the same source.

@misc{tandem,
  title = {Tandem},
  url = {https://github.com/microsoft/Tandem}
}

About

Tandem is a collaborative workspace for turning ideas and existing code into software you understand and intend.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages