🚀 Welcome to newOS4
tutorial in the terminal to start a 2-minute interactive tour!
🖥️ Terminal OS
Full virtual filesystem with ls, cd, cat, touch, edit, find, grep and 50+ Unix-like commands.
🤖 AI Assistant
Built-in AI agent with tool calling, skills, memory, and 28 tools. Just type ai "your question".
🧩 Module System
46 modules across 3 layers — 28 core, 17 ext + test suite. Includes cron, mindmap, calculator, voice, WebDAV, themes, shell scripting, and agent orchestration.
📚 Skills
Self-improving AI remembers workflows and teaches you new capabilities — type skill-list to see what's installed.
🔤 First 6 Commands
📋 Workflow
- Type
help— see every available command - Type
ls— browse files in your virtual drive - Type
touch hello.txt— create a file - Type
edit hello.txt— write something and save - Type
ai "summarize this"— let AI analyze your files - Type
status— check system health
🔧 Quick Start
Type help to see all 130+ commands grouped by category. Use help <command> for details on a specific one.
The 📋 Quick Commands panel (Ctrl+K) has clickable cards for common tasks.
For the full reference, switch to the 📘 User Guide tab — it covers every module, filesystem, AI, skills, configuration, and all extended modules in detail.
🔧 Module Development API
Ext Module Structure
Modules are ES6 classes with 3 required and 1 optional method:
class MyModule {
constructor() { this.commands = {}; this.terminal = null; }
requirements() { return { met: true, missing: [] }; }
getHelpInfo() { return { 'mycmd': 'mycmd — What it does' }; }
registerCommands() { this.commands['mycmd'] = (args) => { /* ... */ }; }
}
// Auto-register:
if (typeof window.webx11 !== 'undefined' && window.webx11) {
webx11.moduleManager.registerModule(new MyModule(), 'url');
}
VFS (Virtual FileSystem) API
Access via this.terminal.fs:
| Method | Returns | Description |
|---|---|---|
readFile(path) | string or null | Read file content |
writeFile(path, content) | boolean | Write string to file |
ls(path) | array | List directory entries |
mkdir(path) | boolean | Create directory |
rm(path) | boolean | Remove file |
rmdir(path) | boolean | Remove empty directory |
touch(path) | boolean | Create empty file |
cd(path) | boolean | Change current directory |
pwd() | string | Current directory path |
mv(old, new) | boolean | Move/rename file |
cp(src, dst) | boolean | Copy file |
AI Tool Definition Format
Add tools to module-aiassist.js in getToolDefinitions() (around line 300):
{
type: 'function',
function: {
name: 'my_tool',
description: 'What it does — AI reads this to decide when to call it.',
parameters: { type: 'object', properties: {
paramName: { type: 'string', description: 'What this param does' }
}, required: ['paramName'] }
}
}
Then add a case 'my_tool': handler in runTool() (around line 1000). Return JSON.stringify(...).
Skill Format
Skills are markdown files with YAML frontmatter, stored in /skills/ in VFS:
---
name: my-skill
description: Brief description
tags: [tag1, tag2]
---
# Skill Body
Instructions, examples, and workflows here.
OllamaManager API
| Property/Method | Description |
|---|---|
.endpoint | Current Ollama API URL |
.currentModel | Active model name |
.models | Array of available models |
.connected | Boolean connection state |
.connect() | Connect to Ollama, load models |
.chatWithTools() | AI chat with tool calling support |
window.webx11 Global
The terminal instance is exposed globally as window.webx11 (aliased as webx11). This gives access to everything:
webx11.fs // VFS instance
webx11.moduleManager // Module registry
webx11.ollamaManager // Ollama connection
webx11.security // Security manager
webx11.executeCommand(cmd) // Run a terminal command programmatically
webx11.print(text, type) // Print to terminal output
webx11.tutorialModule // Tutorial progress (if active)
webx11.inputField // DOM input element
⛅ Overview
WebX11 v4.5.24 is a browser-based Unix-like terminal — dynamic modules, AI assistant (Ollama), persistent virtual filesystem, web search, voice input, code editor, and a full skill system. Everything runs client-side in your browser.
🧩 18 Core + 14 Ext
Modules loaded at startup. Shell with pipes, redirects, vars, and scripts.
🤖 Agent with Tools
28 tools — file ops, web search, skills, modules. Destructive action confirmations with inline bar + countdown.
📚 Skills System
Persistent procedural memory. Create, patch, search, export skills for repeatable workflows.
💾 VFS + Sessions
Virtual filesystem persists in localStorage. Save/load/export sessions.
🎤 Voice Input
Speech recognition in the terminal. Works in Chrome, Edge, Safari.
🌐 Web Search
SearXNG + DuckDuckGo fallback + URL fetch/extract. All built-in.
☁️ WebDAV Sync
Push, pull, backup VFS to any WebDAV server.
📱 Mobile First
Touch-optimized. srcdoc HTML preview works on mobile.
✏️ Text Editor
Inline VFS editor — edit <path> opens a modal with save/cancel.
🔗 Aliases
ll, h, cls built-in. Define custom aliases with alias x=y.
🚀 Quick Start
- Open
index.htmlin Chrome/Edge - Watch the splash screen load modules
- Type
help+ Enter - Use the quick-action buttons above the input area
First Commands
# List VFS files ls # List files faster ll # Connect to Ollama AI ollamaconnect # Chat with AI ai what's in this directory? # Create a file put hello.txt Hello World # Edit a file edit hello.txt # Search the web search quantum computing # Find files find hello # Compare two files diff a.txt b.txt
- Enter — Execute
- Tab — Cycle autocomplete
- ↑/↓ — Command history
- Esc — Hide autocomplete / stop AI
- | — Pipe:
ls | grep hello
📖 Full Command Reference
System
| Command | Description | Example |
|---|---|---|
help | Show all commands | help |
clear / cls | Clear terminal | cls |
echo | Print text | echo Hello |
mem | Show memory usage | mem |
config | View/set terminal config (max-lines, history, pipe-buffer) | config terminal-max-lines 500 |
status | System status | status |
font-size | Change font size (8–32) | font-size 16 |
load-local | Load module from VFS or URL | load-local modules/ext/calc.js |
startup-modules | Open startup module selector | startup-modules |
preview | Preview HTML in iframe | preview test.html |
factory-reset | Reset config | factory-reset |
reset-vfs | Reset VFS | reset-vfs |
logrotate | Rotate current.log to dated archive | logrotate |
health-check | Audit VFS, modules, logs, trash, skills | health-check |
memory-map-export | Generate memory map from /memory/index.json | memory-map-export |
commands | List commands with module source | commands |
check | System health + module requirements | check |
checkpoint | Create VFS snapshot | checkpoint |
checkpoint-list | List VFS checkpoints | checkpoint-list |
rollback | Restore VFS from checkpoint | rollback |
checkpoint-del | Delete a checkpoint | checkpoint-del |
smart-prompt | Toggle context-aware prompt | smart-prompt |
test | Run test suite | test auto |
AI Assistant
| Command | Description | Example |
|---|---|---|
ai / ask | Chat with AI (tool-calling) | ai create a notes file |
ai-clear | Reset conversation context | ai-clear |
ai-system | View/set system prompt | ai-system |
ai-context | Show conversation memory | ai-context |
ai-allow | Allow pending destructive action | ai-allow |
ai-deny | Deny pending destructive action | ai-deny |
ai-stop | Cancel running AI request | ai-stop |
ai-compress | Manually compress conversation context | ai-compress |
ai-config | View/set AI loop config (max-turns, max-context, max-context-tokens, confirm-timeout(0=disabled), chat-lock-timeout, skill-debounce, trivial-optimization) | ai-config max-turns 12 |
debug | Toggle AI debug mode | debug |
Smart Context
| Command | Description | Example |
|---|---|---|
context | Set active profile | context expert |
contexts | List profiles | contexts |
context-new | Create profile | context-new myprofile |
context-delete | Delete profile | context-delete old |
smart-ask | Ask with current profile | smart-ask explain this |
Dynamic Prompts
| Command | Description | Example |
|---|---|---|
prompt | Use saved template | prompt summarize |
prompt-save | Save template | prompt-save myprompt |
prompt-list | List saved prompts | prompt-list |
prompt-delete | Delete prompt | prompt-delete old |
prompt-var | Set template variable | prompt-var name Alice |
prompt-vars | List variables | prompt-vars |
Skills
| Command | Description | Example |
|---|---|---|
skill-list | List all skills | skill-list |
skill-view | View skill content | skill-view web-scraper |
skill-create | Create a skill | skill-create name desc "steps" tags |
skill-patch | Update a skill | skill-patch name "new content" |
skill-delete | Delete a skill | skill-delete oldskill |
skill-export | Export skill to JSON | skill-export myskill |
skill-import | Import skill from JSON | skill-import |
skill-sync | Rebuild skill index | skill-sync |
skill-webdav-sync | Push all skills to WebDAV as JSON | skill-webdav-sync |
Config
| Command | Description | Example |
|---|---|---|
config | Get a config value | config |
config-set | Set a config value | config-set key value |
config-list | List all config | config-list |
config-delete | Delete a config entry | config-delete key |
config-export | Export config as JSON | config-export |
config-reset | Reset all config | config-reset |
📁 Filesystem
All VFS files persist in localStorage. ls, cd, pwd work like a real terminal. Clickable output — tap a file to cat, tap a dir to cd.
| Command | Description | Example |
|---|---|---|
ls / ll | List files | ll |
cd | Change directory | cd notes |
pwd | Print working directory | pwd |
cat | View file | cat readme.txt |
put | Create file with content | put hello.txt Hello World |
edit | Open in modal editor | edit notes.md |
rm | Delete file | rm temp.txt |
mkdir | Create directory | mkdir projects |
rmdir | Remove directory | rmdir empty |
trash | Move file to trash | trash temp.txt |
trash-dir | Move directory to trash | trash-dir olddir |
ls-trash | List items in trash | ls-trash |
empty-trash | Permanently delete all trash items | empty-trash |
mv | Move/rename | mv old.txt new.txt |
cp | Copy file | cp a.txt b.txt |
touch | Create empty file | touch newfile.txt |
tree | Directory tree | tree |
find | Recursive file search | find .txt |
diff | Compare two files | diff a.txt b.txt |
grep | Search file contents | grep hello *.txt |
head | First N lines | head file.txt 10 |
tail | Last N lines | tail file.txt 10 |
sort | Sort file lines | sort file.txt |
wc | Count lines/words/chars | wc file.txt |
du | Disk usage | du |
upload | Upload file from device | upload |
download | Download file | download file.txt |
vfs-size | Show VFS size report (top files, system dirs) | vfs-size |
vfs-clean | Nuke snapshots, sessions, and trash | vfs-clean |
vfs-export | Download VFS as JSON | vfs-export |
vfs-import | Import VFS from JSON | vfs-import |
session-save | Save a session snapshot | session-save |
session-load | Load a session snapshot | session-load mysession |
session-list | List all saved sessions | session-list |
session-delete | Delete a session | session-delete old |
session-export | Export session as JSON download | session-export mysession |
session-import | Import a session from file | session-import |
🤖 AI Assistant
How It Works
- Type
ai <request> - AI loads relevant skills + recent session memory
- Decides which tools to call (up to 8 turns)
- Destructive tools trigger an inline confirm bar — no dark overlay
- 120s countdown: yellow → bold red at 30s → pulsing at 10s
- Type
ai-allow/ai-denyor tap the buttons - After complex tasks, AI suggests creating a skill
write_file, delete_file, make_directory, edit_module require confirmation before executing. run_command only requires confirmation for destructive commands (rm, kill, format) — safe-read commands like ls, find, tree are auto-approved.
Available Tools
| Tool | Description | Destructive? |
|---|---|---|
list_files | List VFS directory | ❌ |
read_file | Read file (8k trunc) | ❌ |
write_file | Write to file | ✅ |
make_directory | Create directory | ✅ |
delete_file | Delete file/dir | ✅ |
get_status | System status | ❌ |
get_help | List commands | ❌ |
web_search | SearXNG + DDG | ❌ |
web_fetch | Extract URL content | ❌ |
run_command | Execute terminal cmd (safe-read auto-approved) | ❌ (only destructive cmds) |
load_skills | Search relevant skills | ❌ |
create/patch/list_skills | Skill management | ❌ |
view/edit/test/reload | Module operations | edit ✅ |
user_get/set/list/forget | User profile | ❌ |
session_save/load/recent/stats | Session memory | ❌ |
Sound Notification
A short "ding" plays via WebAudio when AI finishes. Toggle with the 🔊 Sound button in quick-actions. Persists in localStorage.
📚 Skills System
/skills/. The AI auto-loads relevant skills at task start. Create skills after complex workflows (3+ tool calls) to save the approach.
Format
--- name: web-scrape-and-summarize description: Scrape a URL and summarize tags: [web, research] category: general --- ## Steps 1. Use web_fetch(url) to get content 2. Present a concise summary 3. Save with create_skill
Commands
# List all skills skill-list # Create a skill skill-create my-skill "Does X" "Steps to do X" "tag1,tag2" # View / patch / delete skill-view my-skill skill-patch my-skill "Updated steps" skill-delete my-skill # Export / Import skill-export my-skill skill-import
Auto-Creation
When the AI encounters the same tool error 3+ times, a workaround skill is auto-created. Every 20 messages, skills are audited for staleness.
🤖 Ollama
Setup
# Install & pull a model curl -fsSL https://ollama.com/install.sh | sh ollama pull llama2 # Start Ollama ollama serve # In WebX11 ollamaconnect
Commands
| Command | Description |
|---|---|
ollamaconnect | Connect to Ollama |
ollamasetproxy | Set remote endpoint |
ollamamodels | List models |
ollamasetmodel | Set active model |
ollamadisconnect | Disconnect |
ollama | Open Ollama Manager UI |
models | List all models |
model-info | Model details |
model-pull | Pull a model |
model-delete | Delete a model |
model-run | Run model with prompt |
OLLAMA_ORIGINS="*" ollama serve
🌐 Search & Web
| Command | Module | Description | Example |
|---|---|---|---|
search / s | SearXNG | Web search | search raspberry pi |
ddg / duck | DDG | DuckDuckGo fallback | ddg news today |
fetch / web | Fetcher | Fetch URL content | fetch https://example.com |
extract | Fetcher | Clean readable text | extract https://news.article |
images | SearXNG | Image search | images cats |
The AI agent also has web_search and web_fetch tools using the same APIs.
🎤 Voice & Sound
- Tap 🎤 to start listening — button pulses green
- Say your command — recognized text fills the input
- Tap again or wait to stop
- Red flash indicates failure
Sound
Toggle AI response "ding" with the 🔊 Sound button. Persists in localStorage.
⚙️ Configuration
All config values stored as webx11_config_* in localStorage. Use the ⚙ Config button or CLI commands.
Notable Keys
| Key | Description | Values |
|---|---|---|
webx11_config_ai_sound | AI sound toggle | on, off |
webx11_config_voice_visible | Mic button visibility | on, off |
Persisted State
| Key | Description |
|---|---|
webx11_filesystem | VFS JSON |
webx11_modules | Loaded module URLs |
webx11_ollama_endpoint | Ollama API URL |
webx11_ollama_model | Selected model |
webx11_startup_modules | Startup selection |
webx11_font_size | Font size (8–32) |
webx11_command_history | Command history |
webx11_terminal_output | Persisted output |
webx11_ai_context | AI conversation history |
webx11_user_profile | AI user profile |
webx11_aliases | User-defined aliases |
🔒 Secret Vault
| Command | Description |
|---|---|
secret-set | Encrypt and store a secret |
secret-get | Decrypt and display a secret value |
secret-list | List all stored secret names |
secret-del | Remove a stored secret |
secret-lock | Lock the vault (clears key from memory) |
secret-unlock | Unlock the vault with PIN |
secret-setpin | Set or change vault PIN |
secret-status | Show vault status (locked/unlocked/pin set) |
🧩 Module System
Commands
| Command | Description |
|---|---|
modules | Open Module Manager UI |
loadmod <url> | Load module from URL |
removemod <name> | Remove a module |
listmods | List all loaded modules |
load-local | Load module from VFS or URL |
loadlocal | Alias for load-local |
startup-modules | Configure boot modules |
Boot Order
- Splash screen with ⚙ gear
- Foundation:
virtual-fs.js→module-manager.js→ollama-manager.js→terminal.js - Built-in modules loaded async
- Ext modules loaded if selected
- Splash hides, terminal ready
Code Editor
The AI can edit_module(name) to copy source into the Code Editor modal. Edit inline, then 💾 Save & Test to load live from /_mods/. Use test_module without reloading the page.
You can also type edit modules/ext/foo.js — the editor now mirrors saves to _mods/<name>.js so test_module works from either path.
🧰 Extended Modules
WebDAV Sync
| Command | Description |
|---|---|
webdav-config | Configure server |
webdav-status | Connection status |
webdav-ls | List remote dir |
webdav-push | Push file |
webdav-pull | Pull file |
webdav-backup | Backup VFS |
webdav-restore | Restore VFS |
webdav-backup-list | List backups |
webdav-explorer | Interactive text browser |
webdav-browser | Visual file explorer modal |
Calculator & Cron
| Command | Module | Description |
|---|---|---|
calc | calc.js | Evaluate math / unit conversion |
cron-every | cron.js | Schedule a command |
cron-list | cron.js | List scheduled jobs |
cron-stop | cron.js | Stop a job |
cron-clear | cron.js | Clear all jobs |
Theme, WPM & Mindmap
| Command | Module | Description |
|---|---|---|
theme | theme.js | Set color theme (dark, light, amber, cyber, …) |
wpm | wpm.js | Package manager |
mindmap | mindmap.js | Show file structure as mindmap |
Server Monitor
| Command | Description |
|---|---|
server | Add server to monitor |
servers | List monitored servers |
server-check | Ping a server |
server-remove | Remove server |
monitor | Toggle auto-monitoring |
IO / Backup
| Command | Description |
|---|---|
export-mods | Export module configs |
import-mods | Import module configs |
backup | Full system backup |
restore | Restore from backup |
share-mod | Share module as text |
Aliases
Built-in: ll = ls, h = help, cls = clear. Define custom: alias x=ls -la. Remove: unalias x. Persists in localStorage.
🔧 BusyBox Utilities
| Command | Description | Example |
|---|---|---|
which | Locate command in module registry + fuzzy suggestions | which ls |
env | List local env vars (webx11_, ollama, user profile) | env |
date | Current time (local, ISO, UTC, Unix timestamp) | date |
cal | ASCII calendar for any month/year | cal 12 2026 |
yes | Output repeated string (capped at 50) | yes test |
seq | Generate number sequence | seq 1 5 |
base64 | Base64 encode/decode | base64 -d aGVsbG8= |
printf | Formatted print (%s, %d, %f) | printf "hello %s" world |
cut | Extract column from file | cut -f2 -d, data.csv |
uniq | Filter adjacent duplicates | uniq lines.txt |
hostname | Show host/platform info | hostname |
whoami | Show current user | whoami |
basename | Strip directory from path | basename /a/b/c.txt |
dirname | Strip filename from path | dirname /a/b/c.txt |
sleep | Countdown delay (1-30s) | sleep 3 |
expand | Convert tabs to spaces | expand code.txt |
All file-reading commands (cut, uniq, expand) work with shell pipes: cat data.csv | cut -f2 -d, | uniq.
🪟 Floating UI Elements
| Command | Description | Example |
|---|---|---|
floating-add | Add a floating element (btn, menu, or panel) | floating-add btn quick-status ls -la |
floating-remove | Remove a floating element | floating-remove quick-status |
floating-list | List all floating elements | floating-list |
floating-pos | Reposition an element (x y in px, or auto) | floating-pos menu1 100 200 |
floating-clear | Remove all floating elements | floating-clear |
floating-toggle | Show/hide a floating element | floating-toggle menu1 |
Usage Examples
# Simple button — click to run a command floating-add btn quick ls -la # Menu with sub-buttons (btn:Label:command) floating-add menu tools Tools btn:Status:status btn:Help:help btn:Check:health-check # Panel with info text floating-add panel info "Server: production | Uptime: 12d" # You can drag buttons and menu headers to reposition them # Position persists across page reloads
🐚 Shell
Pipes |
Chain commands by piping stdout to the next command's stdin. Pipe-aware commands (grep, head, tail, sort, wc, cut, uniq, expand) auto-read from pipe when no file argument is given.
# Filter file listing ls | grep .md # Count lines matching pattern cat notes.txt | grep error | wc # Pipeline: filter → sort → head cat data.csv | grep 2026 | sort | head -5
Redirects > >> <
# Write output to file cal > /tmp/calendar.txt # Append to file echo "new line" >> log.txt # Read file as stdin grep error < log.txt
Command Chaining
# AND: next runs only if previous succeeds touch test.txt && echo "created" # OR: next runs only if previous fails rm nonexistent || echo "failed" # Sequence: runs in order regardless cd /skills; ls
Variables
# Set a variable export GREET=hello # Reference in any command echo $GREET # List all vars set # Remove a var unset GREET
Scripts
VFS files with .sh extension can be executed line by line. Variables persist across lines.
# Create a script in VFS echo 'export NAME=WebX11' > greet.sh echo 'echo "Hello, $NAME!"' >> greet.sh # Run it script greet.sh sh greet.sh
Shell Commands
| Command | Description |
|---|---|
export <var>=<val> | Set a shell variable |
unset <var> | Remove a shell variable |
set | List all shell variables |
script <path.sh> | Run a VFS script file |
sh <path.sh> | Alias for script — run a VFS script file |
alias [name=value] | List aliases or set a custom alias name=command |
unalias <name> | Remove a custom alias |
🪄 Floating UI
| Command | Description |
|---|---|
floating-add btn <id> <label> <command> | Spawn a floating button that runs a terminal command |
floating-add menu <id> <label> btn:Sub|cmd ... | Spawn a collapsible floating menu with sub-buttons |
floating-add panel <id> <title> <content> | Spawn a floating text panel |
floating-remove <id> | Remove a floating element |
floating-list | Show all floating elements with IDs and positions |
floating-pos <id> <x|auto> <y|auto> | Reposition a floating element |
floating-toggle <id> | Show/hide a floating element |
floating-clear | Remove all floating elements |
# Create a button floating-add btn files "📁 Files" ls # Create a collapsible menu floating-add menu tools "🔧 Tools" btn:Help|help btn:Clear|clear # Create a status panel floating-add panel status "📊 Status" "Ready" # List all elements floating-list # Hide without removing floating-toggle files
🔒 Security & Guardrails
Guardrail Policy
Pre-execution guardrails intercept AI tool calls and block or warn on patterns matching dangerous operations:
| Rule | Description | Severity |
|---|---|---|
rm-rf-block | Prevent recursive force deletes | 🔴 deny |
curl-pipe-bash | Block curl-to-bash execution | 🔴 deny |
rm-outer-vfs | Block deletion of sensitive metadata files | 🔴 deny |
mass-delete | Block mass-delete operations | 🔴 deny |
chmod-777 | Block world-writable permissions | 🔴 deny |
eval-danger | Block dynamic code execution (eval/exec/system) | 🔴 deny |
external-dl | External file download warning | 🟡 warn |
env-overwrite | Modifying environment variables | 🟡 warn |
Commands
| Command | Description |
|---|---|
guardrail | Show guardrail policy rules and violation count |
guardrail-add <id> <severity> <pattern> <tools...> | Add a custom guardrail rule (severity: deny/warn) |
guardrail-remove <id> | Remove a guardrail rule |
shadow <command> | Execute command in Shadow VFS — snapshot, run, diff changes |
shadow-commit | Accept shadow VFS changes |
shadow-rollback | Undo shadow VFS changes |
Confidence Escalation
When the AI requests destructive actions, it must declare Confidence: N% in its reasoning. Below 90%, manual approval is required. If no confidence is declared, manual approval is required by default. This prevents the AI from making low-confidence destructive changes.
💬 Sessions
Sessions persist AI conversation logs in VFS /memory/. The AI auto-loads recent sessions at start for continuity.
AI Tools
| Tool | Description |
|---|---|
session_save | Save summary |
session_load | Load by date |
session_recent | Show last N |
session_stats | Aggregate statistics |
The terminal auto-saves session state every 60s and auto-restores on page reload.
💾 Storage
# Clear all WebX11 data localStorage.clear() location.reload() # Back up / restore VFS vfs-export vfs-import
~5–10MB per domain. Only URLs (not code) are stored for modules.
☁️ WebDAV
Cloud sync with your WebX11 space. File-tree browser UI with bulk actions.
| Command | Description |
|---|---|
webdav-config <url> <token> | Configure WebDAV connection |
webdav-status | Show sync status and connection health |
webdav-ls [path] | List remote files |
webdav-push <local> [remote] | Upload file to cloud |
webdav-pull <remote> [local] | Download file from cloud |
webdav-browser | Open file-tree browser UI with checkboxes, context menu, inline rename |
webdav-rm <path> | Delete remote file/directory |
webdav-mkdir <path> | Create remote directory |
webdav-rename <old> <new> | Rename remote file |
webdav-move <src> <dst> | Move remote file (alias for rename) |
webdav-backup | Backup entire space |
Browser Features
- Checkbox select + Select All toggle
- Bulk action bar: Delete, Move, Download selected files
- Inline rename: double-click filename
- Right-click context menu with all operations
- Breadcrumb navigation
- Create-directory button
- Keyboard shortcuts:
j/knavigate,Spaceselect,Enteropen
🤖 Agent Orchestration
Register, list, and delegate tasks to AI agents with lease-based lifecycle management.
| Command | Description |
|---|---|
agent-list | List all registered agents with status |
agent-status <id> | Show detailed status for a specific agent |
agent-register <name> <model> | Register a new AI agent |
agent-unregister <id> | Remove an agent from the registry |
lease-list | Show active leases — agent tasks with status and TTL |
orchestrate <task> | Delegate multi-step task to agent orchestrator |
orchestrate-parallel <task> | Decompose and run sub-tasks in parallel (auto-splits on "and"/"then") |
orchestrate-decompose <task> | Preview how a task would be split into sub-tasks |
orchestrate-result | Show results of the last parallel batch |
orchestrator-status | Show orchestrator agent pool status |
orchestrator-list | List all spawned agents with full details |
orchestrator-spawn <role> [caps...] | Spawn a new worker agent |
orchestrator-sleep <id> | Suspend agent to VFS (survives reload) |
orchestrator-wake <id> | Restore agent from VFS sleep state |
orchestrator-kill <id> | Terminate an agent and revoke leases |
orchestrator-purge | Remove dead agents (>60s silent) |
orchestrator-config <key> <value> | Tune: spawn-limit, spawn-strategy, heartbeat-timeout, idle-timeout, restart-policy, a2a-polling (on/off), a2a-poll-interval, heartbeat-check, idle-sweep-interval, dead-purge-timeout, consensus-size, consensus-strategy, consensus-timeout, pipeline-auto-fix, pipeline-stage-timeout (persisted) |
orchestrator-restart-policy <id> <policy> | Set per-agent restart policy: on-failure, always, never |
consensus <question> | Consensus: spawn N agents, debate, resolve by majority vote |
consensus-status | Show current/active consensus round status |
consensus-history | Show past consensus rounds and resolutions |
pipeline <test|deploy|verify|history|config> | Autonomous CI/CD: test agents/modules, deploy (test→auto-fix→verify), history, config |
lease-create <agent-id> [duration] [task] | Create a time-bound lease for a worker agent |
lease-list | Show active leases — agent tasks with status and TTL |
lease-revoke <id> | Revoke an active lease |
lease-renew <id> <seconds> | Extend an active lease by N seconds |
📜 A2A Contracts
Define and enforce agent-to-agent contracts with input/output schema validation. Contracts are stored in /.contracts/ and validated during orchestrator delegation.
| Command | Description |
|---|---|
a2a-send <agent-id> <json> | Send an A2A message to an agent's VFS inbox |
a2a-list | Show all A2A messages with pending status |
contract-register <role> [fields...] --output [fields...] | Register a contract with input/output schema |
contract-list | List all registered contracts |
🧠 Neural VFS
Semantic concept-indexing layer over the hierarchical VFS. Scans files and builds a concept → path mapping using filenames, tags, and headers.
| Command | Description |
|---|---|
memgraph-status | Memory graph node/edge counts |
memgraph-search <q> | Find nodes by label or type |
memgraph-stats | Most connected nodes, strongest edges |
memgraph-export | Export graph as JSON |
memgraph-prune | Remove stale low-weight edges |
nvfs-status | Show index stats and last scan time |
nvfs-resolve <concept> | Find files related to a concept (exact + fuzzy) |
nvfs-tree [concept] | Show concept-to-file mapping tree |
nvfs-config [key] [value] | View/set config (fuzzy-limit, tree-files, tree-concepts, resolve-files, deep-index, deep-model) |
nvfs-alias list|add|remove|clear | Manage concept aliases |
nvfs-sync [--deep] | Incremental background sync dirty files |
📊 Server Monitor
Uptime monitoring for external services + self-optimization telemetry tracking tool latency and error rates.
| Command | Description |
|---|---|
server <name> <url> | Add a server to monitor |
servers | List all monitored servers |
server-check <name> | Check a server's current status |
monitor | Toggle auto-monitoring (60s interval) |
system-health | Tool latency, VFS stats, modules, memory, error rates |
predict <task> | Predict task duration, tool turns, and confidence |
predictor-status | Prediction model accuracy and data points |
predictor-config <k> <v> | Tune confidence-threshold, min-data-points |
🔧 Debug Panel
Toggle the debug overlay to monitor system internals in real-time.
| Command | Description |
|---|---|
debug | Toggle debug panel on/off |
Debug Panel Shows
- Memory — localStorage usage, VFS size, session context size
- Events — registered event listeners, module event bindings
- Errors — recent JS errors with stack traces
- Modules — loaded count, broken references, cache state
Useful for troubleshooting module load failures, VFS corruption, and AI context bloat.
🧪 Sandboxed Execution
WebWorkers provide isolated contexts for task execution. Each worker gets a VFS snapshot so operations don't interfere with the main terminal.
| Command | Description |
|---|---|
sandbox-status | Show worker pool health and task metrics |
sandbox-config <k> <v> | Configure max-workers, min-workers |
sandbox-run <task> | Execute a task in the sandbox pool |
sandbox-kill <id> | Terminate a running sandbox task |
orchestrate --sandboxed <task> routes delegation through the sandbox for full isolation.
🧠 Memory Graph
Cross-session persistent graph database tracking files, concepts, tasks, and tools. Nodes store metadata, edges record relationships with weighted strength. Survives page reloads via VFS persistence.
| Command | Description |
|---|---|
memgraph-status | Show node/edge counts and graph health |
memgraph-search <q> | Find nodes by label, type, or id |
memgraph-stats | Most connected nodes and strongest edges |
memgraph-export | Export full graph as JSON to VFS |
memgraph-prune | Remove stale low-weight edges (>30d, <3 uses) |
memgraph-learn <entity> <fact> | Add a fact to the memory graph |
Context is automatically injected into AI prompts for cross-session awareness.
🌐 World Model
System self-awareness engine. Synthesizes data from memory graph, module system, skills index, telemetry, and agent pool into a unified model at /system/world-model.json. Auto-refreshes every 5 minutes.
| Command | Description |
|---|---|
world-model | Show full world model breakdown |
world-model-summary | One-line system status summary |
world-model-ask <q> | Query modules, skills, agents, health, or changes |
world-model-refresh | Force re-synthesis immediately |
world-model-config <k> <v> | Tune refresh-interval and max-projects |
🔒 Security
| Feature | Status |
|---|---|
| Input Validation | ✅ |
| Output Escaping | ✅ |
| No eval() on User Input | ✅ |
| Path Traversal Prevention | ✅ |
| Sandboxed File System | ✅ |
| AI Destructive Confirmations | ✅ Required + 120s countdown |
| Iframe Preview Sandbox | ✅ allow-same-origin allow-scripts |
Security Levels
| Level | Behavior |
|---|---|
0 | Unrestricted — all commands allowed without confirmation |
1 (default) | Confirm destructive actions (rm, overwrite, etc.) |
2 | Deny sensitive commands (rm -rf, encrypt operations) |
3 | Deny all dangerous commands (requires deliberate override) |
| Command | Description |
|---|---|
security-level <0-3> | Set active security level |
security | Show full status: level, blocked count, destructive/system/whitelist sets, suspicious flags, registered commands |
security-destructive list | Show destructive command set |
security-destructive add|remove <cmd> | Add/remove command from destructive set (persisted) |
security-system list | Show system command set |
security-system add|remove <cmd> | Add/remove command from system set (persisted) |
security-whitelist list | Show whitelist command set |
security-whitelist add|remove <cmd> | Add/remove command from whitelist (persisted) |
security-flag list | Show suspicious flags |
security-flag add|remove <flag> | Add/remove suspicious flag (persisted, -- prefix optional) |
cmd-allow <command> | Add command to allowlist (bypasses restrictions) |
cmd-deny <command> | Add command to denylist (always blocked) |
🔧 Troubleshooting
| Issue | Solution |
|---|---|
| AI not responding | Run ollamaconnect first, ensure Ollama is running |
| Voice not working | Chrome/Edge/Safari only. Grant mic permission |
| Module fails to load | Check CORS on the hosting server |
| Data lost after refresh | Check localStorage is enabled. Private mode clears data |
| AI actions not confirming | Confirm bar auto-denies after 120s. Type ai-allow |
| Sound not playing | Browser may need first user gesture. Toggle off/on |
| Ollama CORS error | OLLAMA_ORIGINS="*" ollama serve |
Debug
# Console F12 → Console # View AI state ai-system ai-context # Module status listmods
⚡ Quick Reference
📄 One-page Quick Reference cheat sheet — printable, dark mode, all commands.
📋 Changelog
- tar / untar commands — New pure-JS tarball parser in cryptogzip.js.
tar <src-dir> <out.tar[.gz]>bundles a VFS directory;untar <path.tar[.gz]> [dest-dir]extracts back. Auto-detects gzip wrapper. Fixes the "downloaded newos4.tar.gz but can't extract" problem. - Binary-safe gzip —
gunzipnow preserves binary content (was UTF-8 only). Updated to use base64 roundtrip for binary files. - POSIX ustar format — Reads & writes standard ustar tarballs (compatible with GNU tar, BSD tar, macOS tar).
- Cheatsheet updated — Added 8 entries under 🔧 Tools for tar/untar/gzip/gunzip/encrypt/decrypt/diff/edit
- System prompt — tar/untar added to [ALL OTHERS] command list
- Doc version sync — Help page title, overview, and footer updated to v4.5.22 to match deployed module-loader.js
- Whitepaper v4.5.22 — Bumped from v4.3.0-beta; Last Updated 2026-06-08
- Deprecated module-modmgr — Removed from BUILTIN array (was duplicate of module-manager.js). Set auto_load=false, layer=deprecated. File retained for one release for rollback safety; deletion scheduled v4.6.0
- Fixed modules-index class —
module-loaderclass changed from filename string"module-loader.js"tonull(foundation file, not a module class) - packages.json cleanup — Renamed
neural-vfstoneural-vfs-core, category →core, added note that NVFS is built-in not a WPM package - Cheatsheet coverage — Added 4 missing commands:
sandbox-config,memgraph-export,predictor-config,world-model-config - Audit script fix —
audit-newos4-filesystem.pynow respectsskills/index.jsonfor orphan detection (no more 26 false-positive warnings on valid skill JSONs)
- Security Config CLI —
security-destructive,security-system,security-whitelist,security-flagadd|remove|list with localStorage persistence and boot loading - Enhanced security command — Shows all sets (destructive, system, whitelist, flags) plus registered command count
- AI loop config —
ai-config max-turns|max-context|trivial-optimizationwith persistence across sessions - Unified config CLI —
configcommand with 4 terminal tuning keys (max-lines, history, pipe-buffer), all persisted in localStorage - Extended ai-config — New keys:
max-context-tokens,confirm-timeout,chat-lock-timeout,skill-debouncewith range validation - Safe-read run_command —
run_commandnow command-aware:ls,find,tree,catauto-approved; only mutating commands require confirmation - Whitelist expanded (50+ cmds) — find, grep, tree, head, tail, wc, sort, du, diff, which, hostname, and all BusyBox read-only utils now whitelisted
- Security-bypass fix —
run_commandAI tool now routes throughcheckAndRun()security layer instead of bypassing - list_files root fallback — relative paths retry from root if cwd-relative lookup fails
- Confirm timeout configurable —
ai-config confirm-timeout <seconds>accepts 0+ (0 = no confirm / auto-approve all, no upper cap). Dynamic label on confirm bar shows actual timeout. - Auto-sync Neural VFS —
write_file/mkdir/rm/mv/cpautomatically mark index dirty; auto-reindexes after 10s debounce.nvfs-aliascommand for concept aliases. Hybrid discovery fallback innvfs-resolve(live VFS scan when index empty). Staleness warning innvfs-statusif index >4h old. - 5 modules whitelisted — system-health, server, servers, server-check, monitor run directly
- OllamaModule consolidated — Removed duplicate
ollamamodelscode path (redirects tomodels), centralized endpoint viaollamaManager.endpoint - Neural VFS async indexing — Chunked processing with progress percentage, no UI freeze on large VFS. Improved
_summarize(section heading → paragraph → sentence → fallback) - Neural VFS display-limit config —
nvfs-configcommand with 4 keys (fuzzy-limit, tree-files, tree-concepts, resolve-files), persisted - Orchestrator event bus — In-memory pub/sub for instant A2A delivery (VFS polling remains as fallback). Improved
_deriveCapabilitieswith 14 keyword mappings - Orchestrator extended config — 4 new interval keys (a2a-poll-interval, heartbeat-check, idle-sweep-interval, dead-purge-timeout) + all config now persists across sessions
- Cache:
2026-06-06-v4.5.11— hard refresh required
- Tiered Indexing toggle —
nvfs-config deep-index on|offswitches between Fast (metadata-only, instant) and Deep (LLM-assisted, semantic) modes. Off by default.nvfs-index --deepornvfs-sync --deepforces deep mode per-run. - Configurable deep model —
nvfs-config deep-model <name>selects the LLM for deep indexing. Default:ministral-3:3b-cloudfor speed. Example:nvfs-config deep-model gemma4:31b-cloudfor deeper analysis. - Status bar indicator — Real-time 🧠 status in terminal bar: concept count + 🌊 wave for deep mode, 🟡 amber for pending auto-sync, 🧠 Deep Indexing progress percentage during LLM processing.
- nvfs-sync command —
nvfs-sync [--deep]for incremental background sync of dirty files. - Deep concept extraction — LLM generates 2-5 semantic concepts per file (configurable model via
nvfs-config deep-model, defaultministral-3:3b-cloud, 2000 chars, 3-file batches with UI yield). Fast filename-concepts stored immediately, LLM concepts augment in background queue. - nvfs-status mode display — Shows 🌊 Deep or ⚡ Fast mode.
- LLM self-healing — If Ollama disconnected, deep mode silently falls back to fast metadata-only.
- Cache:
2026-06-06-v4.5.12— hard refresh required
- VFS Size Diagnostics —
vfs-sizeshows total VFS size, top 5 largest files, and system dir sizes - VFS Clean —
vfs-clean/vfs clean— nuke snapshots, sessions, trash in one shot - Fractal checkpoint fix —
checkpoint()no longer deep-clones its own/_snapshots/, eliminating recursive bloat. Same forsession-save - Ghost commands wired —
checkpoint,checkpoint-list,checkpoint-del,rollbackhad help text but no handlers — now actually work - Autocomplete fix — Built-in commands (vfs-clean, vfs-size) now appear in dropdown
- Editor→_mods bridge —
edit path/to/module.jsnow mirrors to_mods/for test_module compatibility - Skill WebDAV Sync —
skill-webdav-syncpushes all skills to WebDAV as JSON files
- init(terminal) fix —
loadModuleFromCodeandloadModuleFromURLnow passthis.terminaltoinit(), fixing PredictorModule fatal error - Save & Test returns value —
saveCodeEditorchecksloadModuleFromCodereturn before printing success - StateSyncModule recovered — Extracted from backup, saved to
~/.hermes/scripts/ - PredictorModule hasSync — Feature detection for sync/recall tasks with tuned duration/turn prediction
- Cache:
2026-06-06-v4.5.11— hard refresh required
- v4.4 complete — 46 modules, 24 skills, full A2A lifecycle, sandboxed execution, memory graph, world model, health monitoring
- A2A Mailbox Transport —
a2a-send,a2a-list, 500ms polling with envelope routing (request/response/broadcast/heartbeat) - Autonomous sub-agent spawning — auto-role derivation, sleep/reanimate VFS serialization
- Sandboxed execution — WebWorker pool
sandbox-run,sandbox-killwith inline fallback for headless - A2A Protocol — Agent contract system:
contract-register,contract-list, schema validation in orchestrator - Self-Optimization Telemetry —
system-healthcommand showing tool latency, VFS stats, error rates - AI tool: nvfs_resolve — AI can search VFS by concept
- Skills consolidated — 9 → 4 unified; index rebuilt minified
- Docs sync — vision.html and whitepaper updated
- Cache:
2026-06-03-neuralvfs— hard refresh required
- mindmap svg — Inline SVG rendering with colored rects + bezier curves
- GUI Builder —
gui,gui-button,gui-input— SimpleGUIModule registered - mermaid.min.js — Downloaded for webx11_mindmap.html
- get_module_status fixed — Shows all 34 loaded modules (was only HTTP-loaded)
- view_module fixed — Uses modules-index.json to resolve class→file paths
- module-ollamamodels merged — Into module-ollama (13 commands total)
- concept:// URIs —
cat concept://skillresolves via Neural VFS - Module categorization —
modules-listshows [core], [ext], [infra] layer tags - 5 modules whitelisted — system-health, server, servers, server-check, monitor run directly
- WebDAV Browser — Modern file-tree UI with checkboxes, Select All, bulk actions (Delete, Move, Download), inline rename (double-click), context menu, breadcrumbs, keyboard shortcuts
- WebDAV commands —
webdav-browser,webdav-rm,webdav-mkdir,webdav-rename,webdav-move,webdav-backup - Skill Pack System — Auto-loads 12 skills on startup, seed/reload support, skill-pack-core.js manages in-memory index
- Agent Orchestration —
agent-list,agent-register,lease-list,orchestratefor multi-step delegation - Security Layer —
security-level 0-3with granular restrictions,cmd-allow/cmd-denyper-command access control - Debug Panel —
debugtoggle shows memory, events, errors, module health - Chat Cleanup — Removed
chat-setapi,chat-setmodel,chat-ask; singlechatcommand toggles overlay - Module count refactored: 18 core + 14 ext (was 25+17)
- Download fix — switched from
resp.text()toresp.blob()for binary-safe downloads; same fix for image preview (FileReader DataURL) - Cache:
v=40— hard refresh required
- BusyBox — 16 new utility commands:
which,env,date,cal,yes,seq,base64,printf,cut,uniq,hostname,whoami,basename,dirname,sleep,expand - Shell — Full pipe (
|), redirect (>,>>,<), chain (&&,||,;), variable ($VAR), and VFS script execution (script) - Pipe-aware commands (
grep,head,tail,sort,wc,cut,uniq,expand) auto-read from pipe via temp file injection export,unset,set— shell variable management- Multiple ASI and VFS API bug fixes (
fs.fsWrite→fs.writeFileacross 3 modules) - Test Suite — 32 automated regression tests. Run with
load-local modules/test/test-suite.jsthentest,test auto, ortest list - Cache v34 — hard refresh required
- Editor —
edit <path>opens inline VFS editor modal - Diff —
diff a bLCS-based comparison +diff --module - Aliases —
ll,h,clsdefaults + custom alias definition - File Finder —
find <query>recursive VFS search - Agent loop: capped at 8 turns (was 1),
edit_moduledestructive confirmation, model auto-validation ai-stopnow cancels chat + stream, not just tool calls- Unknown commands awaited, "Command not found" suppressed on AI route
loopResultscope fix — no more undefined error on AI fail- Preview iframe allows JS (
allow-scripts), cache bumpv=18 - Splash fallback + startup modal list all 12 ext modules
- AI Agent with full tool-calling loop (28 tools)
- Inline destructive confirmation bar with 120s countdown timer
- Skills system (8 CLI commands + UI modal)
- Voice input (🎤 button, SpeechRecognition, show/hide toggle)
- Sound notification (🔊 toggle, WebAudio ding)
- AI spinner in status bar
- Session system (save/load/recent/stats)
- WebDAV sync (8 commands)
- Web search (SearXNG + DDG + URL fetch/extract)
- Config manager (6 commands + UI)
- Startup modules selector (⚙ gear on splash)
- Code editor modal (module editing, save & test live)
- HTML preview via srcdoc (mobile)
- File/dir autocomplete, pipe support
- Smart context profiles, dynamic prompts with variables
- Server monitor, ChatStudio overlay
- Modular architecture: 23 JS modules, async loader
- Monolith refactored into core/ext modules
- Async module loader with splash screen
- Config manager modal
- Bootloader fix for disabled modules