Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

The evoke manual

Software, by reflex. evoke turns a sentence into a call of a small program — a reflex — chosen by a classifier that never generates text, gated by confidence, and run only when the call is safe enough to run. The classifier is Jev, TypeSafe AI's System One model, the first adapter of a design bound to none.

$ evoke "kill the lights in the den"
  lights room="den" state="off"  0.85
den lights off

One tool does three jobs: 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 invoke a function; you evoke a reflex.

Where to start

You want to…Read
Say something to your laptop and see it happenInstall, then The first ten minutes
Understand the words this manual usesConcepts
Write a reflex of your ownYour first reflex
Decide and run reflexes inside your applicationThe SDK
Look something upReference

The manual

Start

PageRead it when
InstallPutting evoke and its SDK on a machine
The first ten minutesYour first key, your first reflexes, your first lesson
ConceptsYou want the vocabulary and the three steps of a decision

Use — the CLI

PageRead it when
Saying thingsBare input, the REPL, a pipe, --json, --tag, exit codes
OutcomesWhat run, confirm, ask and abstain mean; try, why, run
Installing reflexesadd, remove, update, sync, trust; refs, the lock, the store
Tuningteach, overlays, vocabularies, config, show, test
ProjectsYour home project, an app's project, evoke.toml, trust

Author — writing reflexes

PageRead it when
Your first reflexnew, check, a try, a run — a reflex in ten minutes
The manifestreflex.toml, key by key
ArgumentsOptions, vocabularies, picks and flags; ranges; renames
The bodyFile bodies and argv bodies; context, results, the deadline
Examples and testsRecords, assertions, evoke test, lint
WordingWriting descriptions the classifier decides well on
PublishingTags, versions, the contract diff, collections, the Hub

SDK — @evoke-build/evoke

PageRead it when
Getting startedThe first hour: one file, one reflex, one decision
Projectsload(), roots, reflexes as code, with(), generated types
DecisionsThe Decision union, fill, run, handle
Adaptersjev(), thresholds, and writing an adapter of your own
Testingreplay(): offline, deterministic tests over a recording
ErrorsThe three errors and what each asks of you

Reference

PageHolds
CommandsEvery command, flag and exit code
Filesevoke.toml, evoke.lock, overlays, vocabularies, the types
The JSON lineWhat --json prints, field by field
EnvironmentVariables evoke reads and the paths it writes
DiagnosticsEvery line that ends in a fix, and what the fix does
GlossaryThe words, in one place

Around the tool

PageHolds
The collectionThe first-party reflexes: what a Mac does at a word
SecurityWhat runs as you, what is guaranteed, and what is not

Conventions

  • A line beginning $ is a command you type; the lines under it are what the terminal shows.
  • evoke writes its own lines to stderr, indented two spaces, and only a reflex's result to stdout.
  • Every line that needs something from you ends in the literal command that does it: → evoke trust.
  • macOS and Linux; Windows through WSL. The collection's bodies are macOS's.

evoke is Apache-2.0; the collection is MIT. The name and the logo are trademarks.