Skip to main content
OmniScript 2.0 alpha • Rust core • MCP & A2A • semantic blocks

OmniScript_

A typed, agent-native document format: one plain-text file for documents, slides, spreadsheets and the findings and decisions behind them.

One osf binary checks, queries and renders it to PDF, DOCX, PPTX, XLSX, HTML and Markdown, and serves it to agents over MCP and A2A.

osf 2.0
$npm install -g omniscript-cli
$osf lint report.osf
✓ 1 file checked, no problems
$osf render report.osf --target pdf -o report.pdf
PDF written to report.pdf
$osf query report.osf '#D-1 -> criteria'
F-1 @finding Europe contributed most of the Q4 growth.

Why OmniScript?

Office formats describe layout. Markdown is flat. OmniScript keeps the meaning: typed blocks, references and formulas, in text a person can read and an agent can address.

Typed knowledge

Findings, decisions, requirements, actions and hypotheses are blocks with ids, statuses and confidence, not just headings.

A document graph

@ref links blocks together; selectors like #D-1 -> criteria query the graph from the CLI, JavaScript, MCP and A2A.

Agent-native

osf serve mcp gives MCP clients tools to read, query, edit and render documents, with an MCP App view. osf serve a2a runs a document as an A2A agent.

Every format, one binary

PDF (typeset by an embedded Typst, no browser), DOCX, PPTX, XLSX, HTML, Markdown and JSON from a single osf binary.

Live formulas

Sheet formulas are evaluated with IronCalc: computed values in every output, live formulas in XLSX. A1 cells work.

Rust core, runs in the browser

The same parser, linter and HTML renderer compile to WebAssembly as omniscript-core. The playground runs on it.

Git-native plain text

Readable diffs, a lossless formatter (osf fmt) and a semantic diff (osf diff) that matches blocks by id.

Teach your agent OSF

osf skill install adds the OmniScript Agent Skill (SKILL.md) for Claude Code and other agents that read skills. osf serve mcp gives any MCP client tools to query, edit and render your documents.

Agents guide →

See It In Action

A sheet with formulas, a finding that cites it, and a decision that depends on the finding.

review.osf
review.osf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@meta {
  osf: "2.0";
  title: "Q4 Business Review";
  author: "Your Team";
  theme: corporate;
}

@doc {
  # Executive summary
  Revenue grew **20%**, driven by Europe. See [F-1](#F-1).
}

@sheet {
  id: "revenue";
  name: "Revenue";
  A1 = "Region"; B1 = "Q3";  C1 = "Q4";
  A2 = "Europe"; B2 = 748;   C2 = 880;
  A3 = "Asia";   B3 = 477;   C3 = 592;
  A4 = "Total";  B4 = =SUM(B2:B3); C4 = =SUM(C2:C3);
}

@finding {
  id: "F-1";
  claim: "Europe contributed most of the Q4 growth.";
  confidence: 0.85;
  evidence: [@ref("revenue")];
}

@decision {
  id: "D-1";
  question: "Where do we hire in Q1?";
  options: ["Europe", "Asia"];
  criteria: [@ref("F-1")];
}
PDF
osf render review.osf --target pdf
PPTX
osf render review.osf --target pptx
XLSX
osf render review.osf --target xlsx

Quick Start

Get up and running in under a minute.

01 / Install
terminal
$npm install -g omniscript-cli
# or: cargo install osf-cli
02 / Create
hello.osf
@meta { osf: "2.0"; title: "My First Doc"; }

@doc {
  # Hello OmniScript
  This is my first document!
}
03 / Check and convert
terminal
$osf lint hello.osf
$osf render hello.osf --target pdf -o hello.pdf
PDF written to hello.pdf
OmniScript

A typed, agent-native document format.

Packages
  • osf (npm: omniscript-cli, crates.io: osf-cli) 2.0.0-alpha.3
  • omniscript-core 2.0.0-alpha.3

Built by Alphin Tom • Mycel UG (haftungsbeschränkt) • MIT License