Skip to content

Releases: oernster/PlainSight

Plain Sight v2.0.0

Choose a tag to compare

@oernster oernster released this 06 Sep 02:39

Release notes

It reads documents now, not skills

The application was Skills Viewer and read a folder of Claude skills. It has been
rebranded PlainSight and now reads a folder of documents; however, you can
view individual files as well; e.g. txt, pdf, docx or md.
The Claude skills folder is still where the chooser opens, because it is where
this began and is still what most people point it at; it is an offer rather than a limit.

Everything followed from that. The package, the settings directory, the
uninstall entry, the flatpak identifier and the artwork were all renamed. The
vocabulary changed with it: a skill is a document, a catalogue is a library.

Five kinds of file

Markdown and plain text were the two it read. It now reads five:

  • Markdown and plain text, as before.
  • HTML, shown as the page it already is. Both .html and .htm.
  • Word, turned into HTML as it is read, so headings, lists, tables and
    emphasis arrive looking like everything else here.
  • PDF, read back into the document its page was laid out to be, with its
    pages marked.

A PDF holds no headings, no paragraphs and no lists; it holds glyphs, each with
a place, a size and a face. Ask it for the words alone and a CV arrives as a
wall of monospace with every heading, every bold phrase and every bullet gone.
So the sizes and the faces are read the way your eye reads them: a line set
larger than the body is a heading, a line in bold is emphasised, a line opening
with a bullet is an item; lines of body text running on are one paragraph.

PDF is still worth being plain about. That is a reading of the page rather than
anything the file says, because the file does not say: no fonts, no rules and
no pictures come across. A form, a payslip or an invoice says much of what it
says by where it puts things, so reading one back as prose turns its grid into
reading order. That is the right way round for documents people read; the grid
is what a PDF viewer is for.

Where a PDF is a scan, a picture of a page rather than the words on it, no text
can be taken at all and it says so instead of showing you an empty page. One
that is password protected says that instead, on the row in the tree before
you open it.

A guide, first on the Help menu

It names every picture in the two trays, each entry carrying the real icon the
tray draws rather than a description of it, so a control you have just met can
be identified rather than guessed at. Then it says the one thing no screen can
state while it is happening: what each kind of document becomes on the way to
the reading pane.

Anything a control says for itself is left to the control, since every button
already carries a tooltip. A help screen nobody finishes explains nothing.

It runs nothing and fetches nothing

Two things worth knowing now that it opens files other people send you.

Scripts inside a document are dropped rather than run, so a document cannot act
on your machine. Anything needing a script runtime is inert.

Nothing is fetched on a document's behalf. A picture stored beside the document
is shown; one held at a web address is not fetched and not shown, because the
reading surface has no way to reach the network at all. The application still
makes exactly one request of its own: the update check, nothing else.

It opens a folder without reading it

A folder used to be listed by reading every file in it. Now a listing opens each
file and reads what it says about itself, while the text is fetched for the one
document you pick.

That was invisible while everything was Markdown. It is not invisible with PDFs:
listing forty of twelve pages each takes 7ms where reading them all takes
515ms; the folder is re-read every time the window comes back to the front.

Smaller things

  • Nothing is read until you choose a folder. There is no default root and no
    first-run scan, so a fresh install has looked at nothing on the machine.
  • Nothing is selected until you select it. The pane opens empty and says so
    rather than choosing a document for you.
  • The left pane is the tree your folders actually are, to whatever depth
    they go, with a count on each folder and one arrow per folder rather than two.
  • Open a single document from a new button beside the folder one. It reads
    that one file and lists no directory around it, so whatever sits beside it on
    disk stays unread. It stays open, too: the folder is read again every time the
    window comes forward, while closing the chooser is what brings it forward, so
    the file used to be replaced by the chosen folder in the same moment it opened.
    The file itself is what gets re-read now, so it is as current as a folder is.
  • Pointing at a folder that is not a Claude skills folder no longer walks a
    sibling directory beside it. Exactly one directory is read: the one you chose.
  • The Linux build works again. Reading Word documents brought in lxml,
    which publishes no wheel for the one platform tag the flatpak script asked
    for, so fetching the wheels failed before the build started. Three tags are
    asked for now. The interface licence was never copied into the bundle either,
    so that button showed the combined licence text instead.
  • The macOS image ships the licence files, which it never did; the Windows
    build always has. Both take them from the same list now.

Skills Viewer v1.0.0

Choose a tag to compare

@oernster oernster released this 01 Sep 06:17

Release notes

The first release of Skills Viewer, which exists to make your skills visible.
They sit in directories you rarely open and Claude reads them without ever
showing them to you, so a set you built up over months is one you have never
actually seen. This finds every one of them on your machine, puts them in a
single list and renders the one you pick. Nothing is changed by looking:
editing is handed to an editor you choose.

Reading your skills

Skills Viewer looks in the usual place for your operating system and lists what
it finds there. A skill is a directory holding a SKILL.md; a loose SKILL.md
at the top of the tree counts as one too. Directories with no skill document in
them, along with hidden and cache directories, are passed over rather than
listed as empty entries.

The list sits on the left and the skill you pick is rendered on the right, with
the fields it declares and the names of any files that travel with it. Browse to
a different folder whenever you want; the choice is remembered.

Skills you wrote and skills that arrived with a plugin are listed separately,
under a heading each with an arrow that opens and closes the group. Enter or
Space works the arrow from the keyboard; a group you close stays closed when
the library is read again. Where everything came from one place there is
nothing to separate, so the headings do not appear at all.

The plugins are read from the tree beside your skills folder, at whatever depth
they sit; each row says which plugin it came with. That is how three skills
all called the same thing stay tellable apart.

The grouping is by where a skill was read from rather than by who wrote it,
because nothing on disk records authorship. One consequence is worth knowing: a
skill somebody else wrote that sits in your own skills folder is listed among
yours. Skills a session supplies without a file on disk are not there at all,
since there is nothing to find.

Long text is set to be read rather than merely displayed. Lines are held to a
readable length, so widening the window gives you margins instead of lines your
eye loses its place on. There is real space between paragraphs and around
headings. A licence, which arrives already wrapped, is left exactly as it came.

A passage too long to take in at once is given somewhere for the eye to rest:
it is shown in groups of whole sentences with a gap between them. Where a
passage is really an inventory, a run of entries with barely a full stop in it,
the gaps fall at the divisions its author already wrote instead.

Nothing is added, removed or reordered to do that. The break goes between two
sentences that were already next to each other, exactly as a line break goes
between two words that were already next to each other. Your files are never touched,
nor even opened for writing.

A field long enough to be a document in its own right is not left sitting above
the skill. Anything past a few lines is lifted out of the heading and given its
own section after the text, so the skill you opened is the first thing you meet
rather than the last.

A skill whose document cannot be read is still listed, with the reason shown in
place of the text. You neither caused that nor can fix it from here, so it is
reported rather than hidden or raised as a dialog.

The library is re-read whenever the window is activated, so leaving to edit a
skill and coming back shows the current text. There is no watcher and no polling.

Light and dark

A toggle sits beside the help button and wears the appearance it would move to,
so the sun shows while you are in the dark. The choice is remembered between
runs; each appearance has its own ring and warning colours rather than sharing
one pair that only reads well against a single background. The setup program
carries the same toggle and the same two marks.

Reading without a mouse

The reading pane reads itself down the page slowly, holds at the end, rewinds
and repeats. Touch the scrollbar, the wheel or the keys and it hands control
straight back, then picks up from wherever you left it rather than starting
again. The same applies in the About and licence dialogs.

Every control is reachable from the keyboard through one explicit ring: Tab and
Right step forward, Shift+Tab and Left step back; both wrap. The skill list
is a single stop whose rows are walked with Up and Down. A control that cannot
do anything is skipped rather than sitting in the ring as a dead stop.

Home and End reach the top and the foot of whatever you are reading and so do
Ctrl+Home and Ctrl+End, in the reading pane and in both dialogs alike. The jump
holds where it lands rather than being carried straight back down. Clicking the
text focuses it, so those keys work on the thing you are actually looking at.

A green outline marks a control you have reached, never a region of text. The
skill list and the reading pane both leave it to what is inside them: the row
you are on and the words you are reading. Clicking a skill to read it used to
draw a rectangle round the whole page, which said nothing you could act on.

Your place in a skill is kept. The library is re-read whenever the window comes
forward; that no longer sends the page back to the top. A skill you edited
on disk is redrawn, one you did not is left exactly where you were.

Editing

On Windows an editor is already chosen for you: Notepad++ where you have it,
otherwise the Notepad every machine ships with. Pick a different one and Skills
Viewer remembers that instead. The view in editor button
stays disabled until there is genuinely something to do: a skill selected, an
editor chosen and that editor still where you left it. Skills Viewer is not a
text editor and never writes to a skill itself.

Text you can actually read

The top tray now carries a text size control, to the right of the view in
editor button behind a hairline that keeps the editor controls together. It
steps through three sizes: medium, large, then extra large, wrapping back to
medium so the button always does something. Like the light and dark toggle
beside it, it wears the size it would move to rather than the one you are in,
so the picture answers what happens if you press it.

The size reaches everything, the trays, the tree and the skill you are reading,
because it lives in the one stylesheet the whole application is painted from.
It is remembered between runs.

Your place is kept

Switching between light and dark no longer throws you back to the top of a
skill you were halfway down; nor does changing the text size. The page is
genuinely redrawn either way, since a document keeps the colours and the size
it was drawn under; you are put back on the words you were reading.

The place is the words rather than the pixel, which is what makes it survive a
change of size: at a larger size the lines break elsewhere, so the same point
down the page would be different text.

Keeping up to date

The help button in the top tray now drops a short menu: About Skills Viewer,
then Check for Updates. The check is also made quietly a few seconds after the
window opens and once a day after that. It speaks only when there is a newer
release to tell you about; a check that finds nothing passes without a word, as
does one that cannot reach GitHub at all. Ask for one from the menu and it answers
either way, so you are never left wondering whether it ran.

When there is something newer, you are offered three things: the file for the
machine you are on, the choice to skip that release for good, then Later. Download hands the
address to your browser; nothing is fetched by Skills Viewer itself. Skip
remembers that one release only, so the next one still reaches you.

What it does not do

It makes one network request of its own and no other: it asks GitHub whether a
newer release has been published, a few seconds after opening, once a day while
it stays open and whenever you ask from the Help menu. Nothing about you goes
with it. Everything else it hands to your desktop as an address for your browser
to fetch: the donate button, a link you click inside a skill you are reading,
then the Download button on an update prompt.

Skills Viewer is free and stays free: no paid tier, no licence key and no
feature held back behind a donation.

It is designed for Claude AI by Anthropic and for no other AI. It is not
affiliated with Anthropic and is not endorsed by them.

Colour you can actually read

Every colour pairing that carries text is measured against the readability
ratio rather than judged by eye, in the application and in the setup program
alike; a test holds each of them there.

Three pairings in the application were under the bar and every one looked
deliberate: the row you have selected, every heading inside a skill and a link
in the light theme. Dark and light now name their own selection fill, because
one accent cannot do both jobs: a heading wants the lighter violet while white
text on a selected row wants the darker.

The setup program had two, the go-ahead button and the one that removes things.
The go-ahead now reads in blue on the same purple it always had.

Installing

Windows gets a setup program that installs into your own account, so Windows
never asks for an administrator; it removes cleanly from the Apps list. Starting
the application from the end of setup brings it to the front rather than leaving
it behind whatever else was open. Linux and macOS builds are written and ship as
a flatpak and a signed disk image.