# Elabora > Elabora designs polished e-learning modules with you: 3D, dialogues, voices and quizzes, exported to SCORM or published on the web. Free, for macOS and Windows. The app works with the author's own AI agent on course folders in an open format. Its open core (elabora-core, Apache-2.0) is an e-learning source format that AI agents write and people review, a validator with stable codes, a SCORM 1.2 and web compiler tested against documented LMS behaviour, and a contract that keeps custom code testable. Developer pages below are Markdown; the same pages are served by the `elabora docs` command and the `elabora_docs` MCP tool of an installed Elabora. ## Start here - [Getting started](https://elabora.studio/en/docs/developers/getting-started.md): Requirements, install, then validate, build, test and preview the sample courses, and start a course of your own. - [Working with an agent](https://elabora.studio/en/docs/developers/agents.md): MCP, shell calls and direct file edits, the workflows each covers, tool selection for hosts, and the decisions only people make. ## The format - [Format specification](https://elabora.studio/en/docs/developers/spec.md): The files of a course and their rules: the plan and its versions, screens, blocks, events, components, free objects, tracking, translation and archives. - [Built-in blocks](https://elabora.studio/en/docs/developers/blocks.md): Every built-in block type with its props and how to fork its template. - [Components](https://elabora.studio/en/docs/developers/components.md): Course components, block types and screen layouts made from a props schema and a template without code; forks, slots, fallback and libraries. - [Dialogues](https://elabora.studio/en/docs/developers/dialogues.md): Branching conversations held in a block: lines, nodes and options, the walk replayed from the choices, modes and going back, the first run scored, events with the screen, `show`, `play`, `paths` and the client's export. - [Charts and diagrams](https://elabora.studio/en/docs/developers/charts.md): The chart blocks, each saying one thing; how they move, follow the voice and let learners predict; Mermaid diagrams; charts agents make with D3 and the kit. - [Design layer](https://elabora.studio/en/docs/developers/design.md): Free stylesheets, layouts and generated figures around structured content; window sizes, slides and steps; checks on the rendered course. - [Free-object contract](https://elabora.studio/en/docs/developers/free-object-contract.md): Custom code such as three.js scenes and mini-games, kept sandboxed, testable and editable without code: manifest, protocol, gates; what persists from one screen to the next (an object that carries on, §4e; the backdrop's decoration, mounted once, §4c). ## Delivery - [SCORM 1.2 and the LMS emulator](https://elabora.studio/en/docs/developers/delivery-scorm12.md): What a package holds, how the player behaves in an LMS, and what the emulator proves and cannot prove. - [Web target](https://elabora.studio/en/docs/developers/delivery-web.md): A module for a plain web server, with recipes and what the host must provide. - [LMS profiles](https://elabora.studio/en/docs/developers/lms-profiles.md): What each documented LMS accepts, with sources and the values still to measure. - [Review bridge](https://elabora.studio/en/docs/developers/review-bridge.md): The `postMessage` protocol between a module built for review and the review page that shows it. ## Reference - [Command line](https://elabora.studio/en/docs/developers/cli.md): Every `elabora` command and its options. - [Agent tools](https://elabora.studio/en/docs/developers/mcp-tools.md): Every agent operation, as an MCP tool or a shell call, with its arguments. - [Diagnostic codes](https://elabora.studio/en/docs/developers/diagnostics.md): Every finding's code, title and fix, and the guardrails they enforce. - [Changelog](https://elabora.studio/en/docs/developers/changelog.md): What changed in each version. - [Development history](https://elabora.studio/en/docs/developers/development-history.md): The work recorded before versioned releases. ## Architecture - [Architecture](https://elabora.studio/en/docs/developers/architecture.md): Goals and constraints, the packages and what they may import, the project model; the contract every change follows. - [Operations, journal and identifiers](https://elabora.studio/en/docs/developers/architecture/operations.md): Changes as operations with an author, a batch and an inverse; the project lock and journal; permanent ids, renaming and format migrations. - [Media](https://elabora.studio/en/docs/developers/architecture/media.md): Imports and canonical formats, quality presets, the encoder, narration audio, voices and word times, and how media reach packages. - [Delivery targets and hosting](https://elabora.studio/en/docs/developers/architecture/delivery.md): The SCORM and web targets of one build, review builds, and the client of Elabora's hosting. - [The plan and its versions](https://elabora.studio/en/docs/developers/architecture/plan.md): The plan as a working copy, versions frozen by a person, what changed between them, and the plan's document. - [Backups, sources and the project library](https://elabora.studio/en/docs/developers/architecture/storage.md): Versions in a content-addressed store, the author's sources, the project library, `.elabora` archives and machine-local data. - [Importing Storyline and Rise modules](https://elabora.studio/en/docs/developers/architecture/import.md): How Storyline 360 and Rise 360 modules become Elabora modules, with a report of every loss. - [Rendering, browsers and captures](https://elabora.studio/en/docs/developers/architecture/rendering.md): The browser that measures, captures and tests use, and how one screen is rendered for the app and for looks. - [Engine](https://elabora.studio/en/docs/developers/architecture/engine.md): The desktop app's editing session: the project in memory, one write queue, incremental validation, other writers and the message protocol. ## Contributing - [Core releases](https://elabora.studio/en/docs/developers/releases.md): Changesets, release preparation, version checks and publication from an exact merged commit. - [Contributing](https://elabora.studio/en/docs/developers/contributing.md): Set up a checkout, the rules every change follows, the test suites, and how the docs are kept in step with the code. ## App manual - [Elabora user manual](https://elabora.studio/en/docs/): What Elabora is, the life of a course, and how this manual is organised. - [Installing Elabora](https://elabora.studio/en/docs/install/): What you need, how to install Elabora on Mac or Windows, and what happens the first time you open it. - [A tour of the app](https://elabora.studio/en/docs/tour/): The home page, a course’s window and its five views, and the shortcuts you will use every day. - [Working with your AI](https://elabora.studio/en/docs/working-with-your-ai/): Elabora’s chat and its free models, or your AI in its app: send a request, follow and undo what the agent does, and know what stays in your hands. - [Does Elabora work with Claude Code?](https://elabora.studio/en/docs/claude-code/): Yes, with nothing to install. Elabora opens Claude Code in your course’s folder, and Claude Code edits the course with Elabora’s own command. - [Does Elabora work with Codex?](https://elabora.studio/en/docs/codex/): Yes, with nothing to install, in the ChatGPT app or in a terminal. Elabora opens Codex in your course’s folder, and Codex edits the course with Elabora’s own command. - [Does Elabora work with Claude?](https://elabora.studio/en/docs/claude/): Yes, through Elabora’s extension for the Claude desktop app: Claude’s chat then works on your courses, with Elabora’s own tools. - [Creating a course](https://elabora.studio/en/docs/creating-a-course/): Describe the course, attach your client’s documents, refine the request and let your AI write the first course plan. - [Bringing in a Storyline or Rise course](https://elabora.studio/en/docs/import-storyline-rise/): Import a Storyline project, a published Storyline course or a Rise export, then make your choices in the import report. - [The course plan, from draft to approval](https://elabora.studio/en/docs/course-plan/): Read and edit the course plan, make versions of it, send it to your client as Word or PDF, and record their approval. - [Screens and blocks](https://elabora.studio/en/docs/screens-and-blocks/): See screens as learners do, retouch text, add and move blocks, replace images and videos. - [Starter blocks](https://elabora.studio/en/docs/starter-blocks/): Elabora’s ready-made blocks, family by family, as you add them; what the inspector sets, “Transform into…”, required exploration and the Opening layout. - [Events, layers and steps](https://elabora.studio/en/docs/interactions/): Read and retouch what happens when learners click or answer, open layers, reveal a screen step by step, remember values. - [Branching dialogues](https://elabora.studio/en/docs/dialogues/): Add a dialogue, write it in Script, see it as a Map and a Table, set its characters, modes and voices, play it and send it to your client. - [Look: theme and player](https://elabora.studio/en/docs/look/): Set the course’s colours, fonts and styles, choose between slides and a scrolling page, and set up the player. - [Voices and narration](https://elabora.studio/en/docs/voices-and-narration/): Write a screen’s narration, choose the voices, have them spoken on your computer or with ElevenLabs, and time blocks to the voice. - [Translating a course](https://elabora.studio/en/docs/translating/): Add a language, translate with your AI, a translator or by yourself, review on screen and build one package per language. - [Preview and checks](https://elabora.studio/en/docs/preview-and-checks/): Play the course as a learner, simulate a screen reader or keyboard-only use, and deal with what the checks point out. - [Online reviews](https://elabora.studio/en/docs/online-reviews/): Share a course through a link, read your reviewers’ comments in place on the screens, reply, and hand them to your AI. - [Publishing](https://elabora.studio/en/docs/publishing/): Build the SCORM 1.2 package for your client’s LMS, set what the LMS receives, or publish the course on the web. - [Weight and energy](https://elabora.studio/en/docs/weight-and-energy/): What loading a course costs in energy, how Publish works it out, and what matters more than weight. - [Library, archives and history](https://elabora.studio/en/docs/library/): Where your courses live, how to import, export and delete them, and how to go back to an earlier version. - [Elabora settings](https://elabora.studio/en/docs/settings/): Your preferred AI, your Elabora account, your ElevenLabs key and its quota, the chat’s agent and what Elabora downloaded on your computer. - [Troubleshooting](https://elabora.studio/en/docs/troubleshooting/): Known problems and their fixes, and what to send us when something goes wrong. - [The learning science behind Elabora](https://elabora.studio/en/docs/learning-science/): What research says about predicting, narration, charts, motion, steps, feedback, branching dialogues, flip cards, reveal blocks and drag and drop, and what Elabora does with it. With references. - [Tested models](https://elabora.studio/en/docs/tested-models/): How AI models do on six real author requests in Elabora, how long they take, and what they cost. ## Optional - [Decision log](https://elabora.studio/en/docs/developers/decisions.md): Every design decision since the first version, D1 onwards, each with why and what would make us revisit it.