None of Raven's SDKs are published to a package registry yet. Every
npm install @corvidhq/... and pip install command in these docs shows
what installation will look like once they are. Raven's source isn't
public — this page is for a checkout your Raven contact has already
given you access to, not something to clone from a public URL.
Do not
pip install raven-sdk. That name already belongs to an unrelated project on PyPI — the checkout's own package is namedraven-sdktoo, but it will need to be renamed before it can be published; don't assume the local name is what ends up on PyPI.
1. Build the checkout
cd <your Raven checkout>
pnpm install
pnpm --filter "./packages/*" run buildThe build step matters: every package's package.json points at
dist/, so a package that hasn't been built resolves to nothing and you
get a confusing "cannot find module" rather than a useful error.
2. Link into your project
JavaScript / TypeScript
pnpm, npm, and yarn all understand a filesystem path as a dependency version:
{
"dependencies": {
"@corvidhq/rtc": "file:../Raven/packages/sdk",
"@corvidhq/chat": "file:../Raven/packages/chat-sdk",
"@corvidhq/client": "file:../Raven/packages/client",
"@corvidhq/react": "file:../Raven/packages/react-sdk",
"@corvidhq/react-native": "file:../Raven/packages/react-native-sdk",
"@corvidhq/server": "file:../Raven/packages/server-sdk"
}
}Adjust the relative paths to wherever you cloned Raven, then
npm install (or pnpm install). Imports then work exactly as the docs
show them:
import { createRTCClient } from '@corvidhq/rtc';| Package | Path in the repo |
|---|---|
@corvidhq/rtc | packages/sdk |
@corvidhq/chat | packages/chat-sdk |
@corvidhq/client | packages/client |
@corvidhq/react | packages/react-sdk |
@corvidhq/react-native | packages/react-native-sdk |
@corvidhq/server | packages/server-sdk |
@corvidhq/cli | packages/cli |
The CLI
cd Raven/packages/cli
npm link # puts `raven` on your PATH
raven --versionOr run it without linking:
node /path/to/Raven/packages/cli/dist/index.js --versionPython
pip install -e /path/to/Raven/sdks/pythonThe -e (editable) install points at your checkout, so pulling new
commits updates the package without reinstalling. Then:
from raven import RavenFlutter
Flutter reads git dependencies directly — no clone or build step needed:
dependencies:
raven_rtc:
path: ../path/to/your-checkout/sdks/flutter/raven_rtc
raven_chat:
path: ../path/to/your-checkout/sdks/flutter/raven_chatA path dependency, not a git one — Raven's source isn't a public
repository to point flutter pub get at.
3. Run Raven itself
The SDKs need a Raven control plane to talk to. To run one locally:
cp .env.example .env
pnpm infra:up # Redis, the media server, TURN, the API
pnpm infra:verify # confirms everything is healthy
pnpm db:migrate # apply migrations to your Postgres
pnpm db:seed # optional: a demo developer, project, key, and room.env needs a DATABASE_URL and DIRECT_URL before any of this works —
Postgres is not part of the compose stack. Any Postgres will do; Raven's
own deployment uses managed Postgres on Supabase, whose free tier gives you
both connection strings in a couple of minutes.
The API is then at http://localhost:4100, with interactive docs at
/docs. Point your SDK's apiUrl/endpoint there. See
Quickstart for what to do next.
When this page goes away
Once the packages are published to a registry, every install command in
these docs becomes literally correct and this page is deleted. Until
then, treat any npm install @corvidhq/... you see as aspirational —
this page is the one that reflects reality.