DOCS — GETTING STARTED

Getting Started

Go from zero to running local AI in under five minutes.

Friday

A ready-to-run voice assistant with a web UI. Talk to it from the device, a phone, or a tablet.

TTS Server

Local Text-to-Speech. Real-time audio synthesis via HTTP API.

STT Server

Local Speech-to-Text. Streaming transcription via HTTP API.

Agents SDK

C++ framework for agentic AI. Autonomous voice agents, orchestration, and more.

Prerequisites

Supported Platforms

  • macOS Apple Silicon (arm64)
  • Linux x64 (Ubuntu 22.04+)
  • Linux ARM64 (Jetson, RPi 5)

What You Need

  • ~500 MB free disk space
  • An EdgeAI account — the CLI signs you in via browser
  • For headless hosts only: an API key

Quick Install (Recommended)

The installer downloads pre-built binaries and default models for your platform, verifies SHA-256 checksums, and generates launcher scripts.

curl -fsSL https://get.runedge.ai/install.sh | bash

The CLI opens your browser to sign in. Nothing else to set up.

Headless install

On a machine with no browser — a server, a container, a robot, or any CI job — pass an API key instead. This makes the install fully non-interactive.

curl -fsSL https://get.runedge.ai/install.sh | bash -s -- --api-key <YOUR_KEY>

Requires an API key. Create one on the API Keys page, then replace YOUR_KEY with it.

Installer Options

FlagDefaultDescription
--api-key <key>browser sign-inFor headless installs. Skips browser sign-in and authenticates non-interactively.
--products <list>allComma-separated: friday, tts, stt, agents-sdk
--skip-modelsfalseSkip downloading AI models (binaries only)
--servicesfalseInstall as launchd (macOS) or systemd (Linux) services
--dir <path>~/.edgeaiCustom install directory

Examples:

# Install only TTS
curl -fsSL https://get.runedge.ai/install.sh | bash -s -- --products tts
# Install TTS + STT and register as system services
curl -fsSL https://get.runedge.ai/install.sh | bash -s -- --products tts,stt --services
# Headless: install TTS on a server with no browser
curl -fsSL https://get.runedge.ai/install.sh | bash -s -- \
  --api-key <YOUR_KEY> --products tts

Running Your First Request

1

Start Friday

~/.edgeai/bin/edgeai-friday

Friday serves its web UI on port 9000 and starts the STT and TTS servers alongside it. If either is unavailable, Friday still starts — in degraded mode, without voice.

2

Open the UI on the device

http://127.0.0.1:9000

A browser running on the device itself needs no pairing — Friday trusts loopback. This is the happy path for any device with a display: a desk unit, a kiosk, or a car head unit.

3

Pair a phone or tablet

http://127.0.0.1:9000/?pair=1

Open that on the device and Friday shows a QR code. Scan it with the phone or tablet and it pairs itself. Anything that is not the device needs to pair before it can talk to Friday.

Headless devices (no display)

With no screen there is nowhere to show the QR code, and 127.0.0.1 means your own laptop — not the device. Ask Friday for its pairing URL over SSH instead. Run this on the device, substituting its LAN address:

curl -s -H "Host: <DEVICE_IP>:9000" localhost:9000/api/v1/pairing

Friday replies with a ready-to-open URL:

{"lan":true,"token":"<token>","url":"http://<DEVICE_IP>:9000/#tk=<token>"}

Open that url once in the browser you want to use. Friday stores the token in that browser, so plain http://<DEVICE_IP>:9000 works from then on — and it survives restarts.

Pairing is saved per browser. Chrome and Safari each need their own one-time visit, as does every phone.

Alternative: skip pairing with an SSH tunnel

Useful for development, or any time you would rather not put a token in a browser.

ssh -L 9000:127.0.0.1:9000 <user>@<DEVICE_IP>

With the tunnel open, browse to http://127.0.0.1:9000 on your own machine. Your requests reach Friday over loopback, so no pairing is needed at all.

Friday Options

FlagDefaultDescription
--port <n>9000UI port. Use 0 to pick a free one automatically.

Running as a Background Service

Pass --services during installation to register TTS and STT as system services that start on boot.

macOS (launchd)

# Check status
launchctl list | grep runedge

# Stop TTS
launchctl unload ~/Library/LaunchAgents/ai.runedge.tts.plist

# Restart TTS
launchctl load ~/Library/LaunchAgents/ai.runedge.tts.plist

# View logs
tail -f ~/.edgeai/logs/tts.log

Linux (systemd)

# Check status
systemctl --user status edgeai-tts edgeai-stt

# Stop TTS
systemctl --user stop edgeai-tts

# Restart TTS
systemctl --user restart edgeai-tts

# View logs
journalctl --user -u edgeai-tts -f

Troubleshooting

"Permission denied" when running the installer

Make sure to pipe through bash: curl ... | bash. If downloading manually, run chmod +x install.sh first.

"Model not found" when starting TTS or STT

Models are downloaded separately from binaries. Re-run the installer without --skip-models, or download models manually from the dashboard.

"Connection refused" on port 9999 or 8888

The server may still be loading models. Wait a few seconds and retry. Check logs for errors with: tail -f ~/.edgeai/logs/tts.log

Linux: "libportaudio.so.2: cannot open shared object"

Install the PortAudio runtime: sudo apt-get install libportaudio2

Linux: "libopenblas.so.0: cannot open shared object"

Install OpenBLAS runtime: sudo apt-get install libopenblas0

Friday's UI loads but shows "Reconnecting…" forever

That browser hasn't paired. Friday only trusts loopback, so a browser on any other machine needs a pairing token — without one its event stream is rejected and the UI retries forever. Run this on the device to get the pairing URL: curl -s -H "Host: <DEVICE_IP>:9000" localhost:9000/api/v1/pairing — then open the returned url once. Pairing is saved per browser, so Chrome and Safari each need their own visit.

Friday says "open http://127.0.0.1:9000" but I'm on another machine

127.0.0.1 always means the machine your browser is running on, never the device. If the device has a display, open it there. If it's headless, either pair using the curl above, or forward the port with: ssh -L 9000:127.0.0.1:9000 <user>@<DEVICE_IP> — then open http://127.0.0.1:9000 on your own machine.

Next Steps