Skip to main content

Quick Start

You want IntentText working in 5 minutes. Here's how.

Install

npm install @dotit/core

Or use the CLI globally:

npm install -g @dotit/core

Write your first .it file

Create hello.it:

title: Project Kickoff
summary: Planning meeting notes for Atlas project

section: Decisions
text: Launch date confirmed for June 15
text: Budget approved at USD 180,000 | weight: bold

section: Tasks
task: Finalize vendor contracts | owner: Sarah | due: 2026-04-15
task: Set up staging environment | owner: Dev Team | due: 2026-04-20
task: Draft press release | owner: Marketing | due: 2026-05-01

section: Next Steps
deadline: Vendor selection complete | date: 2026-04-10 | consequence: Delays launch

Parse it

npx -p @dotit/core dotit hello.it

You get structured JSON — every block typed, every property extracted.

Render to HTML

npx -p @dotit/core dotit hello.it --html

Clean, styled HTML. Add a theme:

npx -p @dotit/core dotit hello.it --html --theme corporate

Query it

Find all tasks owned by Sarah:

npx -p @dotit/core dotit hello.it --query "type=task owner=Sarah"

Find all deadlines:

npx -p @dotit/core dotit hello.it --query "type=deadline"

Write it in Arabic, if you like

The canonical keywords have registered Arabic aliases — same semantics, same queries, and the keywords round-trip as written (an Arabic document stays Arabic). Create quotation.it:

عنوان: عرض سعر — تأثيث المكتب الرئيسي
ملخص: شركة الإتقان للتجارة — صالح حتى 2026-07-15
بيانات: | dir: rtl | theme: corporate

قسم: البنود
أعمدة: الوصف | الكمية | الإجمالي
صف: كرسي مكتب تنفيذي | 12 | 10,200 QAR
مؤشر: الإجمالي المستحق | value: 10,200 QAR

مهمة: اعتماد العرض | owner: أحمد | due: 2026-06-20

The same query finds the task whichever language it was written in:

npx -p @dotit/core dotit quotation.it --query "type=task due<2026-07-01"

Use in code

import { parseIntentText, renderHTML } from "@dotit/core";

const source = `
title: Quick Example
text: This is structured text.
task: Review document | owner: Ahmed | due: 2026-04-01
`;

const doc = parseIntentText(source);
const html = renderHTML(doc);

// Query blocks
const tasks = doc.blocks.filter((b) => b.type === "task");
console.log(tasks[0].properties.owner); // "Ahmed"

What's next

You've parsed, rendered, and queried. Now understand the model:

Core Concepts →