Skip to content

Getting started

The first ten minutes, in the intended order: feel it in the console, take it to the internet, then make it yours in code. Nothing to install until step 3.

1. Feel it — one click, zero setup

Sign in at beta.barista.sh (GitHub OAuth). On the empty Sessions page, press Brew a counter session. You land on the nap test: a number counting up in memory. Let it rest — memory kept, compute released — then Wake it:

Woke in 0.4 s — same process, memory intact: 41 → 42

That receipt is the product. Every session you ever wake prints one.

2. Take it to the internet

Brew the web counter starter and press Publish. Your session serves at https://<name>.at.beta.barista.sh — open it, bump the count, come back and let it rest. Now open the URL again: the request wakes it, and the count survived. A URL that sleeps costs storage, not compute.

3. Make it yours — the SDK

Mint a key in the console under API keys (bk_…, shown once). The Python SDK isn't on a package index yet — beta users receive a checkout; from it:

pip install -e sdk/python
export BARISTA_URL=https://beta.barista.sh BARISTA_API_KEY=<your-bk-key>
from barista_sdk import Session

s = Session.open("mine", template="counter")  # get-or-create by name
print(s.exec(["cat", "/tmp/c"]).stdout)   # the count (waits through boot)
# …it parks itself when idle; the next exec wakes it — same process:
s.exec(["cat", "/tmp/c"])                  # a higher count, state survived

Coming from E2B? from barista_sdk.e2b import Sandbox — switching is an import-line change (reference).

4. Graduate

  • Live in the terminal: the barista CLI — attach a real agent (tutorial 2), pull work down with sync, script lifecycles. Beta users get it with the same checkout.
  • Let agents drive: the MCP endpoint turns the session lifecycle into tools (tutorial 4).
  • Ship your own images: templates — build once, create by name (tutorial 7).