
Security News
Ruby's Bundler 4.0.18 Extends Cooldown to bundle lock and bundle cache
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.
@intenttext/core
Advanced tools
Parser, HTML renderer, and document generation engine for IntentText (.it) — a structured interchange format for AI agents and humans.
npm install @intenttext/core
import { parseIntentText, renderHTML } from "@intenttext/core";
const doc = parseIntentText(`
title: Sprint Planning — Week 12
summary: Tasks and decisions for the week.
section: Action Items
task: Write migration script | owner: Sarah | due: Wednesday
task: Update CI pipeline | owner: Dev Team | due: Friday
done: Security audit complete
section: Notes
note: Next demo on Friday 3pm.
info: New staging environment is live.
`);
console.log(doc.version); // "1.4"
console.log(doc.blocks.length); // 8
const html = renderHTML(doc); // Styled HTML output
@intenttext/core defaults to the Rust/WASM path for core operations.
INTENTTEXT_CORE_ENGINE=ts forces TypeScript engine mode in Node runtimes.globalThis.__INTENTTEXT_CORE_ENGINE = "ts" forces TypeScript engine mode in browser-like runtimes.INTENTTEXT_CORE_ENGINE=rust and globalThis.__INTENTTEXT_CORE_ENGINE = "rust" explicitly force Rust mode.import { parseIntentText } from "@intenttext/core";
const doc = parseIntentText(source);
// Returns: IntentDocument { version, metadata, blocks, diagnostics }
import { renderHTML, renderPrint } from "@intenttext/core";
// Inline HTML fragment (for embedding in a page)
const html = renderHTML(doc);
// Full print-optimized HTML document with embedded CSS
// Reads font: and page: blocks for dynamic typography and layout
const printHtml = renderPrint(doc);
Resolve {{variable}} placeholders in a parsed document using a JSON data object.
import { mergeData, parseAndMerge } from "@intenttext/core";
const data = {
company: { name: "Acme Corp" },
invoice_number: "INV-2026-001",
total: "17,325 QAR",
};
// Merge after parsing
const merged = mergeData(doc, data);
// Parse + merge in one step
const result = parseAndMerge(templateString, data);
{{company.name}} → data.company.name{{items.0.description}} → data.items[0].description{{date}}, {{year}} resolved automatically{{page}}, {{pages}} left as-is for the print rendererimport { queryBlocks } from "@intenttext/core";
const result = queryBlocks(doc, "type:task owner:Ahmed sort:due:asc limit:5");
console.log(result.blocks); // Filtered & sorted blocks
import { convertMarkdownToIntentText } from "@intenttext/core";
const itSource = convertMarkdownToIntentText(markdownString);
title: My Document
section: Chapter One
sub: Details
note: A standalone fact.
task: Do something | owner: Ahmed | due: Friday
done: Already finished | time: Monday
quote: Be concise. | by: Strunk
info: Informational callout.
---
agent: deploy-agent | model: claude-sonnet-4
step: Run tests | tool: ci.test | timeout: 300000
decision: Pass? | if: tests == "pass" | then: step-2 | else: step-3
gate: Approve deploy | approver: ops-lead | timeout: 24h
handoff: Transfer | from: deploy-agent | to: monitor-agent
emit: Complete | phase: deploy | level: success
font: | family: Palatino Linotype | size: 12pt | leading: 1.8
page: | size: A5 | margins: 25mm | footer: Page {{page}} of {{pages}}
title: *Chapter One*
dedication: To the builders who write before they code.
byline: Ahmed Al-Rashid | role: Author
epigraph: The tools we build shape the thoughts we can think. | source: Kenneth Iverson
toc: | depth: 2 | title: Contents
section: Introduction
caption: Figure 1 — The parsing pipeline
footnote: 1 | See chapter 3 for details.
break:
| Style | Syntax |
|---|---|
| Bold | *text* |
| Italic | _text_ |
| Strikethrough | ~text~ |
| Code | `code` |
| Highlight | ^text^ |
| Inline note | [[text]] |
| Footnote ref | {1} |
node cli.js document.it # Parse to JSON
node cli.js document.it --html # Render HTML
node cli.js template.it --data data.json --html # Merge + render
node cli.js template.it --data data.json --print # Print-optimized HTML
node cli.js template.it --data data.json --pdf out.pdf # PDF via Puppeteer
426 tests across 12 test files covering parser, renderer, query engine, converters, agentic blocks, document generation, and production APIs.
npm test
MIT
FAQs
IntentText Parser, HTML Renderer, and Converters
The npm package @intenttext/core receives a total of 24 weekly downloads. As such, @intenttext/core popularity was classified as not popular.
We found that @intenttext/core demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.

Company News
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.