A 24/7 personal assistant Agent that gets things done, built by NetEase Youdao
English · 中文
LobsterAI is an all-in-one personal assistant Agent developed by NetEase Youdao. It works around the clock to handle your everyday tasks — data analysis, making presentations, generating videos, writing documents, searching the web, sending emails, scheduling tasks, and more.
At its core is Cowork mode — it executes tools, manipulates files, and runs commands in a local or sandboxed environment, all under your supervision. You can also chat with agent via Telegram, Discord, DingTalk or Feishu (Lark) and get work done from your phone anytime, anywhere.
# Clone the repository
git clone https://github.com/netease-youdao/LobsterAI.git
cd lobsterai
# Install dependencies
npm install
# Start development (Vite dev server + Electron with hot reload)
npm run electron:dev
The dev server runs at http://localhost:5175 by default.
# TypeScript compilation + Vite bundle
npm run build
# ESLint check
npm run lint
Uses electron-builder to produce platform-specific installers. Output goes to release/.
# macOS (.dmg)
npm run dist:mac
# macOS - Intel only
npm run dist:mac:x64
# macOS - Apple Silicon only
npm run dist:mac:arm64
# macOS - Universal (both architectures)
npm run dist:mac:universal
# Windows (.exe NSIS installer)
npm run dist:win
# Linux (.AppImage)
npm run dist:linux
LobsterAI uses Electron's strict process isolation. All cross-process communication goes through IPC.
Main Process (src/main/main.ts):
Preload Script (src/main/preload.ts):
window.electron API via contextBridgecowork namespace for session management and stream eventsRenderer Process (src/renderer/):
src/
├── main/ # Electron main process
│ ├── main.ts # Entry point, IPC handlers
│ ├── preload.ts # Security bridge
│ ├── sqliteStore.ts # SQLite storage
│ ├── coworkStore.ts # Session/message CRUD
│ ├── skillManager.ts # Skill management
│ ├── im/ # IM gateways (DingTalk/Feishu/Telegram/Discord)
│ └── libs/
│ ├── coworkRunner.ts # Agent SDK executor
│ ├── coworkVmRunner.ts # Sandbox VM execution
│ ├── coworkSandboxRuntime.ts # Sandbox lifecycle
│ └── coworkMemoryExtractor.ts # Memory extraction
│
├── renderer/ # React frontend
│ ├── App.tsx # Root component
│ ├── types/ # TypeScript definitions
│ ├── store/slices/ # Redux state slices
│ ├── services/ # Business logic (API/IPC/i18n)
│ └── components/
│ ├── cowork/ # Cowork UI components
│ ├── artifacts/ # Artifact renderers
│ ├── skills/ # Skill management UI
│ ├── im/ # IM integration UI
│ └── Settings.tsx # Settings panel
│
SKILLs/ # Skill definitions
├── skills.config.json # Skill enable/disable and ordering
├── web-search/ # Web search
├── docx/ # Word document generation
├── xlsx/ # Excel spreadsheets
├── pptx/ # PowerPoint presentations
├── pdf/ # PDF processing
├── remotion/ # Video generation
├── playwright/ # Web automation
└── ... # More skills
Cowork is the core feature of LobsterAI — an AI working session system built on the Claude Agent SDK. Designed for productivity scenarios, it can autonomously complete complex tasks like data analysis, document generation, and information retrieval.
| Mode | Description |
|---|---|
auto | Automatically selects based on context |
local | Direct local execution, full speed |
sandbox | Isolated Alpine Linux VM, safety first |
Cowork uses IPC events for real-time bidirectional communication:
message — New message added to the sessionmessageUpdate — Incremental streaming content updatepermissionRequest — Tool execution requires user approvalcomplete — Session execution finishederror — Execution error occurredAll tool invocations involving file system access, terminal commands, or network requests require explicit user approval in the CoworkPermissionModal. Both single-use and session-level approvals are supported.
LobsterAI ships with 16 built-in skills covering productivity, creative, and automation scenarios, configured via SKILLs/skills.config.json:
| Skill | Function | Typical Use Case |
|---|---|---|
| web-search | Web search | Information retrieval, research |
| docx | Word document generation | Reports, proposals |
| xlsx | Excel spreadsheet generation | Data analysis, dashboards |
| pptx | PowerPoint creation | Presentations, business reviews |
| PDF processing | Document parsing, format conversion | |
| remotion | Video generation (Remotion) | Promo videos, data visualization animations |
| playwright | Web automation | Browser tasks, automated testing |
| canvas-design | Canvas drawing and design | Posters, chart design |
| frontend-design | Frontend UI design | Prototyping, page design |
| develop-web-game | Web game development | Quick game prototypes |
| scheduled-task | Scheduled tasks | Periodic automated workflows |
| weather | Weather queries | Weather information |
| local-tools | Local system tools | File management, system operations |
| create-plan | Plan authoring | Project planning, task breakdown |
| skill-creator | Custom skill creation | Extend new capabilities |
| imap-smtp-email | Email send/receive | Email processing, auto-replies |
Custom skills can be created via skill-creator and hot-loaded at runtime.
LobsterAI supports scheduled tasks that let the Agent automatically execute recurring work on a set schedule.
| Scenario | Example |
|---|---|
| News Collection | Automatically gather industry news and generate a summary every morning |
| Inbox Cleanup | Periodically check your inbox, categorize emails, and summarize important ones |
| Data Reports | Generate a weekly business data analysis report |
| Content Monitoring | Regularly check specific websites for changes and send notifications |
| Work Reminders | Generate to-do lists or meeting notes on a schedule |
Scheduled tasks are powered by Cron expressions, supporting minute, hourly, daily, weekly, and monthly intervals. When a task fires, it automatically starts a Cowork session. Results can be viewed on the desktop or pushed to your phone via IM.
LobsterAI can bridge the Agent to multiple IM platforms. Send a message from your phone via IM to remotely trigger the desktop Agent — command your personal assistant anytime, anywhere.
| Platform | Protocol | Description |
|---|---|---|
| DingTalk | DingTalk Stream | Enterprise robot bidirectional communication |
| Feishu | Lark SDK | Feishu app robot |
| Telegram | grammY | Bot API integration |
| Discord | discord.js | Discord bot integration |
| NetEase IM | node-nim V2 SDK | NetEase IM P2P messaging |
Configure the corresponding platform Token/Secret in the Settings panel to enable. Once set up, you can send instructions directly to the Agent from your phone IM (e.g., "analyze this dataset", "make a weekly summary PPT"), and the Agent will execute on the desktop and return results.
LobsterAI has a built-in memory system that remembers your personal information and preferences across sessions, making the Agent more helpful the more you use it.
After each conversation turn, the memory extractor analyzes the dialogue:
| Extraction Type | Example | Confidence |
|---|---|---|
| Personal Profile | "My name is Alex", "I'm a product manager" | High |
| Personal Ownership | "I have a cat", "I use a MacBook" | High |
| Personal Preferences | "I like a concise style", "I prefer English replies" | Medium-High |
| Assistant Preferences | "Don't use emojis in replies", "Write code in TypeScript" | Medium-High |
| Explicit Requests | "Remember this", "Please note that down" | Highest |
Extracted memories are automatically deduplicated and merged, then injected into the Agent's context in subsequent sessions — making responses more personalized and aligned with your needs.
| Setting | Description | Default |
|---|---|---|
| Memory Toggle | Enable or disable the memory feature | On |
| Auto Capture | Whether to automatically extract memories from conversations | On |
| Capture Strictness | Strict / Standard / Relaxed — controls auto-extraction sensitivity | Standard |
| Max Injected Items | Maximum number of memories injected per session (1–60) | 12 |
All data is stored in a local SQLite database (lobsterai.sqlite in the user data directory).
| Table | Purpose |
|---|---|
kv | App configuration key-value pairs |
cowork_config | Cowork settings (working directory, system prompt, execution mode) |
cowork_sessions | Session metadata |
cowork_messages | Message history |
scheduled_tasks | Scheduled task definitions |
LobsterAI enforces security at multiple layers:
| Layer | Technology |
|---|---|
| Framework | Electron 40 |
| Frontend | React 18 + TypeScript |
| Build | Vite 5 |
| Styling | Tailwind CSS 3 |
| State | Redux Toolkit |
| AI Engine | Claude Agent SDK (Anthropic) |
| Storage | sql.js |
| Markdown | react-markdown + remark-gfm + rehype-katex |
| Diagrams | Mermaid |
| Security | DOMPurify |
| IM | dingtalk-stream · @larksuiteoapi/node-sdk · grammY · discord.js |
App-level config is stored in the SQLite kv table, editable through the Settings panel.
Cowork session config includes:
auto / local / sandboxCurrently English and Chinese are supported. Switch languages in the Settings panel.
PascalCase; functions/variables: camelCase; Redux slices: *Slice.tstype: short imperative summary (e.g., feat: add artifact toolbar)git checkout -b feature/your-feature)git commit -m 'feat: add something')git push origin feature/your-feature)Please include in your PR description: a summary of changes, linked issue (if any), screenshots for UI changes, and notes on any Electron-specific behavior changes.
Built and maintained by NetEase Youdao.