---
title: Open source
description: The VIABLE Harness makes any AI agent teach the way a teacher wants. The VIABLE Engine runs agents, courses and class lists on your own server.
updated: 2026-11-04
---

> All VIABLE docs, for people and their agents: https://developers.viablelab.org/llms.txt

# Open source

Two parts of VIABLE are open, under the MIT license, in [one repository](https://github.com/VIABLE-Learning-Lab/viable). The code that runs every agent here is the same code, not a second product.

| You have | You want | Take |
| --- | --- | --- |
| An AI agent or an education product | It to know how to teach, whatever it's built on | The Harness |
| A school, a library or a lab, and your own server | Agents, courses and class lists you run yourself, on any model | The Engine |
| A course or agent here | The same thing on your own server | The Engine, from a package |
| A study, a workflow to draw, nothing to host | Consent, a research export, a visual editor | VIABLE, here |

You take only what you need. The Harness installs without the Engine.

## The Harness

A model on its own replies generally: it gives the answer, explains too much, and answers everyone alike. The Harness works out what this moment needs from what the teacher set and open resources such as standards and misconceptions, and gives it to the model before it replies. Afterward it can check the reply and record what happened.

::: steps
1. **Your AI assistant, with nothing to install.** `npx skills add VIABLE-Learning-Lab/viable --skill teaching-with-viable` teaches it the moves. [VIABLE's hosted MCP server](/docs/connect/assistants) gives it the tools.
2. **Any app, by changing one URL.** The gateway sits in front of any OpenAI-compatible endpoint.
3. **Your own code, with three calls.** `prepare` before the reply, `check` and `record` after it.
:::

Its [README](/docs/harness/overview) has each of these, with recipes for common stacks.

## The Engine

Your own server, set up in the browser: `npx github:VIABLE-Learning-Lab/viable start`, and its console opens.

::: steps
1. **Add a model.** Any OpenAI-compatible provider, on your own machine or elsewhere. Say what each model is for, and voice, reading aloud, attachments and search by meaning turn on as you do.
2. **Make a course, or add one.** Activities, how the AI helps in each, and when each is open.
3. **Say who is in it.** Anyone with the link, or a class list with personal codes and sections.
4. **Share it, and follow it.** A link or QR code, then Progress.
:::

It also makes chat pages for a website, and agents from a form. Its [README](/docs/engine/overview) has the rest, and the folder it writes for Docker, Cloudflare, AWS, Firebase and Google Cloud has the exact commands.

## Move a course or agent to your own server

::: steps
1. **Download it.** On a course, press **Download as package → With its files (.zip)**. For an agent with a chat page and no course, open **Agents**, then **⋯ → Export… → With its knowledge (.zip)**.
2. **Add it.** In the Engine's console: **Courses → From a file**.
3. **Choose the models.** On **Models**. An agent's steps use the models you set there.
4. **Tell learners.** It is a new link. Learners and their work stay here, so paste your class list there and share the new link.
:::

It goes the other way too: download it from the course's **Settings** in the console, then import it here from **Courses**. Models VIABLE doesn't have become its default, and the import says so.

## What stays on VIABLE

| Here | On the Engine |
| --- | --- |
| The visual workflow editor, Try it and the Assistant | A form for simple agents. Workflows from here run as they are |
| Knowledge bases from any file and from websites, kept up to date | Text, Markdown, CSV, JSON and HTML files, and snapshots of websites you refresh |
| Consent, studies, coding and the research export | Who has done what, how replies went, suggested changes, and your own records |
| Logs, usage, keys and billing | Your model provider's bill |

## Credit

Both carry open data from [Learning Commons](/docs/resources/learning-commons) under CC BY 4.0, with the attribution to keep. If you use them in research, cite them as the repository says.

::: cards
- [Examples and packages](/docs/teach/examples-and-packages): download any course as a package.
- [Your first run](/docs/connect/first-run): the request your app sends.
- [VETTING](/docs/build/vetting): the reply check the Harness also runs.
:::
