DOCUMENTATION / GET STARTED
Set up your Dotobot.
Install the server. Connect the app. Give your bots a task.
Copy a setup request to paste into your AI agent.
Dotobot requires your own server or local machine. The app is where you work with your bots; the harness runs them on a remote server or dedicated always-on computer that you own or control, such as a Raspberry Pi or Mac mini. Your bots keep working when you close the app.
The harness is free and open source under Apache 2.0. You run it and manage its security, updates and backups. The Mac app requires a subscription, which will also cover the iPhone app when available. The iPhone app is coming soon. You pay separately for your server and AI services.
Before you start
- Use a remote server or dedicated always-on computer with a 64-bit Linux or macOS system (Intel/AMD or ARM) that can run Docker.
- Use a terminal with Bash and an internet connection.
- Make sure that you can approve administrator access.
Run the installer on the host that will run your bots. It uses Docker on that host and helps install Docker if it is absent. A Raspberry Pi needs a 64-bit Linux OS.
On a Mac mini, complete the Docker Desktop setup and keep Docker Desktop running so your bots stay available.
On Windows, use a Linux shell with Docker Desktop integration. Do not run the command in PowerShell.
Install Dotobot
Install the harness on the server or dedicated computer that will stay on for your bots. Download the Mac app to work with them; the iPhone app is coming soon.
Before running the command, check server connectivity and replace YOUR_PUBLIC_IP with your server’s public IP address.
- Download the app to the device you will use to connect.
- Open a terminal on your server, for example over SSH.
- Copy the command below into the terminal.
- Press Enter.
- Follow the installer instructions.
Download Dotobot
Open the downloaded disk image, then drag Dotobot into Applications.
Install the harness
Run this command in a terminal on your remote server or dedicated always-on computer. Replace YOUR_PUBLIC_IP with its public IP address. The harness is free and open source.
curl -fsSL https://dotobot.com/install.sh | bash -s -- --ip YOUR_PUBLIC_IPWait until the installer shows a private link code. The code starts with dotobot_.
The code gives access to your server. Do not put the code in a public message.
Server connectivity
Give your server a reachable HTTPS address so the Mac and iPhone apps can connect to it.
- Get the public IP address of your server.
- Allow incoming TCP connections on ports 80 and 443 in the server firewall.
- Open a terminal on the server.
- Replace
YOUR_PUBLIC_IPwith the public IP address. - Run this command.
curl -fsSL https://dotobot.com/install.sh | bash -s -- --ip YOUR_PUBLIC_IPThe installer sets up HTTPS. A private network address cannot use a public IP certificate.
For a domain name, point the domain to your server. Use --domain bots.example.com instead of --ip YOUR_PUBLIC_IP.
A home router can require port forwarding. The installer does not provide a network tunnel.
Connect the app
- Open Dotobot on your Mac.
- Sign in to your Dotobot account.
- Open Your servers from the user menu.
- Paste the private link code from the installer.
- Follow the app instructions to complete the connection.
Use the same account and sign-in method on each device. Dotobot syncs your saved server connections between your devices. Accounts are not automatically merged because their email addresses match.
Use the HTTPS link code created by the server installation above. Your app connects to the server; the bots and their work stay on that host.
You can add more than one server in Your servers. Switching servers changes the bots and work you see; each server keeps its own data.
Find your link code again
Run this command on the server:
curl -fsSL https://dotobot.com/install.sh | bash -s -- --linkConnect your AI
- Open Providers in the app’s settings.
- Choose your AI provider and use the sign-in or API-key connection method shown.
- Create a bot or open an existing bot’s settings to choose its provider and model.
- Send a simple first message and check that you receive a reply.
Supported connection methods depend on the provider. AI provider credentials are stored on your server. Your Dotobot apps subscription does not include AI usage or change your provider’s plan limits.
Optional: Jev by TypeSafe
Jev can select relevant recalled memories before a reply. Connect your own TypeSafe API key and enable Jev in settings if you want to use it. Extra checks and fast browser actions are separate options. Your bot uses standard behavior if Jev is unavailable.
Review the information beside each option before enabling it: selected requests, memories or other task content are sent to TypeSafe. Usage, including connection tests, is billed to your TypeSafe account.
Connect tools and choose access
- Open Plugins and choose the service you want to connect.
- Follow that plugin’s sign-in or credential instructions.
- Choose which bots can use the connected account. You can allow all bots, select individual bots or turn access off.
- Name the service or connected account in your chat request. For example: “Use GitHub to list my open issues.”
- Start with a read-only task and check the returned result.
Connecting an account and giving a bot access are separate steps. If you have several accounts for one service, name the account you want the bot to use. Signing in to Dotobot with Google does not connect your Google Workspace tools.
Questions and approvals
Your server’s action-review settings determine which actions can run automatically and when a bot asks for approval. Read the action or question in its conversation before answering. Tell the bot about limits such as “draft this for review” or “read only” in your request.
If a bot cannot use a plugin, check its connection status, the bot’s access and whether your request names that service. Reconnect an expired or revoked account in Plugins.
Talk to your bots
Voice needs a supported provider configured for your server or bot. To use ElevenLabs, open Providers, connect your ElevenLabs API key and choose a voice from your library. Select ElevenLabs in your voice settings; connecting the key alone does not select it.
Review the named provider and audio-sharing information when the app asks for consent, then allow microphone access to start the call. With ElevenLabs, audio goes directly between your device and ElevenLabs; transcripts and your bot’s replies also pass through your server and selected AI provider.
With ElevenLabs, your bot keeps its existing AI model and tools. Voice usage is billed separately by your provider. Ending a call stops recording and playback; work the bot has already accepted can continue on your server.
If the selected voice is unavailable, check the provider key, usage allowance and voice selection in settings before calling again.
Your account and data
Manage a website subscription in Account → Subscription. If you subscribed through Apple, manage it in your Apple ID subscription settings. Cancelling keeps app access until the end of your paid period and does not stop your self-hosted server.
Your server holds your chats, files and bot memory. The services you select receive the information needed for their work. Dotobot’s account service stores your account details and saved server connections, including encrypted access keys. Connection sync is not end-to-end encrypted.
Notifications, message reports and connected Google Workspace accounts also involve Dotobot’s account service. Read the privacy policy for the data each feature shares and stores.
Removing a saved server or deleting your Dotobot account does not erase your self-hosted server, bots or files. Account deletion cancels a website subscription; cancel an Apple subscription separately. Rotate your server’s linking key if you need to revoke access from devices that already saved it.
Updates and backups
Back up your data
Back up the installation directory and the Docker volumes that contain bot data.
The default installation directory is ~/.local/share/dotobot. Bot homes and the shared workspace use Docker volumes.
If you set DOTOBOT_HOME, use that directory for your backup. Use the same value for later commands.
Update the server
- Make a backup before an update.
- Run this command on the server.
- Wait until the update is complete.
- Open the app and check the server connection.
curl -fsSL https://dotobot.com/install.sh | bash -s -- --updateThe server and native apps update separately. Keep both up to date; downloading a new app does not update your server. Closing the app does not stop the server.
Remove the server software
This command removes the installation and keeps your data:
curl -fsSL https://dotobot.com/install.sh | bash -s -- --uninstallThe command does not remove Docker or other services.
Troubleshooting
The installer cannot connect to Docker
Start Docker. On Mac, open Docker Desktop and complete its setup. Run the installer again.
The app cannot connect to the server
- Make sure that the server and Docker are running.
- Check that your device can reach the server address.
- For a remote server, check the firewall ports and domain records.
- If you changed the server key, select Relink in the app. Paste the new link code.
The installer stops with an error
Read setup.log in the installation directory. The log contains installer diagnostics.
Your subscription is missing
Use the same Dotobot account and sign-in method used for the purchase. This also applies to Sign in with Apple and Hide My Email. For an App Store purchase, use Restore purchases in the app.
A new setting or plugin is missing
Check for updates to both your app and server. If a connection still fails, open Providers or Plugins and review its status. A connected account also needs to be enabled for the bot you are using.
For more help, email [email protected]. Describe the step that failed and the error message.
Do not send passwords, link codes, server keys, or AI credentials.