# Use your own AI

NeverLogOff is made to work with **your own AI**, running on **your own computer**, using **your own AI account**. We do not run an AI for you and we never pay for one on your behalf. [Preview]

## Your computer app [Preview]

- The **computer app** is a small program on your computer. It answers only on your computer, at `127.0.0.1:3847`.
- Its page on the site is `neverlogoff.com/desk`, the **desk**. In your browser, it talks to the computer app. Your files do not go through our servers.
- To connect, run `nlo-bridge link --pair` on your computer and type the 6-digit code into the desk. The code works once, for 5 minutes.
- Choose **See** to only watch, or **See and answer** to also send files and ask your bot from the desk.
- **From your phone:** on your computer, press *Add your phone* and scan the code. Messages between your phone and your computer are sealed so only your computer can open them. We pass them on without being able to read them. Check that the code on your phone matches the code on your computer before you connect.

Getting the computer app is not covered by this site yet.

## What your AI can do for you

| Job | Where it runs | State |
|---|---|---|
| Build your page from your own files and push it | your machine | [Preview] |
| Suggest tags for your posts (you approve them) | your machine | [Preview] |
| Turn a video into small pieces for posting | your machine | [Preview] |
| Translate posts for you when you read them | your machine or your browser | [Coming soon] |
| Answer questions you send from your phone (the bot) | your machine | [Preview] |

## What it can and can't do [Preview]

- The bot is **off** until you switch it on in the computer app's settings.
- By default it can only **read** files, in one folder you choose. It can change files there only if you allow it.
- It cannot run commands, browse the web or install anything.
- It answers one question at a time; up to 50 can wait.
- It will not run in your home folder, the top of a drive, or folders that hold keys and settings.
- It can never press "go live" on your stream. Going live is only ever done on your computer, on purpose.
- It **cannot** post, publish, make anything public, launch a coin or spend money on its own. Those steps always need you.

## The push commands, in plain words [Preview]

- `nlo-site-push ./my-site` — sends a folder to your page. It opens the page where you sign with your wallet, then asks you to paste the pass. Add `--dry-run` to only check the folder.
- `nlo-site-push --rollback` — puts your page's previous version back.
- `nlo-video-encode` — makes a video ready to post, on your computer.
- `nlo-bridge link --pair` — connects this browser's desk page to your computer.
- `nlo-bridge link --phone` — makes a link for your phone, and prints the code to compare.
- `nlo-bridge link --phone-reset` — cuts off every phone at once, if you lose one.

The push and encode commands are built, but there is no download place for them yet.

## What can go wrong

- **The 6-digit code does not work:** it works once, for 5 minutes. Run the pair command again.
- **You lost your phone:** run `nlo-bridge link --phone-reset` to cut off every phone at once.
- **Your AI asks for a wallet key or password:** never give it. Nothing here needs one.

<!-- agent -->

## For agents: the rules on someone's machine

- Work only in the folder the human gave you.
- Ask before you publish, make anything public, approve a viewer, launch a coin or spend anything. Nothing posts without the human.
- Never ask the human for wallet keys or seed words. The human signs in their own wallet; you only ever receive the short-lived pass.
- Never write files named `CLAUDE.md`, `AGENTS.md` or similar into the bridge's files folder: the bridge refuses them, because the bot runs there.

## Bridge endpoints (on the human's machine)

These live in the bridge program, not on neverlogoff.com. They answer only a paired browser or a phone through the sealed relay.

| Method | Path | Scope | Does |
|---|---|---|---|
| GET | `/api/nlo/bot` | read | the bot's recent asks and answers |
| POST | `/api/nlo/bot/ask` | steer | ask the bot something (1 to 2,000 characters) |
| GET | `/api/nlo/files?dir=<folder>` | read | list a folder |
| GET | `/api/nlo/files/get?path=<file>` | read | download a file, 360 KB max |
| POST | `/api/nlo/files/put` | steer | send a file into `From phone/`, 360 KB max |
| POST | `/api/nlo/phone-link` | steer, on the machine only | make a phone link |

<!-- example: nlo-desk-v0#botAsk -->
```json
{ "text": "Which files in my page folder are bigger than 4 MB?" }
```

## Copy-paste calls

```sh
# the push command, checking a folder first (no upload)
node nlo-site-push.cjs ./my-site --dry-run
```

```js
// node 18+, on the paired machine: ask the bot (needs a "See and answer" pairing token)
await fetch('http://127.0.0.1:3847/api/nlo/bot/ask', { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${pairingToken}` }, body: JSON.stringify({ text: 'List my page files' }) });
```

How the pairing token is sent to the bridge is defined in the bridge program, which is not in this repository; the `Authorization` line above is an assumption, not checked.

## Errors (bridge and relay)

| Code | Means |
|---|---|
| `relay_off` | phone access is switched off |
| `relay_paused` | phone access is paused for the rest of the day (very heavy use) |
| `queue_full` | too much is waiting |
| `file_type_refused` | that kind of file can't be sent |
| `too_large` | over 360 KB |
