32dots HEIDELBERG AI
EXTENDED COURSE

opencode

opencode is an open-source AI coding agent that lives in your terminal, a desktop app, or your IDE. You bring your own key from any of 75+ providers — or reuse a GitHub Copilot or ChatGPT subscription you already pay for — so there's no markup between you and the model. This course takes you from your first one-line fix to running parallel agents and controlling spend like a pro.

1Lessons6step-by-step, ~90 min each
2Cheat sheetcopy-ready expressions
3Examples3what people built

Dashboards & analytics1

opencode Creator Founder
In the gallery

Add a metrics aggregation backend to a content dashboard

In an existing Next.js + Prisma project, Opencode adds a `/api/metrics` route that aggregates post views, engagement, and subscriber counts from three database tables, with caching and a typed response schema.

The dashboard loads real aggregated data instead of mock values; the typed schema prevents mismatches between the API and the front-end chart components.

Try it yourself

Run `opencode`: "Add a GET /api/metrics route to this Next.js app. Aggregate views, engagement, and subscribers from the Prisma schema in prisma/schema.prisma. Add a 60-second cache. Return a typed JSON response."

Research & data tools2

opencode Scientist
Course starter

Add type hints across an entire Python package

Opencode walks every `.py` file in the package, infers types from usage, adds PEP 484 annotations, and runs mypy in strict mode — iterating until the package passes with no errors and no `Any` suppressions in core logic.

A 6 000-line bioinformatics package gains full type coverage; mypy catches a silent integer-vs-float bug on the first run.

Try it yourself

Run `opencode` in the package root: "Add strict PEP 484 type hints to every function and class in src/. Run mypy --strict and fix all errors. Do not add # type: ignore comments."

opencode Scientist
Course starter

Write a robust parser for a messy instrument CSV format

Given five real example CSVs with irregular headers, merged cells exported as blanks, and inconsistent date formats, Opencode writes a parser that handles all variants, returns a tidy DataFrame, and raises descriptive errors on unrecognised formats.

Manual pre-processing of instrument exports is eliminated; the parser handles every file variant from the past three years without modification.

Try it yourself

Run `opencode`: "Write a Python parser in src/io/instrument_parser.py for the CSV format in data/examples/. Handle the header variants shown across the five sample files. Return a tidy pandas DataFrame."