usemob 0.0.0-nightly.20261030-896099c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 fdkevin0
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,60 @@
1
+ # Mob — local assistant
2
+
3
+ Mob is a personal AI assistant that runs on your own machine. One service keeps
4
+ conversations in SQLite and serves a desktop app, a browser UI, a terminal UI and
5
+ the `mob` CLI, and it can answer you in Telegram, WeChat and email. The model can
6
+ use tools (a container sandbox, your mailbox, Cloudflare, MCP servers), and
7
+ anything with an effect waits for your approval.
8
+
9
+ ## Install
10
+
11
+ ```bash
12
+ npm install -g usemob # or: bun add -g --trust usemob
13
+ ```
14
+
15
+ Nightly builds, archives, upgrading and building from source are in
16
+ [Install](docs/install.md).
17
+
18
+ ## Use
19
+
20
+ ```bash
21
+ mob tui # terminal UI; starts the service when needed
22
+ mob open # sign a browser in to the running service
23
+ mob open --web # or sign in https://usemob.app to it
24
+ mob start / status / stop # run the service in the background
25
+ mob serve --demo # foreground, with an offline demo model
26
+ ```
27
+
28
+ With no setup Mob answers with an offline demo model. Add a model provider
29
+ for real replies, such as OpenRouter for free models:
30
+
31
+ ```bash
32
+ mob provider add openrouter --key-stdin
33
+ ```
34
+
35
+ Then `/models` lists models and `/model NAME` switches the conversation. Type `/`
36
+ in the web UI or TUI to see and complete commands; `/help` lists them in
37
+ messaging apps.
38
+
39
+ In the TUI: Enter sends, Ctrl+J inserts a newline, F2 switches conversations,
40
+ F3 shows tool details, F4 reviews approvals, Ctrl+S stops the reply, PgUp/PgDn
41
+ scroll, Ctrl+Q exits. See the [terminal UI](apps/tui/README.md) for the rest.
42
+
43
+ ## Documentation
44
+
45
+ The documentation is at https://usemob.app/docs; the pages below are its
46
+ sources.
47
+
48
+ - [Model providers](docs/features/providers.md)
49
+ - [Configuration and running the service](docs/features/configuration.md)
50
+ - [Tools and approvals](docs/features/tools-and-approvals.md)
51
+ - [Sandbox](docs/features/sandbox.md)
52
+ - [Messaging channels](docs/features/channels.md): Telegram, WeChat iLink, email
53
+ - [Plugins: email and Cloudflare](docs/features/plugins.md)
54
+ - [MCP servers](docs/features/mcp.md)
55
+ - [All feature pages](docs/features/README.md) and [architecture](docs/architecture.md)
56
+
57
+ ## License
58
+
59
+ [MIT](LICENSE). AI Elements sources keep
60
+ [their Apache-2.0 license](packages/app/src/ai-elements/SOURCE.md).
package/bin/install.js ADDED
@@ -0,0 +1,25 @@
1
+ // The postinstall script of the usemob npm package. On Linux and macOS it puts
2
+ // this machine's binary in place of the bin/mob.js launcher, so `mob` runs
3
+ // natively, without Node.js or Bun. npm runs it; Bun runs it with
4
+ // `bun add -g --trust usemob`. When it does not run, or fails, the launcher
5
+ // stays and needs Node.js; a failure is reported but does not fail the install.
6
+ 'use strict';
7
+ const fs = require('node:fs');
8
+ const path = require('node:path');
9
+
10
+ if (process.platform !== 'win32') {
11
+ const pkg = `usemob-${process.platform}-${process.arch}`;
12
+ try {
13
+ const binary = require.resolve(`${pkg}/bin/mob`);
14
+ const launcher = path.join(__dirname, 'mob.js');
15
+ const temp = launcher + '.tmp';
16
+ fs.rmSync(temp, { force: true });
17
+ // A hard link saves a second copy of the binary; across file systems, copy it.
18
+ try { fs.linkSync(binary, temp); } catch { fs.copyFileSync(binary, temp); }
19
+ fs.chmodSync(temp, 0o755);
20
+ // The global bin link points at mob.js, so the binary takes its name.
21
+ fs.renameSync(temp, launcher);
22
+ } catch (error) {
23
+ console.warn(`usemob: kept the Node.js launcher, so mob needs Node.js (${pkg}: ${error.code ?? error.message})`);
24
+ }
25
+ }
package/bin/mob.js ADDED
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env node
2
+ // The `mob` command of the usemob npm package until scripts/npm/install.js
3
+ // replaces it with the binary, and on Windows. npm and bun install only the
4
+ // platform package that matches this machine (usemob-OS-ARCH); this runs its
5
+ // compiled binary, which needs neither Node.js nor Bun.
6
+ 'use strict';
7
+ const { spawn } = require('node:child_process');
8
+
9
+ const pkg = `usemob-${process.platform}-${process.arch}`;
10
+ let binary;
11
+ try {
12
+ binary = require.resolve(`${pkg}/bin/${process.platform === 'win32' ? 'mob.exe' : 'mob'}`);
13
+ } catch {
14
+ console.error(`mob: ${pkg} is not installed. Mob is published for linux-x64, linux-arm64, darwin-x64, darwin-arm64 and win32-x64;`);
15
+ console.error('reinstall without --no-optional, or download an archive from https://github.com/fdkevin0/mob/releases');
16
+ process.exit(1);
17
+ }
18
+
19
+ const child = spawn(binary, process.argv.slice(2), { stdio: 'inherit' });
20
+ // Ctrl+C already reaches the binary through the terminal; other signals are passed on.
21
+ process.on('SIGINT', () => {});
22
+ for (const signal of ['SIGTERM', 'SIGHUP']) process.on(signal, () => child.kill(signal));
23
+ child.on('error', error => {
24
+ console.error(`mob: ${error.message}`);
25
+ process.exit(1);
26
+ });
27
+ child.on('exit', (code, signal) => {
28
+ if (signal) {
29
+ process.removeAllListeners(signal);
30
+ process.kill(process.pid, signal);
31
+ } else process.exit(code ?? 1);
32
+ });
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "usemob",
3
+ "version": "0.0.0-nightly.20261030-896099c",
4
+ "description": "Local assistant with desktop, terminal and background service",
5
+ "license": "MIT",
6
+ "homepage": "https://usemob.app",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/fdkevin0/mob.git"
10
+ },
11
+ "bin": {
12
+ "mob": "bin/mob.js"
13
+ },
14
+ "scripts": {
15
+ "postinstall": "node bin/install.js"
16
+ },
17
+ "files": [
18
+ "bin"
19
+ ],
20
+ "optionalDependencies": {
21
+ "usemob-linux-x64": "0.0.0-nightly.20261030-896099c",
22
+ "usemob-linux-arm64": "0.0.0-nightly.20261030-896099c",
23
+ "usemob-darwin-x64": "0.0.0-nightly.20261030-896099c",
24
+ "usemob-darwin-arm64": "0.0.0-nightly.20261030-896099c",
25
+ "usemob-win32-x64": "0.0.0-nightly.20261030-896099c"
26
+ }
27
+ }