Rápido · req/s con c=50
47.200req/s
Por delante de Go (42.800) y Node (38.700)1. Asíncrono nativo, multinúcleo real, un binario estático, sin runtime.
Lenguaje de programación · framework para agentes de IA · seguro por defecto
Una URL, negociada por contenido. Synsema es un lenguaje de programación rápido y seguro por defecto para agentes de IA, con el framework de agentes incorporado: la misma ruta sirve HTML a las personas y Markdown a los modelos. Cambiá el panel para ver el Markdown exacto que un LLM recibe de esta página.
Aprendé construyendo en try.synsema.com: cursos con un sandbox real, sin instalar nada.
# Synsema > Un lenguaje de programación para agentes de IA. ## Qué es - Rápido. 47.200 req/s, por delante de Go y Node. - Seguro por defecto. Sin `require`, sin acceso. - Nativo para agentes. Una ruta, HTML o Markdown. ## Instalar curl -fsSL synsema.com/install.sh | sh Índice para agentes: /llms.txt
Un lenguaje de programación para agentes de IA.
↑ el mismo recurso, dos representaciones · curl -H "Accept: text/markdown" synsema.com/es
Rápido · req/s con c=50
47.200req/s
Por delante de Go (42.800) y Node (38.700)1. Asíncrono nativo, multinúcleo real, un binario estático, sin runtime.
Seguro por defecto
-- sin require, sin acceso require net("api.shop.com") fetch("api.shop.com") ✓ permitido fetch("evil.com") ⊘ rechazado
Sin require no hay acceso: lo rechaza el intérprete, no una revisión de código. Autenticación, validación e intención son declarativas.
Nativo para agentes
Esta página es la demo. Cada ruta sirve HTML a las personas y Markdown/JSON a los agentes, con /llms.txt, /sitemap.xml y /openapi.json derivados de la tabla de rutas.
La documentación expone un servidor MCP: los agentes buscan, leen, ejecutan y prueban código por un solo endpoint.
1 · medido en un VPS Linux, 6 cargas, c=50, mediana de corridas (la primera descartada). Harness reproducible: synsema-arena.
Qué se construye con él
Todo lo que necesita una app agéntica está en el lenguaje, no en un framework pegado encima: llamadas al LLM, uso de herramientas, memoria, aprobación humana, orquestación multiagente, un servidor de producción y el modelo de seguridad. Por eso el mismo lenguaje también construye la API, el sitio, la app de teléfono y escritorio, el cron y la CLI alrededor del agente.
Agentes
reason, decide, analyze y generate son primitivas: respuestas validadas, reintentos, cualquier proveedor, la clave sellada como secreto.
Orquestación
Agentes en hilos reales, una pizarra compartida, señales, un bus de eventos y memoria durable, sin broker de mensajes que operar.
docs ↗Humano en el circuito
approve, confirm y ask esperan a una persona real, en la terminal o encolados tras enlaces de un solo uso; si no hay nadie, se deniega.
Herramientas
Exponé lo que un programa puede hacer a Claude Code, Cursor o Lampson. El servidor MCP de la documentación está escrito así.
docs ↗Backends
Rutas, auth y validación declarativas, paginación, SQLite, Postgres, MySQL, Mongo o Redis, en un archivo y con el servidor de producción incluido.
docs ↗Tiempo real
WebSockets entrantes, procesos hijos que mirás línea a línea, un select sobre todo, cancelación y apagado ordenado.
Web
Plantillas, layouts y componentes; cada página negociada para agentes; /llms.txt, sitemap y OpenAPI gratis. Este sitio es uno.
Deploy
--tls-auto vos@sitio.com: certificados y renovaciones de Let's Encrypt, HTTP/2, www al apex, un reverse proxy si lo necesitás.
Apps
synsema init --desktop: la misma app server-rendered se instala en Android e iOS como PWA con push nativo, y se distribuye como app de escritorio — un binario, una ventana de app del navegador, tu ícono, sin consola.
Automatización
Tareas programadas y feeds en vivo por WebSocket; trabajo de larga duración sobre un event loop real, con observabilidad incluida.
docs ↗Datos
CSV, SQL, estadística, arrays numéricos y gráficos SVG nativos que los agentes leen como datos y las personas como imágenes; exportación a PNG y PDF.
docs ↗Distribuir
synsema build sella programa y assets en un ejecutable; el intérprete también corre en navegadores, edge y TEEs.
Un archivo
Un programa Synsema empieza declarando qué puede tocar. Todo lo que está debajo de esa línea corre adentro: las rutas, la base de datos, los secretos, el modelo. Los dos archivos de abajo parsean y corren tal cual.
-- 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 es la superficie de permisos. Un puerto, un archivo de base de datos, un secreto. Un fetch a cualquier otro host lo rechaza el intérprete.auth with nombra la task que dice quién es un token; expect body rechaza un payload malo con un 400 que nombra el campo.content() responde HTML a los navegadores y Markdown o JSON a los agentes; paged() pagina los resultados grandes por vos.decide devuelve una de las opciones o reintenta; analyze y generate tienen tipo, no son strings de prompt pegados a mano.approve … within 1h espera a alguien real; si no hay nadie, deniega.Hecho con Synsema
Agente de programación
Un agente de programación con IA, open source, para tu terminal y navegador, escrito enteramente en Synsema: herramientas confinadas a tu proyecto, permisos que controlás, subagentes, tareas programadas, plugins.
lampson.org ↗Capacidades para agentes
Unidades portables de capacidad: un manifiesto que declara qué puede tocar el código, un runtime que lo hace cumplir y audita cada llamada. lamp add y después lamp mcp para Claude Code, Cursor o cualquier agente MCP.
Aprender
Aprendé construyendo software para negocios reales, en el navegador: cursos, misiones validadas en un sandbox real, XP y niveles. Sin instalar nada.
try.synsema.com ↗Del 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.