Introducing Achronyme — a language for zero-knowledge proofs. Read the announcement

Playground

Write, run, and prove Achronyme programs directly in your browser.

The Achronyme Playground is a browser-based IDE for writing and running Achronyme code. No installation required.

What you get

  • Full editor — CodeMirror 6 with syntax highlighting, bracket matching, and auto-indentation
  • Inline diagnostics — errors and warnings appear as you type, powered by the same LSP logic as the VS Code extension
  • Autocompletion — 108 completions for keywords, builtins, methods, and snippets
  • Hover docs — hover over any builtin or keyword to see documentation
  • Multi-file projects — file explorer, tabs, rename, and delete
  • Three templatescircuit, vm, and prove, matching ach init --template
  • Run & prove — execute your code on a remote server with full VM and proving support

Quick start

  1. Go to achrony.me/playground
  2. The playground loads a default vm template with src/main.ach
  3. Write your code in the editor
  4. Press Ctrl+Enter (or click Run) to execute
let greet = fn(name) {
    return "Hello, " + name + "!"
}

print(greet("World"))

How it works

The playground runs on two layers:

Browser (client-side):

  • CodeMirror editor with Achronyme language support
  • LSP features (diagnostics, completions, hover) via WASM — the parser and compiler run locally in the browser with zero latency
  • Session management and file persistence via localStorage

Server (play.achrony.me):

  • Achronyme compiler + VM running natively on a server
  • Each user gets an isolated workspace with server-side file storage
  • Execution is sandboxed: 100M instruction budget, 256 MB heap limit, 10s timeout
  • Proving support with both Groth16 (R1CS) and Halo2 (Plonkish) backends

Diagnostics are instant because they run in the browser. Execution requires a server round-trip but is fast for typical programs.

Limitations

  • Output cap: print output is limited to 1 MB per execution
  • File limits: 20 files per project, 32 KB per file, 256 KB total workspace
  • Session TTL: sessions expire after 2 hours of inactivity (auto-restored from localStorage backup)
  • No REPL: the playground runs complete programs, not individual expressions
Navigation