evoke

Questions, answered.

What people ask before they say a sentence to their computer. Short answers, each with the page of the manual that holds the long one.

The idea

01

What it is, in plain words.

A sentence can choose a program. It can never invent a value. Everything on this page follows from that line.

What is evoke?

One tool with three ways in: a CLI you talk to, a package manager that installs reflexes from git, and a TypeScript SDK that puts the same decisions inside your app. You say what you want. It picks the right small program from the ones you installed, fills in its arguments from your sentence, and runs it when it is sure. The idea, in ten minutes.

What is a reflex?

A small program with a manifest: a file that says in plain words what the program does and which arguments it takes. The classifier reads the manifest, and the program receives what was decided. A reflex is a recipe: written once, published with a git tag, shared and improved by everyone. The manifest, key by key.

Does it write code, or make values up?

No. Your words pick a program. They never write one. Every argument is a choice the author listed, a word you taught it, or a piece of what you typed, checked against its range. Nothing else can reach a program. The move.

Is it an AI agent?

Call it what you like. What matters is the shape: closed questions, calibrated probabilities, and a person's program at the end. Every value comes from you, the confidence is a number you can set a bar on, and what cannot be undone asks first. If you answer for what an automation did, that shape is the point. The problem it solves.

What does the number mean?

A probability, and a calibrated one: 0.85 means right about 85 times in 100. evoke asks several questions about a sentence and takes the weakest answer as its confidence. A read runs at 0.6, a write at 0.8, and a destructive reflex always asks, however sure. The bars are lines in a file you own. The number.

Using it

02

What it needs, and what it will not do.

One small binary, a key, and reflexes from git. The rest is what it refuses to do on a guess.

What do I need?

A Mac or a Linux machine. On Windows, WSL. git on your path, to install reflexes. Node 24 or newer, for reflexes written in JavaScript. And a key for Jev: from TypeSafe AI as TYPESAFE_API_KEY, or from OpenJEV as OPENJEV_API_KEYInstall.

Do I need an account?

Not with evoke. There is nothing to sign up for, and no server of ours anywhere: this site is static pages, the binary comes from GitHub releases, and a decision goes from your machine to the classifier. The classifier's key is yours, from TypeSafe AI or from OpenJEV. Reflexes come from git with your own credentials. Privacy.

What does it cost?

evoke is free and open source, under Apache-2.0. Jev is TypeSafe AI's service, and a key from TypeSafe AI is billed on its own terms. A key from OpenJEV, an independent service that forwards requests to Jev, is on OpenJEV's terms, which it has not published. Nothing else is metered.

Can it run something I did not ask for?

Under the bar, nothing runs. A sentence that fits nothing runs nothing, and shows you the ranking that says why. A destructive reflex asks every time, and there is no --yes. evoke try shows every judgment before anything runs, and evoke why explains the last decision. Outcomes.

What if it picks the wrong program?

Say so at the confirm, and teach it: t records your sentence as an example in a file of yours, and the next decision reads it. Your vocabulary is a file too. An update never touches either. Tuning.

Can I use it without a key, or offline?

A decision needs the classifier. Everything else works without one. evoke run <call> runs a reflex by name and asks no classifier, and the replay adapter answers every decision from a recording you write, for tests and for checking the guarantees yourself. Check it yourself.

Can it do two things in one sentence?

Yes. «kill the lights in the den and start a 10 minute timer» is read as two steps, each decided on its own, and the plan is shown before anything runs. A result of one step can feed the next. A part that matches nothing refuses the whole request. Weaving.

Reflexes and trust

03

Where the programs come from.

Git is the registry. A tag is a release. A fetched reflex runs as you, so the trust decisions are yours, and they are made where you can read what you are trusting.

Where do reflexes come from?

From git. evoke add owner/repo fetches a repository at its newest version tag and pins each reflex by tag, commit and content hash. A tag that moved is refused. The first-party collection holds thirteen reflexes for what a Mac does at a word. Installing reflexes.

Is it safe to install a reflex from someone I do not know?

A fetched reflex runs as you. add and update are where you decide to trust it, so read what you install: a reflex is one directory, and its body is one file. No code runs at install time. The manifest is linted, the effect you consented to is held in the lock, and an update can tighten it but never loosen it without your --accept. There is no sandbox yet. Security.

Who is responsible for what a reflex does?

A reflex is a program you chose to install, and it runs under your account. evoke shows the call and its confidence, asks before anything that cannot be undone, and gives every run a deadline. What the program then does is the program's, and the licence gives the software as is, without a warranty. So read what you install, and set bars you can defend. The licence.

Can I write my own?

Yes, in ten minutes. evoke new writes a working reflex, evoke check keeps it right, and evoke try shows how it decides. The body is a JavaScript file, or any program with its arguments, in any language. Your first reflex.

How do I share one?

Push it to a git repository and tag a version. There is no account, no registry API, no build step and no upload. Anyone with evoke installs it from the ref. Publishing.

Can I use it inside my app?

Yes. The SDK, @evoke-build/evoke, loads reflexes as files or as code and decides with the same core, compiled to WebAssembly. A decision is a plain typed value your app can queue, show, and run later. A recorded adapter makes tests offline and deterministic. Getting started with the SDK.

Jev and your data

04

One request, from your machine, with your key.

The classifier sees your sentence and the questions built from the reflexes you installed. Nothing else of yours, and nothing at all reaches us.

What is Jev?

TypeSafe AI's System One model: a classifier that answers closed questions with calibrated probabilities. evoke asks the questions and applies the gate. Two built-in adapters reach it: jev, through TypeSafe AI's own API, and openjev, through OpenJEV, an independent service. The core names no engine, and any adapter that answers a closed choice with probabilities fits. Adapters.

What is OpenJEV?

An independent service, not TypeSafe AI's, that forwards requests to Jev and returns its answers. evoke is affiliated with neither, and vouches for neither. A key from OpenJEV is on OpenJEV's terms, and whether it may offer Jev is a matter between OpenJEV and TypeSafe AI. It publishes no terms and no privacy policy, as of the date on the privacy page. With adapter = "openjev" in evoke.toml, your request goes to OpenJEV first, and on to Jev. The key.

What leaves my machine?

When evoke decides, it sends one request from your machine to the classifier, with your key: your sentence, and the questions built from the reflexes you installed, their descriptions, options and examples, and your vocabulary's words with the meanings you wrote. Never a vocabulary's value, a setting, a key or a file. Nothing goes to evoke.build. Privacy, in full.

Is evoke made by TypeSafe AI, or by OpenJEV?

No. Jev is TypeSafe AI's model, and OpenJEV is an independent service. evoke is a project of its own, under its own name and licence, affiliated with neither and vouching for neither. It reaches Jev through TypeSafe AI's own API, or through OpenJEV, as any user of either does. Whether a service may offer Jev is a matter between that service and TypeSafe AI.

The project

05

Open source, under one name.

The code, the spec and the manual are one public repository. The name and the logo stay with the project.

Is it open source?

Yes. The CLI, the SDK, the spec and the manual are one public repository under Apache-2.0, and the collection is MIT. The reflex format is frozen, and every promise in the manual is a transcript that runs in CI. The repository.

Can I fork it, or use the name?

Fork it, yes: the licence allows it. The name and the logo are trademarks. Except for displaying the licence details and identifying us as the origin of the software, you have no right under the licence to use our trademarks, trade names, service marks or product names. So a fork takes its own name and logo. You may still say that something runs on, or is built for, evokeTrademarks.

How do I report a security problem?

Privately, through GitHub's report form, never in a public issue. The latest release is the one that gets fixes.

Where do I ask something else?

Open an issue on GitHub. The manual has a page for every question on this one, and its glossary holds the words.

The idea, in ten minutes →