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.
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
| Type | Question | Answers |
|---|---|---|
| Choice | Which card type does this input call for? | event · reminder · checklist · timer · split · convert · note |
| Yes / no | Is it a video call? | — |
| Yes / no | Is it urgent? | — |
How it works
- User types into the text box
- Server asks Jev 14 questions in one call (or the offline classifier)
- State machine applies confidence and hysteresis before switching cards
- 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-jevAn 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-jevOne 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.
ProjectbetaLocal-first desktop and Android attention workbench that extracts deadlines from WeChat and campus notices; Jev optional.
ProjectbetaMac voice assistant where one Jev call per utterance maps speech to app, volume, Spotify and system actions; an LLM only answers questions.
AppprototypePython- jev-canvas★ 16
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.
AppprototypeTypeScriptPage companion where a site's actions are WebMCP tools and Jev picks the action a visitor's request means, asking back when unsure.
Libraryprototype