{"ok":true,"site":{"host":"sema.run","url":"https://sema.run/","type":"live","desc":"Try Sema in the browser — a Lisp with first-class LLM primitives. No install required, runs entirely in WebAssembly.","tools":[{"name":"read_editor","kind":"answer","impl":"imperative","description":"Read Sema source from the playground editor. Use this before editing or running unfamiliar code.","inputSchema":{"type":"object","properties":{"offset":{"type":"integer","minimum":0,"default":0,"description":"Zero-based character offset at which to start reading."},"limit":{"type":"integer","minimum":1,"maximum":12000,"default":1500,"description":"Maximum number of characters to return."}},"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"write_editor","kind":"act","impl":"imperative","description":"Replace the playground editor contents with Sema source code.","inputSchema":{"type":"object","properties":{"code":{"type":"string","description":"Complete Sema source to place in the editor."}},"additionalProperties":false,"required":["code"]},"executable":true,"handlerField":"execute"},{"name":"format_editor","kind":"act","impl":"imperative","description":"Format the current Sema source in the playground editor.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"run_editor","kind":"act","impl":"imperative","description":"Run the current Sema source and wait for evaluation to finish.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"stop_run","kind":"act","impl":"imperative","description":"Cancel the active worker-backed Sema evaluation when one is running.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"read_output","kind":"answer","impl":"imperative","description":"Read the current playground output, including values, printed lines, errors, and timing.","inputSchema":{"type":"object","properties":{"offset":{"type":"integer","minimum":0,"default":0,"description":"Zero-based character offset at which to start reading."},"limit":{"type":"integer","minimum":1,"maximum":12000,"default":1500,"description":"Maximum number of characters to return."}},"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"find_examples","kind":"answer","impl":"imperative","description":"Find bundled Sema examples by filename, category, or identifier.","inputSchema":{"type":"object","properties":{"query":{"type":"string","default":"","description":"Case-insensitive text used to filter examples."},"limit":{"type":"integer","minimum":1,"maximum":20,"default":10,"description":"Maximum examples to return."}},"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"load_example","kind":"act","impl":"imperative","description":"Load one bundled Sema example into the editor by identifier or filename.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Example identifier such as getting-started/hello.sema or hello.sema."}},"additionalProperties":false,"required":["id"]},"executable":true,"handlerField":"execute"},{"name":"list_files","kind":"answer","impl":"imperative","description":"List one directory in the playground virtual filesystem.","inputSchema":{"type":"object","properties":{"dir":{"type":"string","default":"/","description":"Absolute virtual directory path to list."}},"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"read_file","kind":"answer","impl":"imperative","description":"Read a UTF-8 text file from the playground virtual filesystem.","inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"Absolute virtual file path to read."},"offset":{"type":"integer","minimum":0,"default":0,"description":"Zero-based character offset at which to start reading."},"limit":{"type":"integer","minimum":1,"maximum":12000,"default":1500,"description":"Maximum number of characters to return."}},"additionalProperties":false,"required":["path"]},"executable":true,"handlerField":"execute"},{"name":"write_file","kind":"act","impl":"imperative","description":"Create or replace a UTF-8 text file in the playground virtual filesystem.","inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"Absolute virtual file path to create or replace."},"content":{"type":"string","maxLength":1048576,"description":"UTF-8 text content, limited to 1 MiB."}},"additionalProperties":false,"required":["path","content"]},"executable":true,"handlerField":"execute"},{"name":"set_breakpoints","kind":"act","impl":"imperative","description":"Replace the debugger breakpoints with the requested one-based source lines.","inputSchema":{"type":"object","properties":{"lines":{"type":"array","items":{"type":"integer","minimum":1},"uniqueItems":true,"description":"One-based editor line numbers on which to pause."}},"additionalProperties":false,"required":["lines"]},"executable":true,"handlerField":"execute"},{"name":"start_debugging","kind":"act","impl":"imperative","description":"Start debugging the current Sema source and wait for a pause, finish, or error.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"continue_debugging","kind":"act","impl":"imperative","description":"Continue the paused Sema debugger and wait for its next stable state.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"step_debugger","kind":"act","impl":"imperative","description":"Step the paused Sema debugger into, over, or out and wait for its next stable state.","inputSchema":{"type":"object","properties":{"mode":{"type":"string","enum":["into","over","out"],"description":"Debugger stepping mode."}},"additionalProperties":false,"required":["mode"]},"executable":true,"handlerField":"execute"},{"name":"stop_debugging","kind":"act","impl":"imperative","description":"Stop the active Sema debugger and return the playground to its idle state.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"get_debug_state","kind":"answer","impl":"imperative","description":"Read debugger status, active line, breakpoints, locals, and stack frames.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"executable":true,"handlerField":"execute"}],"category":"Developer Tools","favicon":"/favicons/sema.run.png","apiSurface":"spec","_scrape":{"etag":"\"a1875aea57b283a23ba1896b58c09c56\"","lastModified":"Sun, 19 Jul 2026 07:07:49 GMT","scrapedAt":"2026-07-19T07:08:34.393Z"},"toolCount":17}}