Skip to content

shapeshift

One text box that morphs into the right UI card as you type, with Jev answering 14 typed questions per input and code doing the maths.

DemoprototypeMIT

Overview

Shapeshift is a single input that becomes what you mean: typing 'dinner with priya friday 8pm on zoom' produces an event card, 'buy milk, eggs, bread and coffee' a checklist, and 'split 2400 between 3' a bill split. Nineteen card types include reminders, timers, habits, colours, expenses, conversions, calculations, trips, polls, contacts, bookmarks, countdowns, time zones, random picks, goals and notes.

Intent is classified by Jev: one call answers 14 typed questions in parallel, the card type plus signals such as whether it is a video call or urgent. Dates, amounts, units and maths are deterministic code: 'Jev decides, code computes'. Because raw model output flickers as you type, a small state machine turns confidence into calm UI: a card changes only when a challenger wins twice in a row or is very sure, and signal badges use hysteresis. It runs offline by default with a keyword classifier of the same output shape, the key stays server-side, and it falls back offline if the API is unreachable.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich card type does this input call for?event · reminder · checklist · timer · split · convert · note
Yes / noIs it a video call?—
Yes / noIs it urgent?—

How it works

  1. User types into the text box
  2. Server asks Jev 14 questions in one call (or the offline classifier)
  3. State machine applies confidence and hysteresis before switching cards
  4. Code parses dates, amounts and units to fill the card

Strengths

  • Stable UI despite per-keystroke model calls
  • Works offline without a key
  • Key never reaches the browser

Caveats

  • Demo app
  • Offline classifier is keyword-based

Getting started

bun install && bun dev, then optionally set TYPESAFE_API_KEY in .env.local.

At a glance

Type
Demo
Status
prototype
Language
TypeScript
Runtime
Next.js web app (Bun)
Has code
yes
Has tests
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Input: one text box that morphs into the right UI as you type, asking Jev which control the sentence calls for, and running offline.

    yibie/awesome-jev
  • An input that becomes what you mean: one text box that morphs into the right UI as you type. Powered by TypeSafe Jev, works offline.

    hellogumbo/awesome-jev
  • One text box that turns what you type into the right small interface, an event card or a checklist or a bill split, with Jev choosing which; falls back to rules when no key is set.

    MrJev/awesome-jev

Frequently asked questions

What does Jev decide?

Which card the text calls for, plus signals like urgency or video call.

Does it work without a key?

Yes, an offline keyword classifier is the default.

Why doesn't the card flicker?

A state machine requires a challenger to win twice or be very confident before switching.

Related projects

  • Ableton Live controller where a one-sentence command in English or Japanese is turned into mixer, transport, clip and device actions.

    Projectbeta
  • Local-first desktop and Android attention workbench that extracts deadlines from WeChat and campus notices; Jev optional.

    Projectbeta
  • Mac voice assistant where one Jev call per utterance maps speech to app, volume, Spotify and system actions; an LLM only answers questions.

    AppprototypePython
  • Draw on a tldraw canvas by voice while pointing a webcam-tracked finger; Jev decides command, action, shape, colour, target and place.

    DemoprototypeTypeScript
  • Local natural-language task workspace where Jev, OpenAI or Gemini turn requests into view and task changes, with speed and cost comparisons.

    AppprototypeTypeScript
  • Page companion where a site's actions are WebMCP tools and Jev picks the action a visitor's request means, asking back when unsure.

    Libraryprototype