Chat with a bot. Run work on your own computers. Keep the results in one conversation.
Note
Vibeface is in Nightly. Before the first stable release, protocol, data, and API changes do not preserve backward compatibility. Use the same version on all computers in your network.
- What you can do
- Get started
- Add another device
- Public discovery service
- Privacy and permissions
- Documentation
- Build from source
- Repository layout
- Contribute
- License
- Ask in chat. Give a bot a name and a job, then use its conversation to ask for work and review results.
- Choose a computer. Run tasks on your own Mac or Linux computer using Codex, Claude Code, pi, opencode, or Cursor.
- Continue elsewhere. Approved computers share conversations, task updates, and saved results. Open a synced conversation on another computer and choose to continue there.
- Check from your phone. Connect through a browser or the native iOS and Android apps.
Vibeface coordinates the work. You provide the Agent, its login and model access, and the project folder on each computer. Project files, dependencies, and logins do not move with the conversation.
You need an Apple Silicon Mac, Linux x64, or Linux ARM64 with glibc, plus a supported Agent set up on that computer.
-
Install Nightly. The installer selects and verifies the complete package for your platform:
curl -fsSL https://raw.githubusercontent.com/leaperone/vibeface/main/install.sh | bash -s -- --channel nightly --install-root "$HOME/.local/share/vibeface" --bin-dir "$HOME/.local/bin" export PATH="$HOME/.local/bin:$PATH" vibeface --version
-
Run the Node, the service that connects this computer to Vibeface:
vibeface
-
Open
http://localhost:4790in the browser on that computer. -
Create your personal network. Download the recovery file and keep its password somewhere safe.
-
Choose an Agent in the computer's AI settings, complete its login, and check availability. A login from your usual terminal may not apply to Vibeface's private directory.
-
Create a bot and send a message. To work on a project, enable task execution and add the project folder in the AI settings.
The default data directory is ~/.vibeface. The first run initializes only a missing or empty directory. See the quick start for the full walkthrough.
Add ~/.local/bin to your shell configuration to use vibeface in new terminals. For an existing installation, use vibeface update for updates and vibeface service to manage the background service. Do not run the installer again. See installation and updates for update configuration and other installation options.
With Node.js 22 or newer, you can also install the CLI from npm with npm install -g @leaperone/vibeface@nightly. npm manages updates for that installation.
Create a join link in Add device on a device that manages your network. Open it in another browser or the phone app. For another computer, run:
vibeface join '<join link>' --name '<device name>'Compare the six-digit code on both devices before approving. Join the existing network instead of creating a new one. Read first-time setup for joining and recovery.
The default public discovery service provides address hints, signed connection entries, and short-lived Relay admission:
vibeface://82169062e48d543dc9af8e02340c5248d6fcbe43fceb7d593ab069e7e483c235@discovery.vibeface.dev:4792
New personal Nodes connect by default to obtain address hints, a signed catalogue of public entries and relays, and short-lived admission grants. Mobile and browser clients use the same discovery service through HTTPS, while LAN connections remain preferred. Discovery does not relay application data; the public entry forwards ciphertext, without distributing its operator token. Use --bootstrap off during first initialization to disable public bootstrap, or configure a self-hosted service. See Use the public discovery service for configuration, visible metadata, and connection limits. Joining a personal network still requires an invitation and approval.
- You approve each device that joins your private network. Only add devices you trust.
- Connections are encrypted. A public entry point forwards encrypted traffic without becoming a member of your network.
- Configured credentials stay on the computer. A secret sent in chat becomes part of the shared conversation.
- Approved computers and your chosen model service process task content. Connection encryption does not encrypt files on disk.
- Agents can run commands and change files. Project folder settings are not an operating system sandbox.
- If a task result is unknown, check the original task before sending it again. Syncing history never starts old tasks.
Read the privacy and security guide before enabling access to your projects.
Detailed guides are currently in Chinese.
| Guide | Use it to |
|---|---|
| Quick start | Install Vibeface and finish the first conversation. |
| User guide | Manage bots, tasks, notifications, and computers. |
| Product overview | Understand what Vibeface does and its limits. |
| Agent support | Set up coordination and task execution. |
| History sync | See what syncs and how to continue on another computer. |
| Installation and updates | Manage packages, background services, and updates. |
| Troubleshooting | Diagnose connection and task problems. |
| Node reference | Configure connections, Agents, and recovery. |
| CI | Find the checks for a change. |
File delivery is experimental and off by default. Paid delivery uses a local test chain, with no real assets.
You need Rust 1.91+, Node.js 22.12+, pnpm 11.9.0, and wasm-bindgen-cli 0.2.129.
rustup target add wasm32-unknown-unknown
bash scripts/build-web-crypto.sh
bash scripts/build-web.sh
cargo build --release -p vibeface -p vibeface-core --locked
bash scripts/package-node.shThe platform package is written to .artifacts/packages/. See source setup for running it and release instructions for packaging details.
.
├── apps/
│ ├── app/ # Web app
│ ├── cli/ # Command line
│ ├── core/ # Node service
│ ├── mobile/ # iOS and Android apps
│ └── www/ # Public website
├── crates/ # Shared Rust libraries
├── packages/
│ ├── client/ # Shared app client
│ ├── docs/ # User and developer guides
│ └── theme/ # Shared styles
├── contracts/ # Experimental file delivery contracts
├── scripts/ # Build, package, and verification tools
├── tests/ # Fixtures and end-to-end tests
└── install.sh # Package installer
Open an Issue with your platform, vibeface --version, and the relevant vibeface status output. Remove credentials and personal data before sharing logs.
For a pull request, start from main, use a separate branch, and run the checks that match your changes. See CI for the required checks.
This repository does not include a LICENSE file yet. Until a license is published, all rights are reserved.