How it works
Classify domain
A fast model (~200ms) reads your message and maps it to one of NIOM’s built-in skill domains:
| Domain | Example requests |
|---|---|
| Code | ”Refactor this module”, “Find bugs in my project” |
| Research | ”Research quantum computing”, “Summarize this paper” |
| Creative | ”Write a blog post about AI”, “Draft an email” |
| Business | ”Analyze this spreadsheet”, “Create a project plan” |
| Personal | ”Set a reminder”, “Organize my files” |
| General | ”What’s the weather?”, “Tell me a joke” |
Build a Skill Path
Based on the domain, NIOM constructs a Skill Path — a ranked list of tools weighted by:
- Domain relevance — which tools belong to this skill domain
- Co-occurrence data — which tools tend to succeed together (learned from your usage)
- Query embedding similarity — how close your request is to each tool’s capabilities
Detect execution mode
Before executing, a lightweight scanner checks for scheduling intent:
- “do this every morning” → creates a recurring background task
- “research deeply” → routes to deep research mode
- “monitor my folder” → creates a one-shot observation task
Built-in skill domains
NIOM ships with 6 domain packs. Each pack defines which tools are available:🔧 Code
🔧 Code
File operations, shell commands, code search, editing. Activated when your request involves coding, debugging, or file management.Tools:
readFile, writeFile, editFile, searchFiles, listDirectory, runCommand🔍 Research
🔍 Research
Web search, deep research, URL fetching. Activated for information gathering, analysis, and synthesis.Tools:
webSearch, deepResearch, fetchUrl, readFile, writeFile✏️ Creative
✏️ Creative
Content creation tools. Writing, drafting, editing. Activated for blog posts, emails, documents, and creative work.Tools:
writeFile, readFile, webSearch, fetchUrl, deepResearch📊 Business
📊 Business
Data analysis, planning, and organization. Activated for spreadsheets, project plans, and business tasks.Tools:
readFile, writeFile, webSearch, listDirectory, runCommand👤 Personal
👤 Personal
Notifications, reminders, file organization. Activated for personal productivity tasks.Tools:
notifyUser, listDirectory, writeFile, readFile, runCommand🌐 General
🌐 General
The catch-all domain. System info, basic questions, quick tasks that don’t fit a specific domain.Tools:
systemInfo, webSearch, readFile, runCommandThe co-occurrence graph
As you use NIOM, it tracks which tools succeed together. IfwebSearch → fetchUrl → writeFile frequently co-occur in your research tasks, the Skill Tree learns this pattern and pre-selects all three when you ask for research.
This data is stored locally at ~/.niom/skill-graph.json. It’s not sent anywhere — your usage patterns stay on your machine.
Over time, tool selection becomes personalized to your workflow.
Schedule detection
NIOM’s Skill Tree includes a 2-tier schedule detection system: Tier 1 — Pattern matching (zero latency):- Detects obvious patterns: “every day”, “weekly”, “in 2 hours”
- Triggers immediately — no LLM call needed
- Fires only when the query is ambiguous or combines temporal language with actions
- Uses the fast model to confirm whether scheduling is intended
- Only applies if confidence > 0.7 — prevents false positives
Seeing it in action
You don’t need to think about the Skill Tree — it works silently. But if you’re curious, you can see it:- Console logs — the sidecar logs which domain was selected, which tools were loaded, and why
- Skill graph file — check
~/.niom/skill-graph.jsonto see co-occurrence data - Task creation — when the Skill Tree detects scheduling intent, it creates a task you can see in the Tasks panel