AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Write command-line tools, process data, and build services. Manuscript gives you typed functions, mutable collections, explicit error handling, and automatic cleanup for scoped resources.
Developer toolsRust · MAXScriptGitHub @manuscript-langOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The language for the agentic era.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
The language for the agentic era.
API-first. Minimal syntax. Best-in-class tooling.
Read the Manuscript vision for long-term design direction, while respecting the current technical contracts documented in the language and tooling guides.Read the full README ↗The language for the agentic era.
Manuscript starts from one premise: agents will write most of the code, and people have to understand, check and run it. An agent has a limited context, cannot hold a whole program in its head, and learns from the compiler one round trip at a time. Every design choice below exists because of that.
Try Manuscript · Why Manuscript · Language tour · Performance
Every diagnostic reads cause; fix, and a habit from another language is answered with the Manuscript spelling:
count.ms:2:12: resolution: unknown binding len; there is no len() function: call the length member, e.g. xs.length()
When the repair is mechanical, ms check --fix applies it. A runtime fault comes back from ms test --json as data with kind, values, position and trace. The agent does not need the manual in its context: ms guide is the whole language in 4 KB, ms search_symbol answers one API question in bounded output, and ms verify is check, format, lint and test in one exit code. Commands for agents
var and .clone() is visible in the source. ReferencesResult, a match missing a case, an unclosed Closeable, literal overflow.ms test --fuzz 30s turns them into a fuzzer. Testingms review --diff compares the checked program before and after and ranks changed contracts, error flow and resource scopes by where a reader should look first. ms diagram draws call and flow graphs from the same analysis. Review report
case Draft, case Published(url)) that match must cover, nominal types, and methods in impl blocks that satisfy an interface. Types| pipes that read top to bottom. FunctionsResult and Optional instead of null and exceptions. try propagates an error, if let and match handle one, and a dropped Result is a compile error. Errorsms guide and ms search_symbol exist because of where agents got stuck, and results are published even where Manuscript trails.Debug builds use Cranelift for a quick edit-check-run loop; release builds use LLVM. List loops are auto-vectorized with SIMD. Speed is comparable to Rust with overflow checks on, and Manuscript beat hand-written Go on all seven kernels. Recorded runs and reproduction commands
The standard library is about 14,000 lines of Manuscript across 40+ modules (HTTP, JSON, TOML, YAML, CSV, crypto, processes, and more), with Rust only for small primitives. API reference
Alpha. Syntax and APIs can change.
Get the compiler, save this as config.ms, run ms test config.ms:
import parse from "@std/json.ms"
import expect_equal from "@std/test.ms"
type Config:
port: Optional[Int]
fn port_from(text: String) Result[Int, Error]:
let config = try parse[Config](text)
return ok(config.port.get(8080))
test "an unset port uses the default":
let port = try port_from("\{\"port\":null\}")
try expect_equal(port, 8080)
Then hand your agent a small CLI you need and watch it work through ms guide, ms search_symbol and the compiler's feedback.
Float32, and Decimal literals like 12.50d; conversions are explicit. Sharing between owners is an explicit Shared[T]. Numbers