aboutsummaryrefslogtreecommitdiff
path: root/help.html
diff options
context:
space:
mode:
Diffstat (limited to 'help.html')
-rw-r--r--help.html134
1 files changed, 130 insertions, 4 deletions
diff --git a/help.html b/help.html
index 8d30b4e..cc9c3b5 100644
--- a/help.html
+++ b/help.html
@@ -218,8 +218,8 @@ footer .tagline{color:var(--accent2);margin-top:10px;font-weight:500}
</div>
<div class="header-meta">
<span class="badge badge-v">v4.2</span>
- <span class="badge badge-new">24 core · 12 ext</span>
- <span style="color:var(--text2)">110+ commands</span>
+ <span class="badge badge-new">26 core · 15 ext</span>
+ <span style="color:var(--text2)">135+ commands</span>
</div>
</div>
</header>
@@ -238,6 +238,8 @@ footer .tagline{color:var(--accent2);margin-top:10px;font-weight:500}
<a href="#config" class="nav-link">Config</a>
<a href="#modules" class="nav-link">Modules</a>
<a href="#extras" class="nav-link">Extras</a>
+ <a href="#busybox" class="nav-link">BusyBox</a>
+ <a href="#shell" class="nav-link">Shell</a>
<a href="#sessions" class="nav-link">Sessions</a>
<a href="#storage" class="nav-link">Storage</a>
<a href="#security" class="nav-link">Security</a>
@@ -259,7 +261,7 @@ footer .tagline{color:var(--accent2);margin-top:10px;font-weight:500}
<h2>⛅ Overview</h2>
<p>WebX11 v4.2 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.</p>
<div class="feature-grid">
- <div class="feature-card"><h4>🧩 24 Core + 12 Ext</h4><p>Modules loaded at startup. Load new ones from any URL at runtime.</p></div>
+ <div class="feature-card"><h4>🧩 26 Core + 14 Ext</h4><p>Modules loaded at startup. Shell with pipes, redirects, vars, and scripts.</p></div>
<div class="feature-card"><h4>🤖 Agent with Tools</h4><p>15+ tools — file ops, web search, skills, modules. Destructive action confirmations with inline bar + countdown.</p></div>
<div class="feature-card"><h4>📚 Skills System</h4><p>Persistent procedural memory. Create, patch, search, export skills for repeatable workflows.</p></div>
<div class="feature-card"><h4>💾 VFS + Sessions</h4><p>Virtual filesystem persists in localStorage. Save/load/export sessions.</p></div>
@@ -628,7 +630,7 @@ ollamaconnect</pre>
<section id="modules">
<h2>🧩 Module System</h2>
<div class="callout callout-info">
- <span class="callout-title">24 Core + 12 Ext</span>
+ <span class="callout-title">26 Core + 14 Ext</span>
Modules loaded in dependency order at startup. Toggle ext modules with ⚙ gear on splash.
</div>
<h3>Commands</h3>
@@ -714,6 +716,106 @@ ollamaconnect</pre>
<p>Built-in: <code>ll</code> = <code>ls</code>, <code>h</code> = <code>help</code>, <code>cls</code> = <code>clear</code>. Define custom: <code>alias x=ls -la</code>. Remove: <code>unalias x</code>. Persists in localStorage.</p>
</section>
+ <!-- ── BusyBox ── -->
+ <section id="busybox">
+ <h2>🔧 BusyBox Utilities</h2>
+ <div class="callout callout-success">
+ <span class="callout-title">16 Unix Utility Commands</span>
+ Lightweight utility commands for everyday terminal work — identity, path, text, and system info tools. All work standalone and with shell pipes.
+ </div>
+ <div class="table-wrap"><table>
+ <tr><th>Command</th><th>Description</th><th>Example</th></tr>
+ <tr><td><code>which</code></td><td>Locate command in module registry + fuzzy suggestions</td><td><code>which ls</code></td></tr>
+ <tr><td><code>env</code></td><td>List local env vars (webx11_, ollama, user profile)</td><td><code>env</code></td></tr>
+ <tr><td><code>date</code></td><td>Current time (local, ISO, UTC, Unix timestamp)</td><td><code>date</code></td></tr>
+ <tr><td><code>cal</code></td><td>ASCII calendar for any month/year</td><td><code>cal 12 2026</code></td></tr>
+ <tr><td><code>yes</code></td><td>Output repeated string (capped at 50)</td><td><code>yes test</code></td></tr>
+ <tr><td><code>seq</code></td><td>Generate number sequence</td><td><code>seq 1 5</code></td></tr>
+ <tr><td><code>base64</code></td><td>Base64 encode/decode</td><td><code>base64 -d aGVsbG8=</code></td></tr>
+ <tr><td><code>printf</code></td><td>Formatted print (%s, %d, %f)</td><td><code>printf "hello %s" world</code></td></tr>
+ <tr><td><code>cut</code></td><td>Extract column from file</td><td><code>cut -f2 -d, data.csv</code></td></tr>
+ <tr><td><code>uniq</code></td><td>Filter adjacent duplicates</td><td><code>uniq lines.txt</code></td></tr>
+ <tr><td><code>hostname</code></td><td>Show host/platform info</td><td><code>hostname</code></td></tr>
+ <tr><td><code>whoami</code></td><td>Show current user</td><td><code>whoami</code></td></tr>
+ <tr><td><code>basename</code></td><td>Strip directory from path</td><td><code>basename /a/b/c.txt</code></td></tr>
+ <tr><td><code>dirname</code></td><td>Strip filename from path</td><td><code>dirname /a/b/c.txt</code></td></tr>
+ <tr><td><code>sleep</code></td><td>Countdown delay (1-30s)</td><td><code>sleep 3</code></td></tr>
+ <tr><td><code>expand</code></td><td>Convert tabs to spaces</td><td><code>expand code.txt</code></td></tr>
+ </table></div>
+ <p>All file-reading commands (<code>cut</code>, <code>uniq</code>, <code>expand</code>) work with shell pipes: <code>cat data.csv | cut -f2 -d, | uniq</code>.</p>
+ </section>
+
+ <!-- ── Shell ── -->
+ <section id="shell">
+ <h2>🐚 Shell</h2>
+ <div class="callout callout-success">
+ <span class="callout-title">Pipes · Redirects · Variables · Scripts</span>
+ The shell module sits on top of every command — pipes, redirections, variable substitution, command chaining, and VFS script execution work automatically without any prefix.
+ </div>
+
+ <h3>Pipes <code>|</code></h3>
+ <p>Chain commands by piping stdout to the next command's stdin. Pipe-aware commands (<code>grep</code>, <code>head</code>, <code>tail</code>, <code>sort</code>, <code>wc</code>, <code>cut</code>, <code>uniq</code>, <code>expand</code>) auto-read from pipe when no file argument is given.</p>
+ <pre><span class="cmt"># Filter file listing</span>
+ls | grep .md
+
+<span class="cmt"># Count lines matching pattern</span>
+cat notes.txt | grep error | wc
+
+<span class="cmt"># Pipeline: filter → sort → head</span>
+cat data.csv | grep 2026 | sort | head -5</pre>
+
+ <h3>Redirects <code>&gt;</code> <code>&gt;&gt;</code> <code>&lt;</code></h3>
+ <pre><span class="cmt"># Write output to file</span>
+cal &gt; /tmp/calendar.txt
+
+<span class="cmt"># Append to file</span>
+echo "new line" &gt;&gt; log.txt
+
+<span class="cmt"># Read file as stdin</span>
+grep error &lt; log.txt</pre>
+
+ <h3>Command Chaining</h3>
+ <pre><span class="cmt"># AND: next runs only if previous succeeds</span>
+touch test.txt &amp;&amp; echo "created"
+
+<span class="cmt"># OR: next runs only if previous fails</span>
+rm nonexistent || echo "failed"
+
+<span class="cmt"># Sequence: runs in order regardless</span>
+cd /skills; ls</pre>
+
+ <h3>Variables</h3>
+ <pre><span class="cmt"># Set a variable</span>
+export GREET=hello
+
+<span class="cmt"># Reference in any command</span>
+echo $GREET
+
+<span class="cmt"># List all vars</span>
+set
+
+<span class="cmt"># Remove a var</span>
+unset GREET</pre>
+
+ <h3>Scripts</h3>
+ <p>VFS files with <code>.sh</code> extension can be executed line by line. Variables persist across lines.</p>
+ <pre><span class="cmt"># Create a script in VFS</span>
+echo 'export NAME=WebX11' &gt; greet.sh
+echo 'echo "Hello, $NAME!"' &gt;&gt; greet.sh
+
+<span class="cmt"># Run it</span>
+script greet.sh</pre>
+
+ <h3>Shell Commands</h3>
+ <div class="table-wrap"><table>
+ <tr><th>Command</th><th>Description</th></tr>
+ <tr><td><code>export &lt;var&gt;=&lt;val&gt;</code></td><td>Set a shell variable</td></tr>
+ <tr><td><code>unset &lt;var&gt;</code></td><td>Remove a shell variable</td></tr>
+ <tr><td><code>set</code></td><td>List all shell variables</td></tr>
+ <tr><td><code>script &lt;path.sh&gt;</code></td><td>Run a VFS script file</td></tr>
+ </table></div>
+ </section>
+
<!-- ── Sessions ── -->
<section id="sessions">
<h2>💬 Sessions</h2>
@@ -814,6 +916,17 @@ listmods</pre>
<div class="quick-ref-item"><span class="cmd">alias</span><span class="desc">List aliases</span></div>
<div class="quick-ref-item"><span class="cmd">preview</span><span class="desc">HTML preview</span></div>
<div class="quick-ref-item"><span class="cmd">upload</span><span class="desc">Upload file</span></div>
+ <div class="quick-ref-item"><span class="cmd">&#124; pipe</span><span class="desc">Chain commands</span></div>
+ <div class="quick-ref-item"><span class="cmd">&gt; file</span><span class="desc">Redirect output</span></div>
+ <div class="quick-ref-item"><span class="cmd">which</span><span class="desc">Locate command</span></div>
+ <div class="quick-ref-item"><span class="cmd">env</span><span class="desc">Show env vars</span></div>
+ <div class="quick-ref-item"><span class="cmd">script</span><span class="desc">Run .sh file</span></div>
+ <div class="quick-ref-item"><span class="cmd">date</span><span class="desc">Show time</span></div>
+ <div class="quick-ref-item"><span class="cmd">cal</span><span class="desc">Show calendar</span></div>
+ <div class="quick-ref-item"><span class="cmd">base64</span><span class="desc">Encode/decode</span></div>
+ <div class="quick-ref-item"><span class="cmd">seq</span><span class="desc">Number sequence</span></div>
+ <div class="quick-ref-item"><span class="cmd">whoami</span><span class="desc">Show user</span></div>
+ <div class="quick-ref-item"><span class="cmd">basename</span><span class="desc">Strip dir path</span></div>
</div>
</div>
</section>
@@ -823,6 +936,19 @@ listmods</pre>
<h2>📋 Changelog</h2>
<div class="version-item">
+ <div class="v-header"><span class="v-num">v4.2.1 — May 2026</span><span class="v-date">2026-05-27</span></div>
+ <ul>
+ <li><strong>BusyBox</strong> — 16 new utility commands: <code>which</code>, <code>env</code>, <code>date</code>, <code>cal</code>, <code>yes</code>, <code>seq</code>, <code>base64</code>, <code>printf</code>, <code>cut</code>, <code>uniq</code>, <code>hostname</code>, <code>whoami</code>, <code>basename</code>, <code>dirname</code>, <code>sleep</code>, <code>expand</code></li>
+ <li><strong>Shell</strong> — Full pipe (<code>|</code>), redirect (<code>&gt;</code>, <code>&gt;&gt;</code>, <code>&lt;</code>), chain (<code>&amp;&amp;</code>, <code>||</code>, <code>;</code>), variable (<code>$VAR</code>), and VFS script execution (<code>script</code>)</li>
+ <li>Pipe-aware commands (<code>grep</code>, <code>head</code>, <code>tail</code>, <code>sort</code>, <code>wc</code>, <code>cut</code>, <code>uniq</code>, <code>expand</code>) auto-read from pipe via temp file injection</li>
+ <li><code>export</code>, <code>unset</code>, <code>set</code> — shell variable management</li>
+ <li>Multiple ASI and VFS API bug fixes (<code>fs.fsWrite</code> → <code>fs.writeFile</code> across 3 modules)</li>
+ <li><strong>Test Suite</strong> — 32 automated regression tests. Run with <code>load-local modules/test/test-suite.js</code> then <code>test</code>, <code>test auto</code>, or <code>test list</code></li>
+ <li>Cache v34 — hard refresh required</li>
+ </ul>
+ </div>
+
+ <div class="version-item">
<div class="v-header"><span class="v-num">v4.2 — May 2026</span><span class="v-date">2026-05-25</span></div>
<ul>
<li><strong>Editor</strong> — <code>edit &lt;path&gt;</code> opens inline VFS editor modal</li>