Tools

Everything here is meant to leave with you. Run a tool in the page, copy a prompt, or load an adapter onto the model already running on your machine.

Runs in your browser

Convert

Convert an image between PNG, JPEG, WebP and AVIF. The file never leaves the page — it is a canvas here, and Pillow in Python.

  • format png, jpeg, webp or avif
  • quality 1-100 for the lossy formats
  • three doors web page, assistant, or thl tool convert
Open Convert
Forty-odd conversions

Converters

The everyday conversions, all in one tab: tabular data, encodings, naming conventions, units, number bases, colour spaces, timestamps and image scaling.

  • data CSV, TSV, JSON, JSONL, Markdown, HTML tables
  • quantities nine unit categories, bases 2-36, colour, time
  • says no video, audio and PDF need a server — so they are absent
Open Converters
Pipeline stage 1

Extract

Documents to Markdown with the structure still attached. Headings stay headings and pages stay marked, because that is what the next stage splits on.

  • unaided text, markdown, html and csv, right here
  • with the package pdf, word, slides, sheets, epub
  • never invented no outline means no headings
Open Extract
Pipeline stage 2

Chunk

Split a document along its own headings rather than every 512th character. Size is the constraint, not the organising principle.

  • citable every chunk knows its heading and page
  • jsonl one record per line, greppable and streamable
  • in the tab pure logic, nothing to install
Open Chunk
Beside the pipeline

Tokenize

How big is this, and what will it cost to embed? A measuring instrument — not a stage, because embedding models tokenize internally with their own vocabulary.

  • distribution median, 95th, and the long tail
  • overflow which pieces would be truncated silently
  • three counters exact, OpenAI, or no download at all
Open Tokenize
Needs the package

Embed

Chunks to vectors on your own machine. BGE-M3 at 1024 dimensions, or MiniLM at 384 when speed matters more than reach.

  • normalised cosine and dot product agree
  • one file a single .npy, not one per chunk
  • python only the model is too large for a tab
Open Embed
Needs the package

Index

A portable vector database you own, as Chroma or plain numpy, carrying everything needed to reopen it later.

  • self-describing records the model and its dimensions
  • query snippet written alongside, usable immediately
  • no pickle which is why FAISS is not offered
Open Index
Copy and run

Prompts

A prompt library for real use cases. Copy one and paste it into whatever model you already run.

  • filtered by the job you are doing
  • one click copy straight to clipboard
  • model agnostic works with anything local
Browse the prompts
In training

LoRA Adapters

Small fine-tuned adapters that stack onto a base model already installed on your machine.

  • stackable sits on a model you already have
  • local no hosted inference anywhere
  • status in training, none downloadable yet
See the adapters
On the bench

Gen AI

The generative bench. Two tools at two different stages, with the difference written on each rather than left to be discovered.

  • video → image finished; frames pulled in the tab
  • image → HTML partial; measurements yes, layout no
  • why partial layout inference needs a model we do not ship yet
Open the bench
In training

Small Models

Nine small language models, each tuned for one posture: your documents, your tools, your data, or you.

  • document-first answers out of your files, or not at all
  • tools-first emits a validated call, not prose
  • personal-first fits a laptop with no GPU
See the models