Tokens
Claude, Cursor 등 AI 코딩 도우미 토큰 사용량을 추적·시각화·경쟁
Open-source qualitative research platform for adaptive AI interviews, scripted demos, and BYOS deployments with Gemini, Claude, OpenAI, or OpenRouter.
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
OpenInterviewer is an open-source platform for adaptive, AI-assisted qualitative interviews. Researchers configure a study, share an opaque participant link, and review transcripts and synthesis in a dashboard.README 전문 보기 ↗OpenInterviewer is an open-source platform for adaptive, AI-assisted qualitative interviews. Researchers configure a study, share an opaque participant link, and review transcripts and synthesis in a dashboard. An AI interviewer conducts each interview, and the transcript is saved before any analysis runs.
The latest release is 5.4.5, a maintenance release that updates the AI provider libraries. Version 5.4.4 brought routine dependency updates, and 5.4.3 was a security release that updated Next.js to fix two critical vulnerabilities. Read the 5.4.5, 5.4.4 and 5.4.3 release notes, or all release notes.
The project's own instance is open-interview.linxule.com. It is a standalone installation on Cloudflare, with an EU-jurisdiction workspace and provider calls through its own Cloudflare AI Gateway. The former address, openinterviewer.vercel.app, redirects there.
As of 5.4.0, OpenInterviewer offers:
The research guide explains how each of these works.
| Option | Credentials | Where data is stored | Use it to |
|---|---|---|---|
Keyless public demo (/demo) | None | Nowhere | See the participant and analysis experience with scripted sample data |
| Self-host on Cloudflare (recommended) | Server-side provider keys: the default provider's, plus any of the other 3 | A SQLite Durable Object in your Cloudflare account (no Upstash) | Run your own instance on Cloudflare Workers with durable background analysis; the project's own instance runs this way |
| Self-host on Node or Vercel | Vercel AI Gateway/OIDC or server-side provider keys | Your deployment's Upstash database | Run your own instance on Vercel or any Node host |
| Hosted researcher accounts | Sign in, then add your own AI and Upstash credentials in the UI | Your Upstash database | Use a multi-tenant service that an operator runs on the Node/Vercel target; the project does not currently operate one |
Open /demo on a running instance. It needs no login, provider key or database. The demo is deterministic, calls no AI provider and saves nothing. Every response, follow-up and insight is pre-written and visibly labeled as synthetic. It shows the participant-to-researcher workflow, not model quality. Real interviews need configured inference access and storage.
In hosted mode, a platform operator configures the application once. Researchers sign in with OAuth, then add their own AI key and Upstash database in the app. Their credentials are encrypted at rest, and the operator's keys never stand in for a missing researcher key. Operators should read the hosted operations guide.
A standalone instance has one researcher login (ADMIN_PASSWORD) and the instance's own provider keys. Two targets run the same application:
| Cloudflare (recommended) | Node/Vercel | |
|---|---|---|
| Runtime | One Worker: the Next.js app via OpenNext, a SQLite Durable Object workspace, and a Queue for background analysis | Next.js on Vercel or any Node host |
| Storage | Durable Object in your Cloudflare account, with a chosen jurisdiction (eu recommended) | Your Upstash Redis database |
| Provider transport | Direct, or your installation's own Cloudflare AI Gateway | Direct, or Vercel AI Gateway |
| Install and update | npm run setup:cloudflare (guided installer: plan, apply, resume, update, verify) | Vercel project settings, or your Node host's |
| Operations | Maintenance modes, backup/import and point-in-time restore via npm run operator:cloudflare | Upstash backups and your host's tooling |
To try the application locally without any account or credentials, run npm ci && npm run build:cloudflare && npm run preview:cloudflare. The built Worker runs in local workerd with synthetic provider responses and throwaway storage.
On Cloudflare, build and check a release artifact on a clean checkout, then plan the installation:
npm ci
npm run build:cloudflare
npm run check:cloudflare -- --skip-build
npm run setup:cloudflare -- plan --install <name> --env production --provider openai --jurisdiction eu
Then run apply with credentials piped on stdin from a secret manager, and verify. Never keep credentials in a file inside the checkout. Choose the jurisdiction before the first install, because changing it later is a migration. Follow Self-host on Cloudflare for the full steps.
On Node or Vercel, you need Node.js 24.19 or newer, an Upstash Redis database, and either Vercel AI Gateway or a provider key. Configure the standalone section of .env.local, then check it and start the app:
git clone https://github.com/linxule/openinterviewer.git
cd openinterviewer
npm ci
cp .env.example .env.local
npm run setup:check -- --mode standalone
npm run dev
Follow Self-host on Node or Vercel for the variables, the Vercel deploy and the setup checker.
Deployment mode and persistent-workspace health are runtime state, so check them on the instance:
/api/config/mode reports the active mode and whether the configuration shape is valid/api/config/readiness exposes the same safe configuration contract for setup UI/api/health/ready also checks the mode-specific database, and returns 503 when the application cannot serve persistent researcher workflowsBoth configuration endpoints also report analysisExecution. It is synchronous on Node/Vercel deployments and queued-v2 on Cloudflare, where analysis runs as a durable background job.
OpenInterviewer is built to keep participants' data and researchers' credentials within known limits:
NEXT_PUBLIC_ variable.SameSite=Strict cookie and removed from the address bar.Retry-After, even for the correct password. If the attempt store (Durable Object or Redis) or RATE_LIMIT_SALT is unavailable, it answers 503 rather than skipping the limit.x-vercel-forwarded-for, x-forwarded-for or x-real-ip, as for participant limits. On Vercel the platform sets x-vercel-forwarded-for. Behind a host or proxy that passes client-supplied values through, a client can choose its own address, and only the global window bounds it. That client can exhaust the window to block every sign-in for up to an hour. Put such a host behind a proxy that overwrites the header.CF-Connecting-IP. Automatic invocation logs are disabled, because they would record participant link codes in URLs. No Redis client can be constructed inside the Worker.Do not place real credentials in issues, logs, screenshots, chat transcripts or diagnostic output.
Contributing or working with a coding agent? Start with CONTRIBUTING.md and the repository map in AGENTS.md. The development guide lists the verification commands, test lanes and release steps.
For researchers:
For people running an instance:
For contributors:
Thank you to @8888oukaouka-spec for the openinterviewerver02 fork, its study-deletion prototype and historical-analysis change, and the research workflow proposal that helped shape v5's evidence exploration, and for the ideas behind interview languages, voice input, Markdown export (5.1) and projects (5.3). See ACKNOWLEDGMENTS.md for the contributions and source commits.
MIT