Mog is a spreadsheet engine, app runtime, and SDK stack for building workbook-aware agents, automations, and embedded spreadsheet experiences.
Try it live at mog.shortcut.ai.
| I want to... | Start here | Useful command |
|---|---|---|
| Build Mog from source | ||
pnpm typecheck
Use Mog as a librarypnpm add @mog-sdk/node
Develop Mogpnpm check:publish-readiness:fast
Use @mog-sdk/node
for headless workbook automation in Node.js and agent workflows.
pnpm add @mog-sdk/node
js
import { createWorkbook } from '@mog-sdk/node';
const wb = await createWorkbook();
const ws = wb.activeSheet;
await ws.setCell('A1', 42);
await ws.setCell('A2', '=A1*2');
console.log(await ws.getCell('A2'));
await wb.dispose();
Use @mog-sdk/embed
for browser, React, and Web Component embeds. See:
This is a large monorepo. Start with the package or surface you are changing, then run the smallest relevant verification gate.
Use dev-v0.7.2
as the exclusive development branch for this repo unless a
task explicitly names another branch. Do not base new local work on dev
.
pnpm install --frozen-lockfile
pnpm typecheck
pnpm test
cargo check -p compute-core --lib --locked
cargo test -p compute-core --locked
Common package checks:
pnpm --filter @mog-sdk/node test
pnpm --filter @mog-sdk/embed test
pnpm --filter @mog-sdk/sheet-view test
pnpm check:publish-readiness:fast
pnpm check:external-fixtures
CI and non-eval publish readiness gates are documented in CI Gates.
If you are a coding agent, read AGENTS.md before editing code.
| Area | Paths |
|---|---|
| Spreadsheet app | runtime/spreadsheet-app , apps/spreadsheet , shell |
| Node SDK | runtime/sdk |
| Embeds | runtime/embed , views/sheet-view |
| Rust compute engine | compute/core |
| Public TypeScript contracts | contracts |
| Kernel and services | kernel |
| External consumer fixtures | fixtures/external |
| Architecture docs | docs |
MIT. See LICENSE.