CLI client for bee.computer
npm install @beeai/cliš Website ⢠š± iOS App ⢠š¤ Android Coming Soon ⢠𧩠Agent Skill
CLI client for Bee ā the wearable AI that captures your conversations and learns about you.
> [!IMPORTANT]
> To use the CLI, you must have the latest Bee app installed and enable Developer Mode by tapping the app version 10 times in Settings.
Bee is an encrypted wearable personal AI device that sits quietly in the background, capturing your conversations and experiences throughout the day. It records and encrypts your data making it available only to you. Then inside of the secure compute units it transforms ambient context into:
- Conversation transcripts with speaker identification
- Daily summaries of your activities and discussions
- Facts ā things Bee learns and remembers about you
- Todos ā action items extracted from your conversations
- Personal insights and patterns over time
Bee understands 40+ languages, features 7-day battery life, and works with the iOS app to give you a searchable, AI-powered memory of your life.
The Bee CLI exports your personal data as markdown files, making it available to:
- AI agents: Give Claude, GPT, or other assistants your personal context so they can help you more effectively
- Local search: Use grep, ripgrep, or your editor to search across all your conversations
- Backup: Keep a portable, offline copy of your Bee data
- Custom integrations: Build workflows with your conversation history, facts, and todos
Install from npm:
``bash`
npm install -g @beeai/cli
Or download the latest release from the releases page or build from source.
`bash`
bee
By default, data commands return markdown. Use --json to print raw JSON.
- login - Log in interactively, or with --token / --token-stdin.status
- - Show current authentication status.logout
- - Log out and clear stored credentials.
- me - Fetch your user profile. Use --json for JSON output.
- today - Fetch today's brief (calendar events and emails). Use --json for JSON output.
- now - Fetch conversations from the last 10 hours with utterances. Use --json for JSON output.
- changed - Fetch recent changes (defaults to last 24 hours). Use --cursor and --json for JSON output.
- stream - Stream real-time events. Options: --types , --json, --agent, --webhook-endpoint , --webhook-body .
- facts - Manage your facts (things Bee remembers about you).facts list
- - List facts. Options: --limit N, --cursor , --unconfirmed, --json.facts get
- - Get a specific fact. Options: --json.facts create --text
- - Create a new fact. Options: --json.facts update
- - Update a fact. Options: --confirmed , --json.facts delete
- - Delete a fact. Options: --json.
- todos - Manage your todos.todos list
- - List todos. Options: --limit N, --cursor , --json.todos get
- - Get a specific todo. Options: --json.todos create --text
- - Create a new todo. Options: --alarm-at , --json.todos update
- - Update a todo. Options: --text , --completed , --alarm-at , --clear-alarm, --json.todos delete
- - Delete a todo. Options: --json.
- conversations - Access your recorded conversations.conversations list
- - List conversations. Options: --limit N, --cursor , --json.conversations get
- - Get a specific conversation with full transcript. Options: --json.
- daily - Access daily summaries of your activity.daily list
- - List daily summaries. Options: --limit N, --json.daily get
- - Get a specific daily summary. Options: --json.
- journals - Access your journals.journals list
- - List journals. Options: --limit N, --cursor , --json.journals get
- - Get a specific journal. Options: --json.
- search - Search your data.search conversations --query
- - Search conversations. Options: --limit N, --cursor , --json.
- sync - Export your Bee data to markdown files for AI agents. Options: --output
, --recent-days N, --only .-
proxy - Start a local HTTP proxy for the Bee API. Options: --port N.-
ping - Run a quick connectivity check. Use --count N to repeat.-
version - Print the CLI version. Use --json for JSON output.Stream Events
Use
bee stream to receive server-sent events (SSE). You can filter events with
--types (comma-separated) or pass --types all to receive everything. Each
event includes an event name and a JSON data payload.Use
--agent for a single-line, agent-friendly output like:
Event new-utterance: [speaker_1] "Hello there" conv=uuid-string.
Webhook templates use the same agent-friendly message for {{message}}.Below are the event types and the payload fields the CLI expects/prints.
$3
Sent when the stream connects. The
data payload is typically empty or ignored.$3
New transcript snippet.
Payload:
`json
{
"utterance": {
"text": "Hello there",
"speaker": "speaker_1"
},
"conversation_uuid": "uuid-string"
}
`$3
Conversation created.
Payload:
`json
{
"conversation": {
"id": 123,
"uuid": "uuid-string",
"state": "processing",
"title": "Optional title"
}
}
`$3
Conversation updated.
Payload:
`json
{
"conversation": {
"id": 123,
"state": "processed",
"title": "Optional title",
"short_summary": "Optional short summary"
}
}
`$3
Short summary updated.
Payload:
`json
{
"conversation_id": 123,
"short_summary": "Summary text"
}
`$3
Conversation deleted.
Payload:
`json
{
"conversation": {
"id": 123,
"title": "Optional title"
}
}
`$3
Conversation location updated.
Payload:
`json
{
"conversation_id": 123,
"location": {
"latitude": 37.77,
"longitude": -122.41,
"name": "Optional name"
}
}
`$3
Todo created.
Payload:
`json
{
"todo": {
"id": 10,
"text": "Call dentist",
"completed": false,
"alarmAt": 1700000000000
}
}
`$3
Todo updated (same payload as todo-created).
$3
Todo deleted.
Payload:
`json
{
"todo": {
"id": 10,
"text": "Optional text"
}
}
`$3
Journal created.
Payload:
`json
{
"journal": {
"id": 55,
"state": "processed",
"text": "Optional raw text",
"aiResponse": {
"message": "Optional assistant message",
"cleanedUpText": "Optional cleaned text",
"followUp": "Optional follow up",
"todos": ["Optional todo"]
}
}
}
`$3
Journal updated (same payload as journal-created).
$3
Journal deleted.
Payload:
`json
{
"journalId": 55,
"reason": "Optional reason"
}
`Sync Command
The
sync command exports all your Bee data to a local directory as markdown files.$3
`bash
bee sync [--output ] [--recent-days N] [--only ]
`$3
| Option | Default | Description |
|--------|---------|-------------|
|
--output | bee-sync | Output directory for synced files |
| --recent-days N | 3 | Number of recent days to sync with full conversation details |
| --only | all | Limit sync to a comma-separated list: facts, todos, daily, conversations |$3
`
bee-sync/
āāā facts.md # All facts (confirmed and pending)
āāā todos.md # All todos (open and completed)
āāā daily/
āāā YYYY-MM-DD/ # One folder per day
āāā summary.md # Daily summary
āāā conversations/
āāā 123.md # Individual conversation files
āāā 456.md
āāā ...
`$3
#### facts.md
Contains all your facts organized by confirmation status.
`markdown
Facts
Confirmed
- Fact text here [tag1, tag2] (2024-01-15T10:30:00.000Z, id 42)
- Another fact (2024-01-14T08:00:00.000Z, id 41)
Pending
- Unconfirmed fact (2024-01-16T12:00:00.000Z, id 43)
`Each fact entry includes:
- The fact text
- Tags (if any) in brackets
- Creation timestamp in ISO 8601 format
- Unique fact ID
#### todos.md
Contains all your todos organized by completion status.
`markdown
Todos
Open
- Buy groceries (id 10, created 2024-01-15T09:00:00.000Z, alarm 2024-01-16T18:00:00.000Z)
- Call dentist (id 11, created 2024-01-15T10:00:00.000Z)
Completed
- Finish report (id 9, created 2024-01-14T08:00:00.000Z)
`Each todo entry includes:
- The todo text
- Unique todo ID
- Creation timestamp
- Alarm time (if set)
#### daily/YYYY-MM-DD/summary.md
Daily summary containing an overview of the day.
`markdown
Daily Summary ā 2024-01-15
- id: 100
- date_time: 2024-01-15T00:00:00.000Z
- created_at: 2024-01-16T02:00:00.000Z
- conversations_count: 5
Short Summary
Brief overview of the day's activities.
Summary
Detailed summary of conversations and events.
Email Summary
Summary of email activity (if available).
Calendar Summary
Summary of calendar events (if available).
Locations
- 123 Main St, City (37.77490, -122.41940)
- Coffee Shop (37.78500, -122.40900)
Conversations
- 123 (2024-01-15T09:00:00.000Z - 2024-01-15T09:30:00.000Z) ā Meeting with team (conversations/123.md)
- 124 (2024-01-15T14:00:00.000Z - 2024-01-15T14:15:00.000Z) ā Quick chat (conversations/124.md)
`#### daily/YYYY-MM-DD/conversations/ID.md
Individual conversation transcripts with full details.
`markdown
Conversation 123
- start_time: 2024-01-15T09:00:00.000Z
- end_time: 2024-01-15T09:30:00.000Z
- device_type: ios
- state: processed
- created_at: 2024-01-15T09:00:00.000Z
- updated_at: 2024-01-15T10:00:00.000Z
Short Summary
Brief description of the conversation.
Summary
Detailed summary of what was discussed.
Primary Location
- 123 Main St, City (37.77490, -122.41940)
- created_at: 2024-01-15T09:00:00.000Z
Suggested Links
- https://example.com/resource (2024-01-15T09:15:00.000Z)
Transcriptions
$3
- realtime: false- Speaker 1: Hello, how are you? (2024-01-15T09:00:00.000Z - 2024-01-15T09:00:05.000Z)
- Speaker 2: I'm doing well, thanks! (2024-01-15T09:00:06.000Z - 2024-01-15T09:00:10.000Z)
`Each conversation file includes:
- Metadata (timestamps, device type, state)
- Short and detailed summaries
- Primary location with coordinates
- Suggested links extracted from the conversation
- Full transcription with speaker labels and timestamps
$3
Sync to the default directory:
`bash
bee sync
`Sync to a custom directory:
`bash
bee sync --output ~/Documents/bee-backup
`Sync with more recent days for full details:
`bash
bee sync --recent-days 7
`$3
- The sync command fetches all facts, todos, and daily summaries
- Conversations are fetched concurrently (4 at a time) for faster syncing
- Recent days (controlled by
--recent-days`) get their conversations synced twice to ensure completenessMIT