1667writing, terminal and browser
contents
forkinstall
  • runs on your computer
  • 127.0.0.1 only
  • no account
  • since 0.11.0

Write in your browser

Run 1667 web in a project folder. Your stories open in a browser tab on this computer, with the takes, the map, and the keys of the terminal app. 1667.ai hosts nothing: the page comes from the program you install.

~/book $1667 web

1667 web: serving ~/book at http://127.0.0.1:53124/#token=…

Press Ctrl+C to stop.

install 1667 Web UI guide →

The 1667 web UI in a browser. The Library lists three stories. The story page shows parts 10 to 12 of The Lantern-House; part 11 is selected and has five takes. The composer at the bottom asks what happens next.The 1667 web UI in a browser. The Library lists three stories. The story page shows parts 10 to 12 of The Lantern-House; part 11 is selected and has five takes. The composer at the bottom asks what happens next.
FIG. 1 · browser · story page, Typewriter palette

01 / Start

Install, then run one command

The web UI is part of 1667. There is nothing else to download and no account to make.

curl -fsSL https://1667.ai/install.sh | sh

Installs 1667 0.11.1. Supports macOS arm64/x64 and glibc 2.17+ Linux arm64/x64. Run 1667 upgrade for later managed releases.

verify the installer first

This optional path needs GitHub CLI. It verifies version 0.11.1 before it runs the local file.

d=$(mktemp -d) && (trap 'rm -rf "$d"' EXIT && cd "$d" && gh release download v0.11.1 --repo github.com/1667-ai/1667 --pattern install-stable.sh && gh attestation verify install-stable.sh --hostname github.com --repo 1667-ai/1667 --signer-workflow 1667-ai/1667/.github/workflows/release-npm.yml --source-ref refs/tags/v0.11.1 --source-digest 711b3dc41a366169a8791c369177e514162cc695 --deny-self-hosted-runners && sh install-stable.sh)$d=Join-Path ([IO.Path]::GetTempPath()) ([Guid]::NewGuid()); New-Item -ItemType Directory -Path $d | Out-Null; try { gh release download v0.11.1 --repo 1667-ai/1667 --pattern install-stable.ps1 --dir $d; if ($LASTEXITCODE -ne 0) { throw 'GitHub release download failed.' }; gh attestation verify (Join-Path $d 'install-stable.ps1') --hostname github.com --repo 1667-ai/1667 --signer-workflow 1667-ai/1667/.github/workflows/release-npm.yml --source-ref refs/tags/v0.11.1 --source-digest 711b3dc41a366169a8791c369177e514162cc695 --deny-self-hosted-runners; if ($LASTEXITCODE -ne 0) { throw 'GitHub attestation verification failed.' }; powershell -ExecutionPolicy Bypass -File (Join-Path $d 'install-stable.ps1'); if ($LASTEXITCODE -ne 0) { throw '1667 install failed.' } } finally { Remove-Item -LiteralPath $d -Recurse -Force }
  1. Install 1667

    Use one of the methods above. The web UI comes with the program.

  2. Open a project folder

    cd ~/book

    Run 1667 init in a new folder to make a project there.

  3. Start the web UI

    1667 web

    The command opens your browser at the address it prints. If no browser opens, open that address yourself.

  4. Stop it

    Press Ctrl+C in the terminal. The page closes and the project is free for the terminal app again.

Options

  • --data <path>Open this project root.
  • --globalOpen the machine-wide project.
  • --port <n>Use this port. The default is a free port.
  • --no-openDo not open the browser.

02 / Write

The terminal app's keys, in a page

The web UI uses the key table of the terminal app. Every take you ask for stays beside the others, and the map shows them all. Press ? in the page to see every key.

  • continueAsk the model for the next story part
  • directType what happens next, then send it
  • takesCompare the takes of a part
  • retakeA new take of the selected part
  • writeType a take yourself, with no model
  • editChange the prose and the prompt of a take
  • mapOpen the path, tree, and mass views
  • paletteFind and run any command

A few keys stay with the browser. The command palette opens with : only, because Ctrl+P prints. Alt+← and Alt+→ go back and forward, and the Back button moves between the Library, a story, and its map.

There is no quit key. Press Ctrl+C in the terminal that runs 1667 web.

  • Factsnotes sent with each request, with Fact States per story part
  • Fact checkfinds prose that contradicts a Fact
  • Asidea chat about the story that leaves the story unchanged
  • Tags and chaptersname a story line, end a chapter, add a summary
  • Searchthe text of this story, or of every story
  • Inspectorsthe next request, generation records, token probabilities
  • Context meterthe size of the next request against the context window
  • Settingsprovider, model, sampling, and Generation Profiles

03 / Map

Every take, on one map

Press m to open the map, and m again to change the view. Press a to show the sketches beside the story line. Press Enter on a take to select the story line through it.

  • pathRead the selected story line from start to finish, one row per part.
  • treeSee where the story branches. Press l to follow the line through a take.
  • massCompare story lines by size. Press s to change the sort order.
The map in tree view with sketches shown. Twelve story parts run down a vertical line. Parts 3, 5, 8, 10, and 11 branch to their other takes, which appear as quoted first lines.The map in tree view with sketches shown. Twelve story parts run down a vertical line. Parts 3, 5, 8, 10, and 11 branch to their other takes, which appear as quoted first lines.
FIG. 2 · browser · map, tree view with sketches

04 / Privacy

Only this computer can open it

Your stories stay in your project folder. The page and the program that serves it both run on your computer.

1667 web has no analytics, telemetry, crash reporter, or install ID, the same as the terminal app. Model requests go to the provider you choose in Settings.

Do not share the address with the token. Anyone who has it can read and change your stories.

  • address127.0.0.1 only. Other computers cannot reach it.
  • tokenIn the URL fragment, which the browser does not send to the server. The page removes it from the address bar.
  • each runA new token. Open the new address after a restart.
  • refusedA request with no token, a wrong Host header, or a foreign Origin header.
  • API keysStored on this computer. The page never shows a saved key.
  • accountNot required.

05 / Palettes

Four palettes, light or dark

Choose a palette and a mode in the Library. The web UI remembers both in this browser. Switch this page between light and dark to see the other mode.

  • The story page in the Ink palette, light mode.The story page in the Ink palette, dark mode.

    Ink

    cool neutral · indigo

  • The story page in the Typewriter palette, light mode.The story page in the Typewriter palette, dark mode.

    Typewriter

    grayscale · ribbon red · mono

  • The story page in the Grove palette, light mode.The story page in the Grove palette, dark mode.

    Grove

    botanical · deep green

  • The story page in the Nocturne palette, light mode.The story page in the Nocturne palette, dark mode.

    Nocturne

    blue-black · gilt

06 / One project

The same folder as the terminal app

The web UI and the terminal app open the same project folder. While 1667 web runs, it holds the project lock, so the terminal app cannot open that project. Press Ctrl+C to switch back.

Both keep one reading position for each story. The one you start second opens the story where the first one left it.

To export, choose "export markdown" in the command palette. The browser downloads the selected story line as a Markdown file.

Import: click Import or drop a file

  • .mda new story
  • .jsonla new story from a SillyTavern chat · SillyTavern guide
  • .story, .scenarioa new story from a NovelAI archive · NovelAI guide
  • character cardFacts in the open story, from the command palette

The web UI refuses a file above 20 MB.

07 / FAQ

Common questions

Can I write on 1667.ai?

No. 1667.ai has no editor and keeps no stories. Install 1667, then run 1667 web on your computer. The page you write in comes from that program.

Can I open it from my phone or another computer?

No. The web UI listens on 127.0.0.1 only. Only the computer that runs 1667 web can open it.

Do I still need the terminal?

Once per session. Run 1667 web in a terminal and leave it open while you write in the browser. Press Ctrl+C there to stop.

Can I use the terminal app at the same time?

Not on the same project. 1667 web holds the project lock while it runs. Stop it with Ctrl+C, then start the terminal app. Both open each story at the same reading position.

Do I need a model?

No. Press w to type a take yourself. Connect a provider in Settings when you want generated prose.

Can I sign in to a subscription plan in the page?

No. The web UI cannot sign in to a subscription plan. Run 1667 auth login in a terminal.

What does it cost?

1667 web is part of 1667, which is free. You pay your model provider directly, or nothing for a model on your own computer.

curl -fsSL https://1667.ai/install.sh | sh

Installs 1667 0.11.1. Supports macOS arm64/x64 and glibc 2.17+ Linux arm64/x64. Run 1667 upgrade for later managed releases.

verify the installer first

This optional path needs GitHub CLI. It verifies version 0.11.1 before it runs the local file.

d=$(mktemp -d) && (trap 'rm -rf "$d"' EXIT && cd "$d" && gh release download v0.11.1 --repo github.com/1667-ai/1667 --pattern install-stable.sh && gh attestation verify install-stable.sh --hostname github.com --repo 1667-ai/1667 --signer-workflow 1667-ai/1667/.github/workflows/release-npm.yml --source-ref refs/tags/v0.11.1 --source-digest 711b3dc41a366169a8791c369177e514162cc695 --deny-self-hosted-runners && sh install-stable.sh)$d=Join-Path ([IO.Path]::GetTempPath()) ([Guid]::NewGuid()); New-Item -ItemType Directory -Path $d | Out-Null; try { gh release download v0.11.1 --repo 1667-ai/1667 --pattern install-stable.ps1 --dir $d; if ($LASTEXITCODE -ne 0) { throw 'GitHub release download failed.' }; gh attestation verify (Join-Path $d 'install-stable.ps1') --hostname github.com --repo 1667-ai/1667 --signer-workflow 1667-ai/1667/.github/workflows/release-npm.yml --source-ref refs/tags/v0.11.1 --source-digest 711b3dc41a366169a8791c369177e514162cc695 --deny-self-hosted-runners; if ($LASTEXITCODE -ne 0) { throw 'GitHub attestation verification failed.' }; powershell -ExecutionPolicy Bypass -File (Join-Path $d 'install-stable.ps1'); if ($LASTEXITCODE -ne 0) { throw '1667 install failed.' } } finally { Remove-Item -LiteralPath $d -Recurse -Force }