Skip to content

Capstone: Multi-Tool Dev Workflow

Use all four tools in a single workflow. OpenCode for exploration and planning. Aider for precise, git-committed edits. OpenHands for autonomous refactoring in a Docker sandbox. Goose for infrastructure automation via MCP. Each tool does what it does best, and the workflow chains them together.

Owl mascot

What you'll learn

  • OpenCode: explore the codebase, create a plan, and understand the architecture
  • Aider: make precise edits with automatic git commits for each change
  • OpenHands: run autonomous refactoring in a Docker sandbox for safe execution
  • Goose: automate infrastructure tasks through MCP-connected services

Architecture

The diagram below illustrates the complete workflow across all four tools. Each tool handles a distinct phase of the feature lifecycle, from initial planning to production deployment.

Build it

Phase 1: OpenCode — Explore and Plan

Begin the workflow by initializing OpenCode in the project repository. Use its exploration capabilities to understand the current architecture and generate an actionable plan.

bash
cd /path/to/project
opencode
/init
# Explore the codebase, ask questions, create a plan
# "I need to add a new API endpoint for user preferences. Explore the existing endpoints and suggest a plan."

Phase 2: Aider — Precise Edits

Once the plan is finalized, switch to Aider to execute specific file modifications. Aider implements the changes and generates precise git commits for each logical step.

bash
aider
# Add the files you want to edit
/add src/api/users.ts src/types/user.ts
# Make the changes
# "Add a GET /users/:id/preferences endpoint following the existing pattern"
# Aider edits the files and auto-commits with a descriptive message

Phase 3: OpenHands — Autonomous Refactor

With the basic implementation committed, spin up OpenHands in an isolated Docker container to handle broader refactoring tasks. This ensures extensive codebase changes happen safely without risking the host environment.

bash
# Start OpenHands in Docker
docker run -d --name openhands -p 3000:3000 -v $(pwd):/workspace ghcr.io/openhands/openhands
# In the web UI at localhost:3000:
# "Refactor the user preferences module to use the new shared types. Run the test suite and fix any failures."

Phase 4: Goose — Deploy via MCP

Finally, use Goose to automate the deployment process. Goose connects through the deployment MCP server to push changes to staging and verify system health.

bash
goose run "Deploy the updated user preferences service to staging. Use the deployment MCP server. Check health after deployment and report the status."

Confirm it worked

  1. OpenCode produced a plan in AGENTS.md
  2. Aider made precise commits with descriptive messages
  3. OpenHands refactored safely in Docker and tests passed
  4. Goose deployed the changes and reported health status

Module map

Capstone componentCourse lesson
OpenCode exploration and planningPlan and Build Modes
Aider git workflowGit Workflow and Commits
OpenHands Docker sandboxSandbox Isolation and Security
Goose MCP deploymentMCP Extensions