Files
twenty/packages/twenty-companion
Charles BochetandGitHub 790a58945b Migrate twenty-companion from npm to yarn workspaces (#18946)
## Summary
- Migrates twenty-companion from standalone npm to the repo yarn
workspaces
- Removes package-lock.json (resolves Oneleet security finding about npm
lifecycle scripts)
- Converts npm overrides to yarn resolutions
- Updates scripts from npm run to yarn

## Test plan
- [x] Verified yarn install succeeds at root
- [x] Verified yarn start in twenty-companion launches the Electron app
- [ ] Verify Oneleet finding is resolved after merge
2026-03-25 10:45:43 +01:00
..
2026-03-04 14:11:57 +00:00
2026-03-04 14:11:57 +00:00
2026-03-04 14:11:57 +00:00
2026-03-04 14:11:57 +00:00
2026-03-04 14:11:57 +00:00
2026-03-04 14:11:57 +00:00
2026-03-04 14:11:57 +00:00
2026-03-04 14:11:57 +00:00
2026-03-04 14:11:57 +00:00
2026-03-04 14:11:57 +00:00

Twenty Desktop

WARNING: This application is a Proof of Concept (POC) and must NOT be used in production. It is intended for demonstration and experimentation purposes only. Security, stability, and performance have not been validated for production use.

This is a demo application that shows off what you can build with the Recall.ai Desktop Recording SDK.

This repo is intended to be a mockup of the kind of experience you can build using the Desktop Recording SDK.

Need help? Reach out to our support team support@recall.ai.

Setup

  • Copy the env.example file to a .env file:

    • cp .env.example .env
  • Replace RECALLAI_API_URL with the base URL for the Recall region that you're using that matches your API key, example:

    • RECALLAI_API_URL=https://us-east-1.recall.ai
  • Modify .env to include your Recall.ai API key:

    • RECALLAI_API_KEY=<your key>

Required: This project also uses live transcription with Assembly AI. You'll need to configure your own Assembly credentials on the Recall.ai dashboard. Follow our AssemblyAI real-time transcription guide to set this up.

If you want to enable the AI summary after a recording is finished, you can specify an OpenRouter API key.

OPENROUTER_KEY=<your key>

Twenty CRM Integration (optional)

To automatically create callRecording records in Twenty when a meeting starts (and mark them as ended when the meeting closes), configure:

TWENTY_API_URL=http://localhost:3000
TWENTY_API_KEY=<your key>

The call-recording Twenty app must be installed in your workspace first (packages/twenty-apps/internal/call-recording). Generate an API key at <your-twenty-instance>/settings/api-webhooks.

To launch the Twenty Desktop application, start the server first, then the app:

npm ci
npm start

Screenshots

Screenshot 2025-06-16 at 10 10 57 PM Screenshot 2025-06-16 at 10 22 44 PM Screenshot 2025-06-16 at 10 14 38 PM