Skip to main content
Glama

Helx

AIエージェントのためのユニバーサルアーティファクトランタイム。 エージェントが実際に扱うフォーマット(DOCX、XLSX、PPTX、PDF、Markdown、HTML、CSV)を読み取り、作成、編集、検証、差分、レンダリングする1つのエンジンです。さらにチャート、ダイアグラム、テンプレート、クロスフォーマット変換、CSVデータ操作も備えています。3つの方法で公開されています:

  • 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 report

XLSX sales

PPTX deck

PDF quarterly

Markdown playbook

HTML landing

CSV customers

DOCX letter (template merge)

Diagram

helx chart で生成されたチャート:

Revenue by region Trend Mix

ギャラリーは npx tsx scripts/make-gallery.ts によって生成されます — すべてのデモファイルをSDK経由で開き、@resvg/resvg-js でスタイル付きSVGプレビューをPNGにラスタライズします。

Related MCP server: LibreOffice MCP Tools

HelxがOfficeCLIより優れている理由

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(棒/折れ線/円/ドーナツ/面/散布)、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、... すべてのフォーマットにわたって

フォーマットごと

検証と差分

すべてのエンジンで 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インポートには >= 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、remove、move はモデルを変更し、save() でファイルにラウンドトリップして戻します。

クロスフォーマット変換

convert は実際のコンテンツモデルを歩みます — 文字列の切り替えではありません:

変換元 \ 変換先

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

各ファイルエンジンは1つのコントラクトを実装します: 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 を使用します: mergePdfs と splitPdf。

  • 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 を参照してください。

Related MCP Connectors

Related MCP Servers