Skip to content
Learning Harness.
A LEARNING AGENT. ALONGSIDE YOUR CODING AGENT.

Delegate the work.
Keep the understanding.

Your agent gets better at building.
Make sure you do, too.

Your existing AI connection. Your local memory. A separate learning loop.

YOUR WORK, WITH UNDERSTANDING ALONGSIDEInteractive product illustration
⌘ Coding agent Working
Add retries to the payments client.
Handle timeouts and transient failures.

I’ll separate the retry policy from the request, then test failures and cancellation.

TS payments/retry.ts +42
// Retry transient failures
export async function withRetry(send) {
  for (let attempt = 0; ; attempt++) {
    try {
      return await send();
    } catch (error) {
      if (!shouldRetry(error)) throw error;
      await backoff(attempt);
    }
  }
}
↗
A retry can create a second payment.Worth understanding before this pattern becomes familiar.
Explore →
The coding agent keeps working.
↗ Learning Harness OnHistory   ···
Try a learning momentInteractive example
Your agent is adding retriesawait retry(() => createPayment())

The payment went through.
The response didn’t.

CLIENTTimed out
SERVER1 payment

Retry the request. How many payments now?

No idempotency keyMechanism reference ↗
Ask about this work…↑
One task. Two independent responsibilities.Illustrative example · no model calls on this page
01 — THE REASON

The code moves forward.
Don’t leave your skills behind.

When an agent makes every decision, you lose the repetitions that build judgment. Asking it to explain is useful—when you remember to ask.

Learning Harness gives that responsibility to a dedicated learning agent. It notices a useful idea in your actual work and offers a way in, while the coding agent keeps building.

Read the research on AI assistance and skill development ↗
02 — THE EXPERIENCE
01

A useful idea. Not another feed.

Selected work events and your learning goals shape the opportunity. A caching tradeoff, a concurrency bug, a design decision worth understanding.

02

Learn by doing something with it.

Predict an outcome. Explore a visual. Work through a question. The learning agent chooses a tool for the concept and your level.

03

Build on what you actually know.

Local memory keeps your goals, practice evidence and review history. Future sessions can start where you left off.

03 — THE BOUNDARY

Your agent. Your allowance.
Your understanding.

EXECUTION

Two loops. One host.

The coding agent owns delivery. A separate learning harness owns teaching, tools and assessment. Coding never waits for a lesson.

Explore the architecture ↗
PRIVACY

There is no learning backend.

Selected context goes to your existing host’s model connection. Learning Harness runs locally; memory stays on your device.

Follow the data ↗
CONTROL

Visible usage. An off switch.

Learning uses additional tokens from your existing allowance. See the counters, pause learning, or turn it off whenever you want.

Understand token usage ↗

Your next coding session.
A little more yours.

Give your coding agent this prompt. It handles the matching installer and setup checks.

Install Learning Harness using https://learningharness.dev/install.md

Free public beta. Uses your existing model allowance. Native approvals and a restart may need you.

Prefer a direct download?CodexDownload beta ↓Claude.app CodeDownload beta ↓OpenCode Desktop2.2.5Download beta ↓

Unsigned macOS installers · Node.js22+
Desktop only. Claude may use an external browser.

All three + a test task ↓ · Checksums

Let your agent install it.

Paste this into Codex, Claude Code or OpenCode.

Install Learning Harness using https://learningharness.dev/install.md

macOS desktop · Node.js22+ · unsigned beta
You handle native approvals; your agent handles setup.

Read the setup guide →