Skip to content

banner in the README header - #14

Merged
salatmaster merged 1 commit into
mainfrom
docs/readme-banner
Aug 9, 2026
Merged

banner in the README header#14
salatmaster merged 1 commit into
mainfrom
docs/readme-banner

Conversation

@salatmaster

Copy link
Copy Markdown
Owner

Adds the header image.

Recompressed from 1941 KB to 340 KB by quantising to 256 colours. That measured closer to the source than either alternative and shows no banding on the dark gradients, which was the thing to watch for:

size RMSE vs source
original PNG 1941 KB -
PNG, 256 colours 340 KB 0.0083
JPEG q88 206 KB 0.0131
WebP q86 111 KB 0.0121

PNG rather than the smaller WebP on purpose: this README is about to be rendered by several third-party directories as well as by GitHub and npm, and WebP support across those is not worth finding out the hard way for 229 KB.

The URL is absolute rather than repository-relative, because npm and those directories render the README outside any repository context, where a relative path resolves to nothing. It points at main, so the image 404s in this pull request and starts working when this merges.

files in package.json is unchanged, so the image never enters the npm tarball. The published README just links to it.

One thing for the author rather than for this PR: the image lists Claude, Cursor and Cline, but not Codex, and a Codex plugin ships in this repo.

Recompressed from the 1941 KB original to 340 KB by quantising to 256 colours,
which measures closer to the source than either JPEG or WebP did (RMSE 0.0083
against 0.0131 and 0.0121) and shows no banding on the dark gradients, where
banding was the thing to watch for.

PNG rather than the 111 KB WebP on purpose. The README is about to be rendered
by several third-party directories as well as GitHub and npm, and WebP support
across those is not something worth finding out the hard way for 229 KB.

The URL is absolute rather than a repository-relative path, because npm and
those directories render the README outside any repository context and a
relative path resolves to nothing there. It points at main, so it will 404 in
this pull request and start working when this merges.

`files` in package.json stays as it is, so the image never enters the npm
tarball: the published README just links to it.
@salatmaster

Copy link
Copy Markdown
Owner Author

Banner replaced with the new artwork. 2301 KB down to 409 KB, same 256-colour quantisation, checked for banding on the glow around the router where it would show first.

This image quantises less favourably than the previous one. All three candidates land within a hair of each other:

size RMSE vs source
PNG, 256 colours 409 KB 0.0123
JPEG q88 187 KB 0.0130
WebP q86 95 KB 0.0123

So PNG no longer wins on fidelity, only on being a format every third-party README renderer handles without question. Still worth the 222 KB over JPEG while this README is being submitted to directories that render it themselves.

The image also fixes the Codex omission I flagged.

One thing to settle before merging

The new artwork says, under Safe by Default:

Read-only by default. You're in control.

That is not what the server does:

// src/config/load.ts:56
readOnly: argv.includes('--read-only'),

The write tools are registered unless --read-only is passed. README and SECURITY.md both describe read-only as something you opt into, and the safety story is a different one: nothing is saved to flash until save_config is called, every write is read back and verified, and a backup is taken before the first change of a session.

A safety claim on the most prominent asset in the repo, contradicting the code, is worth fixing before this lands. Two options:

  • change the image line to something true, for example "Nothing is saved unless you ask" or "Every change is verified", both of which are accurate and arguably stronger
  • or make read-only the actual default, which is a real behaviour change and a separate discussion

I left the phrase out of the alt text rather than repeat it, since alt text is the part of an image a search engine can read.

@salatmaster
salatmaster merged commit 35b1a6a into main Aug 9, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant