Description
The Quick Start says:
bun install
cp .env.example .env.local # Add your API keys
bun run src/index.ts run -p supermemory -b locomo
There is no .env.example file. It is not tracked by git and it is not gitignored — it simply was never committed:
$ git ls-files | grep -i env
ui/next-env.d.ts
$ cat .gitignore | grep env
.env
.env.local
Every new contributor's second command is cp: cannot stat '.env.example': No such file or directory, and they are left to reverse-engineer the required variable names. The README's Configuration section lists seven keys, but the authoritative list is src/utils/config.ts:11-19 and it includes one the README omits: SUPERMEMORY_BASE_URL.
Note that a .env.local does work once created — Bun auto-loads it — so this is purely a missing-file problem, not a loader problem.
Impact
First-run friction on the primary onboarding path, and the missing SUPERMEMORY_BASE_URL is not discoverable without reading the source.
Suggested fix
Commit a .env.example matching src/utils/config.ts:
# Providers (at least one)
SUPERMEMORY_API_KEY=
SUPERMEMORY_BASE_URL=https://api.supermemory.ai
MEM0_API_KEY=
ZEP_API_KEY=
# Judges (at least one)
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
GOOGLE_API_KEY=
Worth pairing with a startup check that fails fast with a clear message when the selected provider's or judge's key is empty — today an unset key produces a provider-side 401 several minutes into a run, after ingest has already spent time and money. getProviderConfig/getJudgeConfig (src/utils/config.ts:21-49) return "" without complaint, and the Supermemory/Mem0/Zep clients are constructed with that empty string. Related: [[issue_11]], where the same late-401 pattern shows up via a different route.
Description
The Quick Start says:
bun install cp .env.example .env.local # Add your API keys bun run src/index.ts run -p supermemory -b locomoThere is no
.env.examplefile. It is not tracked by git and it is not gitignored — it simply was never committed:Every new contributor's second command is
cp: cannot stat '.env.example': No such file or directory, and they are left to reverse-engineer the required variable names. The README's Configuration section lists seven keys, but the authoritative list issrc/utils/config.ts:11-19and it includes one the README omits:SUPERMEMORY_BASE_URL.Note that a
.env.localdoes work once created — Bun auto-loads it — so this is purely a missing-file problem, not a loader problem.Impact
First-run friction on the primary onboarding path, and the missing
SUPERMEMORY_BASE_URLis not discoverable without reading the source.Suggested fix
Commit a
.env.examplematchingsrc/utils/config.ts:Worth pairing with a startup check that fails fast with a clear message when the selected provider's or judge's key is empty — today an unset key produces a provider-side 401 several minutes into a run, after ingest has already spent time and money.
getProviderConfig/getJudgeConfig(src/utils/config.ts:21-49) return""without complaint, and the Supermemory/Mem0/Zep clients are constructed with that empty string. Related: [[issue_11]], where the same late-401 pattern shows up via a different route.