Setup
If you are setting up for the first time, start with Getting Started.
For wizard details, see Onboarding Wizard.
TL;DR
- Tailoring lives outside the repo:
~/.fased/workspace(workspace) +~/.fased/fased.json(config). - Stable workflow: use the repo-backed installer, then finish setup in
Agent > Models,Agent > Skills,Agent > Channels, andAgent > Services. - Bleeding edge workflow: run the Gateway yourself via
pnpm gateway:watch, then let the app or browser UI attach in Local mode.
Prereqs (from source)
- Node 24 recommended, or Node 22.14+ with
node:sqlite pnpm- Docker (optional; only for containerized setup/e2e — see Docker)
Tailoring strategy (so updates don’t hurt)
If you want “100% tailored to me” and easy updates, keep your customization in:- Config:
~/.fased/fased.json(JSON/JSON5-ish) - Workspace:
~/.fased/workspace(skills, prompts, memories; make it a private git repo)
fased is missing, run ./install.sh --no-onboard from the repo checkout to
install the CLI, then run the command again.
Run the Gateway from this repo
Afterpnpm build, you can run the packaged CLI directly:
Stable workflow
- Install with the repo-backed installer:
- Open the Control UI:
- Finish the selected Agent:
Agent > Models: provider auth and model refsAgent > Skills: skill library, plugin-catalog review, local skill creation, and per-Agent accessAgent > Channels: chat app accounts and routesAgent > Services: web/search, Gmail, Calendar, GitHub, browser/media, and APIs
- Sanity check:
- Run
fased setup, then start the Gateway manually withfased gateway.
Bleeding edge workflow (Gateway in a terminal)
Goal: work on the TypeScript Gateway, get hot reload, keep the macOS app UI attached.0) (Optional) Run the macOS app from source too
If you also want the macOS app on the bleeding edge:1) Start the dev Gateway
gateway:watch runs the gateway in watch mode and reloads on TypeScript changes.
2) Point the macOS app at your running Gateway
In FasedAgent.app:- Connection Mode: Local The app will attach to the running gateway on the configured port.
3) Verify
- In-app Gateway status should read “Using existing gateway …”
- Or via CLI:
Common footguns
- Wrong port: Gateway WS defaults to
ws://127.0.0.1:18789; keep app + CLI on the same port. - Where state lives:
- Credentials:
~/.fased/credentials/ - Sessions:
~/.fased/agents/<agentId>/sessions/ - Logs:
/tmp/fased/
- Credentials:
Credential storage map
Use this when debugging auth or deciding what to back up:- WhatsApp:
~/.fased/credentials/whatsapp/<accountId>/creds.json - Telegram bot token: config/env or
channels.telegram.tokenFile - Discord bot token: config/env (token file not yet supported)
- Slack tokens: config/env (
channels.slack.*) - Pairing allowlists:
~/.fased/credentials/<channel>-allowFrom.json(default account)~/.fased/credentials/<channel>-<accountId>-allowFrom.json(non-default accounts)
- Model auth profiles:
~/.fased/agents/<agentId>/agent/auth-profiles.json - File-backed secrets payload (optional):
~/.fased/secrets.json - Shared OAuth credentials:
~/.fased/credentials/oauth.jsonMore detail: Security.
Updating (without wrecking your setup)
- Keep
~/.fased/workspaceand~/.fased/as “your stuff”; don’t put personal prompts/config into thefasedrepo. - Updating source:
git pull+pnpm install(when lockfile changed) + keep usingpnpm gateway:watch.
Linux (systemd user service)
Linux installs use a systemd user service. By default, systemd stops user services on logout/idle, which kills the Gateway. Onboarding attempts to enable lingering for you (may prompt for sudo). If it’s still off, run:Related docs
- Gateway runbook (flags, supervision, ports)
- Gateway configuration (config schema + examples)
- Discord and Telegram (reply tags + replyToMode settings)
- Fased assistant setup
- macOS app (gateway lifecycle)