💻 TreeOS CLI

Navigate and manage your trees like a filesystem from the terminal. All commands map to the TreeOS REST API. Config stored in ~/.treeos/config.json.

📦 Install
npm install -g TreeOS
🖥️ Session
start / shellLaunch interactive shell
stop / exitExit the shell
login --key <key>Authenticate with your API key
logoutClear stored credentials
whoamiShow login, plan, energy, and active tree
🏠 User Home
Commands available without entering a tree. ls and cd also work from home to list/enter trees.
rootsList all your trees
use <name> / root <name>Enter a tree by name or ID
mkroot <name>Create a new tree
retire/leave [name] -fLeave a shared tree or delete if sole owner
homeLeave current tree, return home
invitesList pending invites from other users
tags / mailNotes where you've been @tagged
notesYour user-level notes. -l limit, -q search
chatsAll AI chats across your trees. -l limit
contributionsYour recent contributions
share-token [token]Show or set your share token
share idea <id>Public link to a raw idea
💡 Raw Ideas
Capture ideas from anywhere. AI figures out where they belong.
ideasList ideas. -p pending, -r processing, -s stuck, -d done, -a all, -q search, -l limit
cat idea <id or #>View full content of a raw idea
idea <message>AI places your idea in the right tree and navigates you there
idea-store <message>Save an idea for later without processing
idea-place <id or message>AI-place an idea (fire-and-forget)
idea-auto [on/off]Toggle auto-placement every 15 min (Standard plan+)
idea-transfer <id> <nodeId>Manually move an idea to a specific node
rm-idea <id> -fDelete a raw idea
🧭 Navigation
Inside a tree. ls and cd also work from home (listing/entering trees).
pwdPrint current path
ls / ls -lList children. Long format shows IDs and status
cd <name>Navigate into a child. Supports .., /, -r (search whole tree), path chaining (A/B/C)
treeRender subtree. -a active, -c completed, -t trimmed
Nodes have three statuses: active (green), completed (gray), trimmed (dim).
🔷 Node Management
mkdir <name>Create child node(s). Comma-separate for multiple: mkdir foo, bar
rm <name> -fDelete a node (soft delete)
rename <name> <new>Rename a child node
mv <name> <destId>Move a node to a new parent
completeSet current node and all children to completed
activateSet current node and all children to active
trimSet current node and all children to trimmed
prestigeCreate a new version of the current node
📝 Notes & Values
note <content>Post a note on the current node
notesList notes on the current node. -l limit, -q search
cat note <id or #>View full content of a note
rm-note <id> -fDelete a note
bookPrint the full book of notes from current node down
contributionsList contributions on the current node
valuesList values on the current node. -g global totals, -t per-node tree breakdown
value <key> <val>Set a value
goal <key> <goal>Set a goal
📅 Scheduling
Date: MM/DD/YYYY. Time: HH:MM or HH:MMam/pm. Reeffect: hours. Use clear to remove.
schedule <date> [time] [reeffect]Set schedule (e.g. 1/11/2025 3, 1/11/2025 11:45pm 5, clear)
calendarShow scheduled dates. -m month (1-12 or name), -y year
dream-time <HH:MM>Set nightly dream time (or clear)
🤝 Collaboration
teamShow owner and contributors
invite <username>Invite a user to the current tree
invite accept <id>Accept a pending invite
invite deny <id>Decline a pending invite
kick <username>Remove a contributor
owner <username>Transfer tree ownership
🔗 Links & Sharing
Clickable terminal hyperlinks. link uses your share token; share generates public links.
In a tree:
linkLink to current node
link rootLink to tree root
link bookLink to book view
link gatewayLink to gateway channels
link note <id>Link to a specific note
share note <id>Public link to a note
share bookPublic book share link (TOC included)
From home:
linkLink to your profile
link ideasLink to your raw ideas
link idea <id>Link to a specific raw idea
🧠 AI
chat <message>Chat with AI about the current branch
place <message>AI writes content into the branch
query <message>Ask AI about the branch (read-only, no writes)
chatsChat history for current node. -l limit
chats treeAll chat history across the whole tree
🔬 Understanding Runs
understand [perspective]Start an understanding run. Returns final encoding
understandingsList runs
understand-status <runId>Check progress
understand-stop <runId>Stop a run
📰 Blog
No login required.
blogsList published posts
blog <slug or number>Read a post by slug or list number
🔍 Name Matching
All commands accept names or IDs. No quotes needed for multi-word names. Matching order:
1. Exact ID or ID prefix
2. Exact name (case-insensitive)
3. Name starts with query
4. Name contains query
Multiple matches prompt you to disambiguate by ID.