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. That program is a reflex: a recipe anyone can write, share and improve. A classifier chooses it. A confidence gate decides whether it runs. A sentence can choose a program. It can never invent a value. The classifier is Jev, TypeSafe AI's System One model, reached through either of two built-in adapters. The design is bound to none.

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

One tool does three jobs. A CLI where you type what you want. A package manager that installs reflexes from git. 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
Type what you want and see it happenInstall, then The first ten minutes
Learn 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
ConceptsThe words, and the three steps of a decision

Use: the CLI

PageRead it when
Typing a requestBare input, the REPL, a pipe, --json, --tag, exit codes
LanguagesEnglish, German, French and Spanish: how evoke tells, what stays as typed, what why says
OutcomesRun, confirm, ask and abstain; try, why, run
WeavingSeveral things in one sentence: the plan, what a step takes from another
Installing reflexesadd, remove, update, sync, trust; refs, the lock, the store
Tuningteach, overlays, vocabularies, config, show, test
Calibratingcalibrate: what the confidence meant on your records, and over repeats
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
PlaybooksA reflex whose body is a plan: steps with slots, one yes over the whole
Examples and testsRecords, assertions, evoke test, lint
The rulesHow a reflex, a playbook and a set are written, and the checklists
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
Projects in codeload(), roots, reflexes as code, with(), generated types
DecisionsThe Decision union, fill, run, handle; steps and weave
Adaptersjev(), openjev() and clef(), 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.
  • What you asked to see goes to stdout: a reflex's result, or the answer of show, try, why and test. What evoke says about a run goes to stderr, indented two spaces.
  • Every line that needs something from you ends with the command that does it:  → evoke trust.
  • macOS and Linux; Windows through WSL. The collection's programs are for macOS.

evoke is Apache-2.0; the collection is MIT. 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 them.

FAQPrivacyGitHub