Rápida · req/s com c=50
47.200req/s
À frente de Go (42.800) e Node (38.700)1. Assíncrona por natureza, multinúcleo de verdade, um binário estático, sem runtime.
Linguagem de programação · framework para agentes de IA · segura por padrão
Uma URL, negociada por conteúdo. Synsema é uma linguagem de programação rápida e segura por padrão para agentes de IA, com o framework de agentes embutido: a mesma rota serve HTML para pessoas e Markdown para modelos. Alterne o painel para ver exatamente o Markdown que um LLM recebe desta página.
Aprenda construindo em try.synsema.com: cursos com um sandbox real, sem instalar nada.
# Synsema > Uma linguagem de programação para agentes de IA. ## O que é - Rápida. 47.200 req/s, à frente de Go e Node. - Segura por padrão. Sem `require`, sem acesso. - Nativa para agentes. Uma rota, HTML ou Markdown. ## Instalar curl -fsSL synsema.com/install.sh | sh Índice para agentes: /llms.txt
Uma linguagem de programação para agentes de IA.
↑ o mesmo recurso, duas representações · curl -H "Accept: text/markdown" synsema.com/pt
Rápida · req/s com c=50
47.200req/s
À frente de Go (42.800) e Node (38.700)1. Assíncrona por natureza, multinúcleo de verdade, um binário estático, sem runtime.
Segura por padrão
-- sem require, sem acesso require net("api.shop.com") fetch("api.shop.com") ✓ permitido fetch("evil.com") ⊘ recusado
Sem require não há acesso: o interpretador recusa, não uma revisão de código. Autenticação, validação e intenção são declarativas.
Nativa para agentes
Esta página é a demo. Cada rota serve HTML para pessoas e Markdown/JSON para agentes, com /llms.txt, /sitemap.xml e /openapi.json derivados da tabela de rotas.
A documentação expõe um servidor MCP: agentes pesquisam, leem, executam e testam código por um único endpoint.
1 · medido em um VPS Linux, 6 cargas, c=50, mediana das execuções (a primeira descartada). Harness reproduzível: synsema-arena.
O que você constrói com ela
Tudo o que um app agêntico precisa está na linguagem, não em um framework colado por cima: chamadas ao LLM, uso de ferramentas, memória, aprovação humana, orquestração multiagente, um servidor de produção e o modelo de segurança. Por isso a mesma linguagem também constrói a API, o site, o cron e a CLI em volta do agente.
Agentes
reason, decide, analyze e generate são primitivas: respostas validadas, novas tentativas, qualquer provedor, a chave selada como segredo.
Orquestração
Agentes em threads reais, um quadro compartilhado, sinais, um barramento de eventos e memória durável, sem broker de mensagens para operar.
docs ↗Humano no circuito
approve, confirm e ask esperam por uma pessoa real, no terminal ou enfileirados atrás de links de uso único; sem ninguém, é negado.
Ferramentas
Exponha o que um programa faz para Claude Code, Cursor ou Lampson. O servidor MCP da própria documentação é escrito assim.
docs ↗Backends
Rotas, auth e validação declarativas, paginação, SQLite, Postgres, MySQL, Mongo ou Redis, em um arquivo e com o servidor de produção incluído.
docs ↗Tempo real
WebSockets de entrada, processos filhos observados linha a linha, um select sobre tudo, cancelamento e desligamento ordenado.
Web
Templates, layouts e componentes; cada página negociada para agentes; /llms.txt, sitemap e OpenAPI de graça. Este site é um deles.
Deploy
--tls-auto voce@site.com: certificados e renovações do Let's Encrypt, HTTP/2, www para o apex, um reverse proxy quando precisar.
Apps
synsema init --desktop: o mesmo app renderizado no servidor instala-se no Android e iOS como PWA com push nativo, e é distribuído como app de desktop — um binário, uma janela de app do navegador, o seu ícone, sem console.
Automação
Tarefas agendadas e feeds ao vivo por WebSocket; trabalho de longa duração sobre um event loop real, com observabilidade incluída.
docs ↗Dados
CSV, SQL, estatística, arrays numéricos e gráficos SVG nativos que agentes leem como dados e pessoas como imagens; exportação para PNG e PDF.
docs ↗Distribuir
synsema build sela programa e assets em um executável; o interpretador também roda em navegadores, edge e TEEs.
Um arquivo
Um programa Synsema começa declarando o que pode tocar. Tudo abaixo dessa linha roda dentro dela: as rotas, o banco de dados, os segredos, o modelo. Os dois arquivos abaixo compilam e rodam como estão.
-- A bookshop API. The `require` lines are the whole permission
-- surface: a port, one database file, one secret. Nothing else.
intent: "public read API; writes need the staff token"
require serve(8080)
require db("./shop.db")
require secret("API_TOKEN")
task check_token(token)
let want be hmac_sha256("staff", token)
when verify_hmac("staff", want, secret("API_TOKEN"))
give {"role": "staff"}
give nothing
serve on 8080
auth with check_token
rate_limit 120 per minute
route "GET /books"
give paged("SELECT id, title, price FROM books")
route "POST /books" requires auth
expect body {title: text, price: number}
let b be json of request
sql_exec("INSERT INTO books (title, price) VALUES (?, ?)",
[b.title, b.price])
give created(b)
route "GET /about"
let doc be page([heading(1, "Bookshop"),
prose("HTML or Markdown, one route.")],
{"title": "Bookshop"})
give content(doc)-- An agent that triages support tickets. The model decides;
-- a human approves refunds; the API key is a sealed secret.
intent: "triage open tickets; refunds wait for a human"
require llm
require net("api.example.com")
require secret("SUPPORT_TOKEN")
let api be "https://api.example.com"
let auth be {"Authorization": bearer(secret("SUPPORT_TOKEN"))}
let r be http_get(api + "/tickets?open=1", auth)
let tickets be json_decode(body of r)
each t in tickets
let msg be t["text"]
let kind be decide between ["bug", "billing", "other"] given msg
when kind == "billing"
let amount be analyze msg for "the amount to refund"
let who be t["customer"]
approve "Refund " + text(amount) + " to " + who + "?" within 1h
otherwise
let reply be generate "a short, kind answer" given msg
let url be api + "/tickets/" + t["id"] + "/reply"
http_post(url, {"text": reply}, auth)require é a superfície de permissões. Uma porta, um arquivo de banco, um segredo. Um fetch para qualquer outro host é recusado pelo interpretador.auth with nomeia a task que diz quem é um token; expect body rejeita um payload ruim com um 400 que nomeia o campo.content() responde HTML aos navegadores e Markdown ou JSON aos agentes; paged() pagina resultados grandes por você.decide devolve uma das opções ou tenta de novo; analyze e generate têm tipo, não são strings de prompt coladas à mão.approve … within 1h espera alguém de verdade; sem ninguém, nega.Feito com Synsema
Agente de programação
Um agente de programação com IA, open source, para o seu terminal e navegador, escrito inteiramente em Synsema: ferramentas confinadas ao seu projeto, permissões sob seu controle, subagentes, tarefas agendadas, plugins.
lampson.org ↗Capacidades para agentes
Unidades portáteis de capacidade: um manifesto declara o que o código pode tocar, um runtime faz cumprir e audita cada chamada. lamp add e depois lamp mcp para Claude Code, Cursor ou qualquer agente MCP.
Aprender
Aprenda construindo software para negócios reais, no navegador: cursos, missões verificadas em um sandbox real, XP e níveis. Sem instalar nada.
try.synsema.com ↗Do blog
Engine, program, modules, templates and assets in a single sealed executable, with a capability ceiling baked in. Nothing to install on the target — deploy it FROM scratch, or hand it to someone as a file.
A Synsema app is a website with automatic HTTPS, an installable phone app with native push, and a desktop app in its own window with your icon — from one server-rendered program and one API module. No native toolkit, no second codebase, no store required.
MCP is JSON-RPC. In Synsema the whole server is a dispatcher task and one POST route. Tools are tasks with real bodies, secrets stay sealed, and untrusted input runs under a capability ceiling.