Skip to main content
Glama

Helx

AI 에이전트를 위한 범용 아티팩트 런타임. 에이전트가 실제로 다루는 형식(DOCX, XLSX, PPTX, PDF, Markdown, HTML, CSV)을 읽고, 생성하고, 편집하고, 검증하고, 비교(diff)하고, 렌더링하는 단일 엔진입니다. 차트, 다이어그램, 템플릿, 형식 간 변환 및 CSV 데이터 작업도 포함합니다. 세 가지 방식으로 제공됩니다:

  • CLI — 사람과 셸 스크립트를 위한 helx

  • MCP 서버 — AI 에이전트(Claude, Cursor 등)를 위한 stdio 기반 20개 도구

  • TypeScript SDK — 자체 코드를 위한 깔끔한 Artifact 파사드

npm version license PRs welcome

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

비주얼 갤러리

아래의 모든 아티팩트는 Helx 자체가 생성하고 편집한 다음 Helx로 미리보기한 것입니다. 카드를 클릭하면 파일이 열립니다.

DOCX 보고서

XLSX 영업

PPTX 덱

PDF 분기 보고

Markdown 플레이북

HTML 랜딩

CSV 고객

DOCX 서신 (템플릿 병합)

다이어그램

helx chart로 생성된 차트:

지역별 매출 추세 구성 비율

갤러리는 npx tsx scripts/make-gallery.ts로 생성됩니다. SDK를 통해 모든 데모 파일을 열고 @resvg/resvg-js로 스타일링된 SVG 미리보기를 PNG로 래스터화합니다.

Related MCP server: LibreOffice MCP Tools

OfficeCLI 대신 Helx를 선택하는 이유

OfficeCLI는 AI 에이전트를 위한 강력한 Word/Excel/PPT 편집기입니다. Helx는 더 나아갑니다:

기능

Helx

OfficeCLI

형식

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

Word, Excel, PPT만

형식 간 변환

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

없음

차트 및 다이어그램

helx chart (bar/line/pie/donut/area/scatter), helx diagram (mermaid 스타일 플로우차트)

없음

템플릿

{{var}}/{{#each}}/{{#if}} + 제자리 DOCX 병합

DOCX 병합만

CSV 데이터 작업

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

없음

PDF

생성, 텍스트 추출, 병합, 분할

없음

에이전트 비전용 렌더링

DOCX/XLSX/CSV→HTML, PPTX→SVG, PDF→텍스트, MD→HTML, 차트→SVG

render → PNG

인터페이스

CLI + MCP (20개 도구) + TypeScript SDK

CLI + MCP

에이전트 경로

모든 형식에 걸친 통일된 /p[2], /sheet[X]/cell[C3], css:.hero, ...

형식별

검증 및 diff

모든 엔진에서 validate + 의미론적 diff

없음

Helx는 또한 모든 인터페이스에서 stat(문서 통계) 및 move(문단/행/슬라이드/도형 재정렬)를 제공합니다.

설치

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

그런 다음 helx --help를 실행하거나 MCP 서버를 AI 클라이언트에 추가하세요:

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

그게 전부입니다. 모든 AI 모델 또는 에이전트(Claude, Cursor, Cline, LangChain, 사용자 정의 스크립트)가 실제 오피스 및 웹 문서를 생성, 읽기, 편집 및 렌더링할 수 있습니다.

소스에서 빌드

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 (동적 ESM import는 >= 12.20 필요, Node 22에서 검증됨).

빠른 시작 (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

에이전트 경로

모든 아티팩트는 안정적인 경로 주소 지정 트리를 노출하므로 에이전트가 모든 값을 읽고 쓸 수 있습니다:

형식

예시 경로

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, removemove는 모델을 변경하고 save()는 파일로 다시 왕복 저장합니다.

형식 간 변환

convert는 실제 콘텐츠 모델을 탐색합니다. 문자열 조작이 아닙니다:

From \ To

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');

MCP 서버

helx mcp는 stdio를 통해 Model Context Protocol 서버를 실행합니다. 20개의 도구를 노출합니다:

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

도구는 파일 시스템 경로 기반입니다. 에이전트가 파일 경로와 JSON 값을 전달하면 서버가 아티팩트를 읽고, 편집하고, 저장하거나 렌더링합니다. Claude Desktop과 같은 클라이언트에 등록하세요:

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

TypeScript SDK

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' });

또한 내보내기: convertArtifact, canConvert, mergePdfs, splitPdf, dataProfile, dataSort, dataAggregate, dataDedupe, dataClean, parseDiagram, diagramToSvg, renderDocxTemplate, detectType, engineForFile, registerEngine, engines.

아키텍처

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

각 파일 엔진은 하나의 계약을 구현합니다: read(bytes) → model, write(model) → bytes, 그리고 create(spec), get/set/insert/remove/move(path), inspect(), validate(), diff(other), render(). Artifact 파사드는 원본 바이트를 유지하므로 불변 형식(PDF)도 다른 형식으로 편집한 후 왕복 저장할 수 있습니다.

참고 사항 및 설계 결정

  • PDF는 모델상 불변입니다: 텍스트 추출은 읽기 전용입니다(pdfjs-dist; pdf-parse는 번들된 pdf.js 2.x가 pdfkit 출력을 파싱할 수 없어 제거됨). 구조 작업은 pdf-lib를 사용합니다: mergePdfssplitPdf.

  • 에이전트의 비전 루프를 위해 HTML로 렌더링: DOCX/XLSX/CSV → HTML 테이블, PPTX → 슬라이드별 SVG, PDF → 페이지별 텍스트, Markdown → HTML, 차트/다이어그램 → SVG.

  • helx chart, helx diagram, helx template은 생성기 유틸리티이며 등록된 파일 엔진이 아닙니다.

  • 변환은 모델 기반입니다: 변환기는 각 형식의 실제 모델(DocxModel, XlsxModel, ...)을 읽고 다른 엔진의 스펙을 생성하므로 convert는 원시 텍스트를 붙여넣는 대신 구조를 보존합니다.

라이선스

Apache-2.0 — LICENSE 참조.

기여

버그 리포트, 기능 요청 및 풀 리퀘스트를 환영합니다. 개발 워크플로, 규칙 및 행동 강령은 CONTRIBUTING.md를 참조하세요.

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