← iLiveMyLifeFor developers · SDK · CLI · MCP

Your graph — from the command line,
and from your AI.

One open package gives you a TypeScript SDK, the ilml CLI, and an MCP server — so you can script your graph, or let Claude, Cursor and Windsurf work inside it directly.

First · Install

One package — CLI, SDK and MCP.

Node 18+. One global install gives you the ilml command and the SDK.

install & sign in
npm install -g @ilivemylife/graph-sdk
ilml login
ilml doctor   # verify everything works
In your terminal · CLI

Drive your graph with ilml.

The full command set — and every command speaks text or --json, reads from stdin or files, and pipes into shell scripts.

ilml — command reference
# Explore
$ ilml tree# your whole graph, as a tree
$ ilml items <node># a node and its children
$ ilml itemHistory <node># every change — who, what, when
$ ilml search <node> "text"# search a node’s chat
$ ilml messages <node># read a node’s chat
$ ilml itemUsers <node># who has access
$ ilml itemSettings <node># a node’s AI / notification settings
# Ask the AI
$ ilml ask <node> "question"# ask Lifebot, in the node’s context
$ ilml send <node> "message"# post a message (optionally trigger AI)
$ ilml editSettings <node># switch AI provider / smart model per node
# Create & reorganize
$ ilml addItem <parent> --title …# create a node
$ ilml editItem <node> --title/--desc/--tags# edit a node
$ ilml moveItem <node> <from> <to># move to another parent
$ ilml reorderChild <parent> <from> <to># reorder children
$ ilml setPosition <node> <parent> <n># move to a position
$ ilml archiveItem / unarchiveItem <node># archive / restore
$ ilml upload <node> ./file# attach a file
# Collaborate
$ ilml request-access <node># ask to enter a private node
# Plugins
$ ilml plugin install <name># add a plugin (e.g. linkedin)
$ ilml plugin list / update / remove# manage installed plugins
$ ilml <plugin> <command># run a plugin command
# Setup
$ ilml login [--local]# sign in — global or per-project
$ ilml doctor# verify your setup
$ ilml config set <key> <value># configure
$ ilml logout# sign out
Pro

One CLI, many accounts. ilml login signs you in globally — every folder. Run ilml login --local inside a project to use a different account just there (personal vs work, or a dedicated bot account for an automation). Resolution order: local config → .env token → global → shell variable.

text or JSON — composable in shell scripts
ilml tree --json | jq '.[].title'              # machine-readable → jq
ilml items <node> --json > backup.json          # snapshot your graph
cat notes.md | ilml editItem <node> --desc -    # pipe content straight in
In your AI · MCP

Plug your graph into your AI.

One command connects the MCP server to Claude Code (Cursor, Windsurf and Claude Desktop are the same idea).

Claude Code — available in every project
claude mcp add --scope user ilml -- npx -y @ilivemylife/graph-sdk

Then just ask, in plain language:

  • Read my latest notifications and summarize what needs my attention.
  • What changed in my “Projects” node this week — and who changed it?
  • Create a task “Call the bank” under My Life, due tomorrow.
  • Search my whole graph for everything about the landing redesign.
In your code · SDK

Or script it yourself.

Typed TypeScript SDK (ESM + CommonJS): read and write nodes, ask Lifebot, upload files, replay every change, subscribe to live updates.

Read your graph
const me = await graph.me()
const items = await graph.items(me.rootItemId)
console.log(items[0].title, '→', items.slice(1).map(i => i.title))
Create nodes
const project = await graph.addItem(me.rootItemId, { title: 'My Project' })
await graph.addItem(project.id, { title: 'First task' })
Ask Lifebot — AI that knows the node (needs the 'assist' tag)
const reply = await graph.askLifebot(project.id, 'What tasks do I have?')
console.log(reply.content)
Replayable change history — who, what, when
const history = await graph.itemHistory(project.id)
// every edit on the node: who made it, what changed, and when
Upload a document, search the chat
await graph.uploadFile(project.id, './spec.pdf')
const hits = await graph.searchMessages(project.id, 'deadline')
Extend it · Plugins

Install a plugin — or build your own.

Plugins install into your ilml CLI as packages. The LinkedIn plugin is the reference: it keeps a local mirror of your LinkedIn data and runs AI-assisted workflows under your direction — and doubles as the template for authoring your own.

install one / build your own
ilml plugin install linkedin     # from npm:ilml-plugin-linkedin
ilml plugin list                 # what's installed
ilml linkedin <command>          # run a plugin command
# author one → see examples/plugin-author.mjs in the SDK

Build on your graph.

Your data, your code, your AI — all on one open graph.

Start your graph →