goose/documentation/docs/tutorials/isolated-development-environments.md
Douwe Osinga 0f32f8d0a9
Some checks failed
Canary / Prepare Version (push) Waiting to run
Canary / build-cli-linux (push) Blocked by required conditions
Canary / Upload Install Script (push) Waiting to run
Canary / bundle-macos-arm64 (push) Blocked by required conditions
Canary / bundle-macos-x64 (push) Blocked by required conditions
Canary / bundle-desktop-linux (push) Blocked by required conditions
Canary / bundle-windows (push) Blocked by required conditions
Canary / bundle-windows-cuda (push) Blocked by required conditions
Canary / Release (push) Blocked by required conditions
Unused Dependencies / machete (push) Waiting to run
CI / Check MSRV (push) Blocked by required conditions
CI / Lint Rust Code (push) Blocked by required conditions
CI / changes (push) Waiting to run
CI / Check Rust Code Format (push) Blocked by required conditions
CI / Build and Test Rust Project (push) Blocked by required conditions
CI / Build and Test TLS Backend (native-tls) (push) Blocked by required conditions
CI / Build and Test TLS Backend (rustls-tls) (push) Blocked by required conditions
CI / Build Rust Project on Windows (push) Waiting to run
CI / Check Generated Schemas are Up-to-Date (push) Blocked by required conditions
CI / Test and Lint Electron Desktop App (push) Blocked by required conditions
Create Minor Release PR / check-version-bump-pr (push) Waiting to run
Create Minor Release PR / release (push) Blocked by required conditions
Live Provider Tests / Build Binary (push) Blocked by required conditions
Live Provider Tests / changes (push) Blocked by required conditions
Live Provider Tests / check-fork (push) Waiting to run
Publish Docker Image / docker (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Waiting to run
Live Provider Tests / Smoke Tests (push) Blocked by required conditions
Live Provider Tests / Smoke Tests (Code Execution) (push) Blocked by required conditions
Live Provider Tests / Compaction Tests (push) Blocked by required conditions
Deploy Documentation / deploy (push) Has been cancelled
Cargo Deny / deny (push) Has been cancelled
Publish Ask AI Bot Docker Image / docker (push) Has been cancelled
docs: update Discord invite (#10863)
Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com>
Co-authored-by: Jasper Hugo <jasper@jasperhugo.com>
2026-07-31 22:49:19 +00:00

4.7 KiB

title
Isolated Development Environments

import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';

This guide shows you how to set up isolated development environments using the Container Use MCP with goose. With this setup, your development work will be isolated to both git branches and containers, allowing you to experiment freely without affecting your main system state. The Container Use MCP offers powerful ways to do isolated development which are very agent friendly (build on tools like Docker, copy on write filesystems, and more).

Overview

The Container Use MCP server provides containerized development environments that integrate seamlessly with goose. This allows you to:

  • Work on changes isolated to git branches
  • Run code in containers without affecting your local machine
  • Easily reset and start fresh when needed
  • Maintain clean separation between different projects and experiments
  • Work on things in parallel

:::info Already Using Devcontainers? If you develop inside Docker containers (like VS Code Remote-Containers), see how you can run extensions in your existing containers. :::

Prerequisites

  • Docker (Podman, NerdCtl or Container) installed and running on your system
  • Git installed and configured
  • goose installed and configured

Setup

For installation and configuration instructions, see the Container Use Extension tutorial.

Usage

Once the extension is enabled in goose, you can:

Starting Isolated Development

Simply mention in your conversation with goose that you want to work in an isolated environment:

"I want to experiment with adding a new feature, but I want to do it in an isolated environment so I don't affect my main codebase."

goose will automatically:

  1. Create a new git branch for your work
  2. Set up a containerized environment
  3. Ensure all changes are isolated from your host system

Working with Experiments

"Let me try a completely different approach to this algorithm. Can you set up an isolated environment where I can experiment?"

Learning New Technologies

"I want to try out this new framework, but I don't want to install all its dependencies on my main system."

Benefits

  • Safety: Experiment without fear of breaking your main development environment
  • Reproducibility: Consistent environments across different machines and team members
  • Isolation: Multiple projects can run simultaneously without conflicts
  • Easy cleanup: Remove containers and branches when done
  • Version control: All changes are tracked in isolated git branches
  • Rollback capability: Easily discard failed experiments

Common Workflows

Feature Development

  1. Start a conversation with goose about a new feature
  2. Request isolated development environment
  3. goose creates branch and container
  4. Develop and test the feature
  5. If successful, merge the branch; if not, discard it

Dependency Exploration

  1. Ask goose to explore a new library or tool
  2. Work in isolated container with the dependency
  3. Test compatibility and functionality
  4. Decide whether to integrate into main project

Refactoring

  1. Request isolated environment for major refactoring
  2. Make changes in safety of container and branch
  3. Test thoroughly before merging
  4. Easy rollback if issues arise

Troubleshooting

Common Issues

Docker not running:

  • Ensure Docker Desktop is installed and running
  • Check Docker daemon status: docker info

Permission issues:

  • Ensure your user has permission to run Docker commands
  • On Linux, add user to docker group: sudo usermod -aG docker $USER

Git issues:

  • Ensure Git is properly configured with user name and email
  • Check that you're in a Git repository when starting isolated work

Getting Help

If you encounter issues:

  1. Check the Container Use GitHub repository for documentation
  2. Verify all prerequisites are installed and working
  3. Join our Discord community for support

Next Steps

With container-use enabled in goose, you're ready to develop with confidence. Try starting a conversation about a project you've been hesitant to experiment with, and let goose set up a safe, isolated environment for your exploration.

Remember: with isolated environments, there's no such thing as a failed experiment - only learning opportunities that don't affect your main codebase.