- Node.js 20.10 or newer.
- pnpm (e.g.
npm install -g pnpm).
From the project root:
pnpm install-
Copy the example env file and edit it:
cp .env.example .env
-
Set at least one LLM API key. The app supports environment-specific files (
.env.development,.env.production,.env.test) loaded automatically based on theENVIRONMENTvariable.Required for cohort/persona creation, chat, and reports: at least one of:
GOOGLE_API_KEY(Google Gemini).- Other providers (e.g. OpenRouter, OpenAI) if configured; see the codebase and
.env.examplefor supported keys.
-
Optional:
MASS_DATA_DIR– directory for personas, cohorts, workspaces, and reports. Default isdataunder the current working directory. You can also pass-d <path>to the CLI.SQLITE_DB_PATH– path for SQLite app state (default:memory:). Set to something like./data/mass.dbfor a persistent database. Persona, cohort, workspace, and report data live in the local JSON store underdata/, not in SQLite.
-
Show help:
pnpm cli -- --help
-
Run any command by passing it after
--, e.g.:pnpm cli cohort list pnpm cli persona list
Optional: build a standalone CLI and run it directly:
pnpm build:cli
node dist/cli.jsYou can also link the mass bin from package.json and run mass if configured.
The open-source workspace includes a Vue 3 front end (frontend/) and an HTTP API (backend/) used by that UI. The API is a small Hono app on Node; routes include GraphQL (POST /graphql) and JSON endpoints such as /prompt-ask and /report-start.
From the repository root:
| Command | What it does |
|---|---|
pnpm dev |
Starts both the API and the Vite dev server in parallel. |
pnpm backend |
API only (mass-backend, default http://localhost:3000). |
pnpm frontend |
Vite only (default http://localhost:5173). |
PORT– API listen port (default3000). Set in.envor the shell if something else already uses 3000.- Local API base URL – For
localhost,127.0.0.1, or typical192.168.*hosts, the front end targetshttp://localhost:<PORT>for API calls (seefrontend/src/api/helpers.ts). Other hosts use relative/api(for hosted or reverse-proxy setups).
You still need the same .env LLM keys and optional MASS_DATA_DIR / SQLITE_DB_PATH as for the CLI.
- Frontend: UI stack and how it talks to the API.
- Concepts: cohorts, personas, workspaces, reports.
- Creating cohorts and personas: create and list cohorts and personas.