Skip to main content
Glama

Helx

El entorno de ejecución universal de artefactos para agentes de IA. Un solo motor que lee, crea, edita, valida, compara y renderiza los formatos con los que realmente trabajan los agentes — DOCX, XLSX, PPTX, PDF, Markdown, HTML, CSV — además de gráficos, diagramas, plantillas, conversión entre formatos y operaciones de datos CSV. Se expone de tres maneras:

  • CLIhelx para humanos y scripts de shell

  • Servidor MCP — 20 herramientas sobre stdio para agentes de IA (Claude, Cursor, etc.)

  • SDK de TypeScript — una fachada limpia de Artifact para tu propio código

npm version license PRs welcome

one model, every file
create → read → edit → save → validate → diff → render → convert

Galería visual

Cada artefacto que aparece a continuación fue creado y editado por el propio Helx y luego previsualizado por Helx. Haz clic en cualquier tarjeta para abrir el archivo.

Informe DOCX

Ventas XLSX

Presentación PPTX

Trimestral PDF

Manual Markdown

Página de aterrizaje HTML

Clientes CSV

Carta DOCX (fusión de plantilla)

Diagrama

Gráficos generados con helx chart:

Ingresos por región Tendencia Composición

La galería se genera con npx tsx scripts/make-gallery.ts: abre cada archivo de demostración a través del SDK y rasteriza una vista previa SVG estilizada a PNG con @resvg/resvg-js.

Related MCP server: LibreOffice MCP Tools

Por qué Helx en lugar de OfficeCLI

OfficeCLI es un editor sólido de Word/Excel/PPT para agentes de IA. Helx va más allá:

Capacidad

Helx

OfficeCLI

Formatos

DOCX, XLSX, PPTX, PDF, Markdown, HTML, CSV

Solo Word, Excel, PPT

Conversión entre formatos

helx convert report.docx report.md — DOCX↔MD/HTML/PDF, XLSX↔CSV/HTML/MD, PPTX→MD/HTML/DOCX, PDF→MD/HTML/DOCX, CSV↔XLSX

no

Gráficos y diagramas

helx chart (barras/líneas/tarta/donut/área/dispersión), helx diagram (diagramas de flujo estilo mermaid)

no

Plantillas

{{var}}/{{#each}}/{{#if}} + fusión DOCX in situ

Solo fusión DOCX

Operaciones de datos CSV

analyze, filter, sort, group, aggregate, profile, dedupe, clean

no

PDF

crear, extraer texto, combinar, dividir

no

Renderizados para la visión del agente

DOCX/XLSX/CSV→HTML, PPTX→SVG, PDF→texto, MD→HTML, gráficos→SVG

render → PNG

Interfaces

CLI + MCP (20 herramientas) + SDK de TypeScript

CLI + MCP

Rutas de agente

uniformes /p[2], /sheet[X]/cell[C3], css:.hero, ... en todos los formatos

por formato

Validación y diff

validate + diff semántico en todos los motores

no

Helx también incluye stat (estadísticas del documento) y move (reordenar párrafos/filas/diapositivas/formas) en todas las interfaces.

Instalación

npm install -g helx        # CLI + MCP server
# or
npm install helx           # SDK for your own TypeScript/JavaScript project

Luego, helx --help o añade el servidor MCP a tu cliente de IA:

{
  "mcpServers": {
    "helx": { "command": "helx", "args": ["mcp"] }
  }
}

Eso es todo — cualquier modelo o agente de IA (Claude, Cursor, Cline, LangChain, scripts personalizados) puede crear, leer, editar y renderizar documentos ofimáticos y web reales.

Compilar desde el código fuente

git clone https://github.com/Asno-dev/Helx.git
cd Helx
npm install
npm run build        # tsc → dist/
npm test             # 71 integration checks (tsx test/smoke.ts)

Node >= 18 (la importación dinámica de ESM requiere >= 12.20; verificado en Node 22).

Inicio rápido (CLI)

# Create a DOCX from a JSON spec (type inferred from the extension)
helx create report.docx '{"title":"Q3 Report","paragraphs":["Revenue grew 20% to $52k."],"tables":[{"headers":["Metric","Value"],"rows":[["ARR","4.2M"]]}]}'

# Inspect the structure as a path-addressed tree
helx inspect report.docx

# Read / write a single value via an agent path
helx get report.docx "/p[1]"
helx set report.docx "/table[0]/row[1]/cell[1]" "4.5M"

# Insert / remove / move, then validate and render to HTML for a visual check
helx insert report.docx "/p[2]" '{"text":"New paragraph","style":"Heading 2"}'
helx remove report.docx "/p[4]"
helx move report.docx "/p[2]" "/p[5]" --after
helx stat report.docx
helx validate report.docx
helx render report.docx --out report-preview.html

# Cross-format conversion (any direction, any engine)
helx convert report.docx report.md
helx convert report.md report.pdf
helx convert sales.xlsx sales.csv
helx convert deck.pptx deck.md

# Spreadsheets
helx create data.xlsx '{"sheet":"Revenue","rows":[["Quarter","Amount"],["Q1","10"]]}'
helx get data.xlsx "/sheet[Revenue]/cell[B2]"
helx analyze data.csv
helx filter data.csv '{"col":"score","op":"gt","value":80}'

# Decks
helx create deck.pptx '{"title":"Investor Deck","subtitle":"Q3 2026","bullets":["Market size: $10B"]}'
helx get deck.pptx "/slide[0]/shape[1]"

# PDFs (create via model; merge/split for structure)
helx create a.pdf '{"title":"Doc A","sections":[{"heading":"Intro","text":"Hello."}]}'
helx merge merged.pdf a.pdf b.pdf
helx split page1.pdf merged.pdf --pages 1
helx extract merged.pdf

# Charts, diagrams, templates
helx chart '{"type":"bar","labels":["Q1","Q2"],"values":[10,12]}' --out chart.svg
helx diagram 'graph TD; A[Start] --> B[End];' --out diagram.svg
helx template 'Hello {{name}}' '{"name":"Ada"}'

# Run the MCP server (for AI agents)
helx mcp

Rutas de agente

Cada artefacto expone un árbol estable direccionado por rutas para que los agentes puedan leer/escribir cualquier valor:

Formato

Rutas de ejemplo

DOCX

/p[2], /p[1]/text, /table[0]/row[1]/cell[0]

XLSX

/sheet[Revenue]/cell[C24], /sheet[0]/row[3]

PPTX

/slide[0]/shape[1], /slide[0]/shape[2]/text

PDF

/page[0], /page[0]/text

Markdown

/heading[0], /p[2]

HTML

css:h1, css:.summary > p

CSV

/row[3]/cell[1]

set, insert, remove y move modifican el modelo y save() lo vuelve a escribir en el archivo.

Conversión entre formatos

convert recorre un modelo de contenido real — no es manipulación de cadenas:

De \ A

DOCX

XLSX

PPTX

PDF

MD

HTML

CSV

DOCX

XLSX

PPTX

PDF

MD

HTML

CSV

const md = await Artifact.create('markdown', { root: { children: [] } });
await md.insert('/node', { type: 'heading', depth: 1, text: 'Hello' });
const docx = await md.convertTo('docx');   // real DOCX bytes
const html = await docx.convertTo('html');

Servidor MCP

helx mcp ejecuta un servidor Model Context Protocol sobre stdio. Expone 20 herramientas:

create_artifact, inspect, get, set, insert, remove, move, convert, stat, render, validate, diff, merge_pdf, split_pdf, extract, analyze_csv, filter_csv, chart, diagram, template

Las herramientas se basan en rutas del sistema de archivos — el agente pasa una ruta de archivo y un valor JSON, y el servidor lee, edita, guarda o renderiza el artefacto. Regístralo en un cliente como Claude Desktop:

{
  "mcpServers": {
    "helx": { "command": "node", "args": ["/path/to/helx/dist/cli/index.js", "mcp"] }
  }
}

SDK de TypeScript

import { Artifact, chartToSvg, dataFilter, renderTemplate } from 'helx';

// Create, edit, save
const doc = await Artifact.create('docx', {
  title: 'Report',
  paragraphs: ['Revenue grew 20% to $52k.'],
  tables: [{ headers: ['Metric', 'Value'], rows: [['ARR', '4.2M']] }],
});
await doc.set('/p[0]/text', 'Updated headline');
await doc.insert('/p[1]', { text: 'Inserted paragraph' });
const bytes = await doc.save();
await fs.writeFile('report.docx', bytes);

// Open any file, regardless of format
const art = await Artifact.open('data.xlsx', buffer);
console.log(await art.get('/sheet[Revenue]/cell[B2]'));
console.log(await art.inspect());

// Convert to another format, get stats, move elements
const md = await art.convertTo('markdown');
console.log(await art.stat());
await art.move('/sheet[Revenue]/row[3]', '/sheet[Revenue]/row[1]', 'before');

// Validation and diff
console.log(await art.validate());   // { status, issues[] }
console.log(await art.diff(other));  // DiffEntry[]

// Generator utilities
const svg = chartToSvg({ type: 'pie', labels: ['A', 'B'], values: [3, 7] });
const rows = dataFilter(data, { col: 'score', op: 'gt', value: 80 });
const out = renderTemplate('Hi {{name}}', { name: 'Ada' });

También se exportan: convertArtifact, canConvert, mergePdfs, splitPdf, dataProfile, dataSort, dataAggregate, dataDedupe, dataClean, parseDiagram, diagramToSvg, renderDocxTemplate, detectType, engineForFile, registerEngine, engines.

Arquitectura

src/
  core/
    types.ts        # shared model contracts (Engine, ArtifactModel, ValidationReport, ...)
    base.ts         # BaseEngine with typed dispatch for set/insert/remove/move
    paths.ts        # agent-path parser (/p[0], /sheet[X], css:..., /row[n]/cell[n])
    utils.ts        # LCS diff, diffText/diffSeqMerged, HTML document shell
    convert.ts      # cross-format converter (content-model based, 19 directions)
    index.ts        # engine registry + Artifact facade (create/open/save/...)
    engines/
      docx.ts       # paragraphs, heading styles, tables
      xlsx.ts       # sheets, cells, formula read-back
      pptx.ts       # slides, shapes, text boxes
      pdf.ts        # create (pdfkit), extract text (pdfjs-dist), merge/split (pdf-lib)
      markdown.ts   # remark/rehype round-trip
      html.ts       # cheerio DOM editing + css: selectors
      csv.ts        # rows + data ops: profile/filter/sort/group/aggregate/clean/dedupe
      chart.ts      # SVG charts (bar, line, pie, donut, area, scatter, grouped bar, stacked bar)
      diagram.ts    # mermaid-style flowchart → SVG
      template.ts   # {{var}}/{{#each}}/{{#if}} + in-place DOCX placeholder merge
  cli/index.ts      # helx CLI (commander)
  mcp/index.ts      # MCP stdio server (20 tools)
  sdk/index.ts      # public package surface
scripts/make-gallery.ts   # README gallery generator
examples/demo/            # all demo files created by Helx itself

Cada motor de archivo implementa un único contrato: read(bytes) → model, write(model) → bytes, más create(spec), get/set/insert/remove/move(path), inspect(), validate(), diff(other), render(). La fachada Artifact conserva los bytes originales para que los formatos inmutables (PDF) puedan seguir realizando el round-trip después de ediciones en otros formatos.

Notas y decisiones de diseño

  • El PDF es inmutable por modelo: la extracción de texto es de solo lectura (pdfjs-dist; se descartó pdf-parse porque su pdf.js 2.x incluido no puede analizar la salida de pdfkit). Las operaciones estructurales usan pdf-lib: mergePdfs y splitPdf.

  • Renderiza a HTML para el bucle de visión del agente: DOCX/XLSX/CSV → tablas HTML, PPTX → SVG por diapositiva, PDF → texto por página, Markdown → HTML, gráficos/diagramas → SVG.

  • helx chart, helx diagram y helx template son utilidades de generación; no son motores de archivo registrados.

  • La conversión se basa en modelos: los conversores leen el modelo real de cada formato (DocxModel, XlsxModel, ...) y producen la especificación de otro motor, de modo que convert preserva la estructura en lugar de pegar texto sin procesar.

Licencia

Apache-2.0 — consulta LICENSE.

Contribuciones

Los informes de errores, las solicitudes de funciones y los pull requests son bienvenidos. Consulta CONTRIBUTING.md para conocer el flujo de trabajo de desarrollo, las convenciones y el Código de Conducta.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Make videos and docs with your AI agent — describe what you need, every output stays editable.

  • Generate PDF/DOCX/XLSX/PPTX from templates+JSON. Convert Office/HTML/MD to PDF. Universal templating

  • Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Asno-dev/Helx'

If you have feedback or need assistance with the MCP directory API, please join our Discord server