%PDF-1.4 %âãÏÓ 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Count 15 /Kids [5 0 R 7 0 R 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R 21 0 R 23 0 R 25 0 R 27 0 R 29 0 R 31 0 R 33 0 R] >> endobj 3 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Helvetica >> endobj 4 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Helvetica-Bold >> endobj 5 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595.28 841.89] /Resources << /Font << /F1 3 0 R /F2 4 0 R >> >> /Contents 6 0 R >> endobj 6 0 obj << /Length 5061 >> stream BT /F2 22 Tf 0.06 0.08 0.12 rg 1 0 0 1 46 789.89 Tm (OpenBot - Turning My Linux Server into an) Tj ET BT /F2 22 Tf 0.06 0.08 0.12 rg 1 0 0 1 46 762.89 Tm (Always-on AI Workspace) Tj ET BT /F2 11 Tf 0.72 0.14 0.18 rg 1 0 0 1 46 725.89 Tm (TechRounder PDF Edition) Tj ET BT /F1 9.5 Tf 0.36 0.39 0.46 rg 1 0 0 1 46 709.89 Tm (Live article:) Tj ET BT /F1 9.5 Tf 0.36 0.39 0.46 rg 1 0 0 1 46 697.39 Tm (https://www.techrounder.com/docker-container/openbot-turning-my-linux-server-into-an-always-on-ai-workspace/) Tj ET q 0.82 0.85 0.9 RG 1 w 46 678.89 m 549.28 678.89 l S Q BT /F1 10 Tf 0.24 0.27 0.32 rg 1 0 0 1 46 666.89 Tm (By Vipin PG | Published October 6, 2026 | Updated October 6, 2026 | Format: Deep Dive | 16 min read) Tj ET BT /F2 13 Tf 0.72 0.14 0.18 rg 1 0 0 1 46 643.89 Tm (In brief) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 623.89 Tm (I wanted an AI agent that could keep working while my main computer was off. Grok Bot and OpenAI's) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 608.89 Tm (ChatGPT dots offered the kind of persistent-agent experience I had in mind: agents with context, tools) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 593.89 Tm (and their own computers, able to handle tasks over time.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 568.89 Tm (I wanted an AI agent that could keep working while my main computer was off. Grok Bot and OpenAI's) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 553.89 Tm (ChatGPT dots offered the kind of persistent-agent experience I had in mind: agents with context, tools) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 538.89 Tm (and their own computers, able to handle tasks over time. I wanted to run the agent host on hardware I) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 523.89 Tm (control.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 501.89 Tm (That led me to OpenBot, a local-first multi-agent workspace from Nightly Labs. I installed it on an) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 486.89 Tm (always-on Linux machine, updated it to version 0.30.0, and spent time working through its providers,) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 471.89 Tm (routines, browser and remote-access features.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 449.89 Tm (OpenBot gives agents powered by Codex, Claude Code, Grok, Gemini, OpenCode, Cursor and other) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 434.89 Tm (compatible runtimes a persistent place to work. Each has its own workspace, conversations, queue) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 419.89 Tm (and settings. I can choose a different provider for each agent and manage them in the same) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 404.89 Tm (environment.) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 376.89 Tm (Why I chose an always-on host) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 352.89 Tm (I already used the Linux machine for development and AI tooling. I wanted it to become a permanent) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 337.89 Tm (agent host, with persistent project files and specialized agents I could reach from another computer or) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 322.89 Tm (my phone.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 300.89 Tm (My requirements were practical:) Tj ET BT /F1 10.5 Tf 0.2 0.23 0.28 rg 1 0 0 1 46 278.89 Tm (- Keep the agent environment on my own hardware.) Tj ET BT /F1 10.5 Tf 0.2 0.23 0.28 rg 1 0 0 1 46 262.09 Tm (- Use existing AI subscriptions and provider CLIs.) Tj ET BT /F1 10.5 Tf 0.2 0.23 0.28 rg 1 0 0 1 46 245.29 Tm (- Give specialized agents their own workspaces and let them communicate.) Tj ET BT /F1 10.5 Tf 0.2 0.23 0.28 rg 1 0 0 1 46 228.49 Tm (- Let agents run commands, use a browser and work with files.) Tj ET BT /F1 10.5 Tf 0.2 0.23 0.28 rg 1 0 0 1 46 211.69 Tm (- Schedule recurring tasks and keep them running when my main computer is off.) Tj ET BT /F1 10.5 Tf 0.2 0.23 0.28 rg 1 0 0 1 46 194.89 Tm (- Access the host from other computers and mobile devices.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 178.09 Tm (Grok Bot and ChatGPT dots rely heavily on infrastructure their vendors operate. With OpenBot, the) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 163.09 Tm (machine running the application is the primary host. My everyday computers can sleep, restart or) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 148.09 Tm (move between networks while the Linux machine keeps working.) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 124.09 Tm (Desktop / Laptop / Phone) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 107.215 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 90.34 Tm (v) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 73.465 Tm (OpenBot remote client) Tj ET q 0.86 0.88 0.92 RG 1 w 46 42 m 549.28 42 l S Q BT /F1 8.4 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 30 Tm (TechRounder | Page 1 of 15) Tj ET BT /F1 7.2 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 19 Tm (https://www.techrounder.com/pdf/blog/openbot-turning-my-linux-server-into-an-always-on-ai-workspace.pdf) Tj ET endstream endobj 7 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595.28 841.89] /Resources << /Font << /F1 3 0 R /F2 4 0 R >> >> /Contents 8 0 R >> endobj 8 0 obj << /Length 3967 >> stream BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 789.89 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 773.015 Tm (v) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 756.14 Tm (Always-on Linux host) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 739.265 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 722.39 Tm (+-- OpenBot) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 705.515 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 688.64 Tm (+-- AI provider runtimes) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 671.765 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 654.89 Tm (+-- agent workspaces) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 638.015 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 621.14 Tm (+-- browser) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 604.265 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 587.39 Tm (+-- scheduled routines) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 570.515 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 553.64 Tm (+-- project files) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 529.14 Tm (What OpenBot manages) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 505.14 Tm (OpenBot has no large language model of its own. It provides a persistent workspace and orchestration) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 490.14 Tm (layer for agent runtimes such as Codex and Claude Code, which connect to their respective AI) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 475.14 Tm (providers.) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 451.14 Tm (User) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 434.265 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 417.39 Tm (v) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 400.515 Tm (OpenBot) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 383.64 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 366.765 Tm (+-- Agent A -- Codex -- OpenAI) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 349.89 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 333.015 Tm (+-- Agent B -- Claude Code -- Anthropic) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 316.14 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 299.265 Tm (+-- Agent C -- Gemini / Antigravity -- Google) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 282.39 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 265.515 Tm (+-- Agent D -- Grok CLI -- xAI) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 248.64 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 231.765 Tm (+-- Agent E -- OpenCode -- configured provider) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 214.89 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 198.015 Tm (+-- Agent F -- custom ACP agent) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 181.14 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 164.265 Tm (+-- Agent G -- local OpenAI-compatible model) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 145.765 Tm (It manages agent identities and instructions, workspaces, conversation state and message queues. It) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 130.765 Tm (also handles browser sessions, file transfers, scheduled routines, communication between agents,) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 115.765 Tm (remote access, skills, MCP connections, usage information and server management.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 93.765 Tm (This is why it appealed to me: choosing the workspace does not commit me to one model vendor.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 78.765 Tm (Improvements to Codex or Claude Code can also make the corresponding OpenBot agent more capable.) Tj ET q 0.86 0.88 0.92 RG 1 w 46 42 m 549.28 42 l S Q BT /F1 8.4 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 30 Tm (TechRounder | Page 2 of 15) Tj ET BT /F1 7.2 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 19 Tm (https://www.techrounder.com/pdf/blog/openbot-turning-my-linux-server-into-an-always-on-ai-workspace.pdf) Tj ET endstream endobj 9 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595.28 841.89] /Resources << /Font << /F1 3 0 R /F2 4 0 R >> >> /Contents 10 0 R >> endobj 10 0 obj << /Length 4411 >> stream BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 789.89 Tm (The license needs a closer look) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 765.89 Tm (I initially approached OpenBot as a free, open-source alternative to Grok Bot and ChatGPT dots. The) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 750.89 Tm (project has used that description in some public material, but current releases use the PolyForm) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 735.89 Tm (Noncommercial License 1.0.0.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 713.89 Tm (The license lets you inspect and modify the source and use it for permitted noncommercial purposes.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 698.89 Tm (Commercial use requires a separate license from the copyright holder. Versions up to and including) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 683.89 Tm (0.1.11 remain available under Apache-2.0.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 661.89 Tm (For modern releases, the precise description is free, source-available and self-hostable for) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 646.89 Tm (noncommercial use. It is not open source in the strict OSI sense. That still fits my personal agent setup,) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 631.89 Tm (but anyone planning commercial use or redistribution needs to account for the license.) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 603.89 Tm (Installing the headless Linux server) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 579.89 Tm (Version 0.29.0 introduced official headless Linux installation. For Ubuntu 24.04 on x86-64 or ARM64,) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 564.89 Tm (the official installation command is:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 540.89 Tm (curl -fsSL https://raw.githubusercontent.com/nightly-labs/openbot/main/scripts/install-server.sh | sudo bash) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 522.39 Tm (Then associate the server with an OpenBot account:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 498.39 Tm (sudo openbot login) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 479.89 Tm (The login uses an email verification code, so there is no password to include in the command. Once) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 464.89 Tm (authenticated, the machine appears as an OpenBot server in supported clients.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 442.89 Tm (The installer sets up a service environment and runs OpenBot in server mode. It places the application) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 427.89 Tm (under:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 403.89 Tm (/opt/OpenBot) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 385.39 Tm (The service uses a virtual X display through Xvfb, allowing the machine to run without a physical) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 370.39 Tm (display attached.) Tj ET BT /F2 13 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 342.39 Tm (Server commands I keep handy) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 320.39 Tm (To see the installed version, account state, server status and whether an update has been staged:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 296.39 Tm (openbot status) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 277.89 Tm (To check the version alone:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 253.89 Tm (openbot version) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 235.39 Tm (To inspect logs:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 211.39 Tm (openbot logs) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 192.89 Tm (To follow them continuously:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 168.89 Tm (openbot logs -f) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 150.39 Tm (To control the service:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 126.39 Tm (sudo openbot start) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 109.515 Tm (sudo openbot stop) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 92.64 Tm (sudo openbot restart) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 74.14 Tm (To update the installation:) Tj ET q 0.86 0.88 0.92 RG 1 w 46 42 m 549.28 42 l S Q BT /F1 8.4 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 30 Tm (TechRounder | Page 3 of 15) Tj ET BT /F1 7.2 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 19 Tm (https://www.techrounder.com/pdf/blog/openbot-turning-my-linux-server-into-an-always-on-ai-workspace.pdf) Tj ET endstream endobj 11 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595.28 841.89] /Resources << /Font << /F1 3 0 R /F2 4 0 R >> >> /Contents 12 0 R >> endobj 12 0 obj << /Length 4386 >> stream BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 789.89 Tm (sudo openbot update) Tj ET BT /F2 13 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 765.39 Tm (My update to 0.30.0) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 743.39 Tm (OpenBot 0.30.0 was released on October 5, 2026, soon after my initial setup. It added an official) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 728.39 Tm (Docker image and several agent-management features, building on the headless server support) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 713.39 Tm (introduced in 0.29.0.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 691.39 Tm (I updated my native installation using the supported command:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 667.39 Tm (sudo openbot update) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 648.89 Tm (OpenBot downloads and validates the release, stages it, stops the service, applies the update and starts) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 633.89 Tm (the server again. The service user's home directory is preserved, so workspaces, application data) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 618.89 Tm (and server identity survive upgrades and application reinstalls.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 596.89 Tm (OpenBot also refuses to downgrade over a newer database. A release may migrate the database to a) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 581.89 Tm (format that an older version cannot read.) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 553.89 Tm (Running OpenBot in Docker) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 529.89 Tm (Although I started with the native Linux server, the official Docker image introduced in 0.30.0 interests) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 514.89 Tm (me because it provides an additional boundary between agents and the host operating system.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 492.89 Tm (The image is:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 468.89 Tm (ghcr.io/nightly-labs/openbot) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 450.39 Tm (It is available for both architectures:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 426.39 Tm (linux/amd64) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 409.515 Tm (linux/arm64) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 391.015 Tm (The official Docker Compose setup is:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 367.015 Tm (curl -fsSLO https://raw.githubusercontent.com/nightly-labs/openbot/main/docker/compose.yaml) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 350.14 Tm (curl -fsSLO https://raw.githubusercontent.com/nightly-labs/openbot/main/docker/seccomp.json) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 333.265 Tm (docker compose up -d) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 316.39 Tm (docker compose exec openbot openbot login) Tj ET BT /F2 13 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 291.89 Tm (Connections and ports) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 269.89 Tm (The container does not expose a conventional web application port. It makes outbound connections to) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 254.89 Tm (OpenBot account services and AI providers, uses the Signal service for connection setup, and uses) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 239.89 Tm (TURN relays when needed.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 217.89 Tm (The internal Team API listens only on this address inside the container:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 193.89 Tm (127.0.0.1) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 175.39 Tm (There is normally no need to expose an OpenBot application port directly to the internet. This takes) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 160.39 Tm (some adjustment if you usually run self-hosted applications behind a reverse proxy.) Tj ET BT /F2 13 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 132.39 Tm (Persistent data and updates) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 110.39 Tm (The official container stores persistent data under:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 86.39 Tm (/data) Tj ET q 0.86 0.88 0.92 RG 1 w 46 42 m 549.28 42 l S Q BT /F1 8.4 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 30 Tm (TechRounder | Page 4 of 15) Tj ET BT /F1 7.2 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 19 Tm (https://www.techrounder.com/pdf/blog/openbot-turning-my-linux-server-into-an-always-on-ai-workspace.pdf) Tj ET endstream endobj 13 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595.28 841.89] /Resources << /Font << /F1 3 0 R /F2 4 0 R >> >> /Contents 14 0 R >> endobj 14 0 obj << /Length 4475 >> stream BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 789.89 Tm (The recommended volume mapping is:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 765.89 Tm (-v openbot-data:/data) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 747.39 Tm (That volume includes:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 723.39 Tm (/data/.config/OpenBot) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 706.515 Tm (/data/OpenBot) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 689.64 Tm (/data/.local/share/keyrings) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 671.14 Tm (It can also hold provider login state, including Codex and Claude configuration. I would treat the whole) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 656.14 Tm (data directory like a user's home folder: it may contain conversations, account sessions, browser) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 641.14 Tm (data, provider credentials and agent workspaces.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 619.14 Tm (The native server can update itself; the Docker build requires a new image and a recreated container:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 595.14 Tm (docker compose pull) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 578.265 Tm (docker compose up -d) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 559.765 Tm (Keeping the same persistent volume lets the new container resume with the existing OpenBot state.) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 531.765 Tm (Giving each agent a place to work) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 507.765 Tm (Each OpenBot agent has its own workspace and state. A typical directory looks like this:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 483.765 Tm (~/OpenBot/Agents/) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 465.265 Tm (Agents can deliberately share files through:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 441.265 Tm (~/OpenBot/Shared) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 422.765 Tm (I can assign separate responsibilities to agents such as:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 398.765 Tm (Developer) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 381.89 Tm (Researcher) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 365.015 Tm (DevOps) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 348.14 Tm (Security Reviewer) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 331.265 Tm (Content Writer) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 314.39 Tm (QA Agent) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 297.515 Tm (Project Coordinator) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 279.015 Tm (Each can have its own model, provider, reasoning setting and instructions, along with its workspace,) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 264.015 Tm (browser state, notifications, skills, routines and conversation history. That lets me keep projects and) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 249.015 Tm (responsibilities separate while retaining the context each agent needs.) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 221.015 Tm (Providers and local models) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 197.015 Tm (OpenBot 0.30 supports several agent runtimes:) Tj ET BT /F1 10.5 Tf 0.2 0.23 0.28 rg 1 0 0 1 46 175.015 Tm (- Codex uses the local Codex App Server and can work with an existing ChatGPT/Codex login.) Tj ET BT /F1 10.5 Tf 0.2 0.23 0.28 rg 1 0 0 1 46 158.215 Tm (- Claude Code supports existing local Claude authentication.) Tj ET BT /F1 10.5 Tf 0.2 0.23 0.28 rg 1 0 0 1 46 141.415 Tm (- Grok CLI can authenticate through its CLI login or an xAI API key.) Tj ET BT /F1 10.5 Tf 0.2 0.23 0.28 rg 1 0 0 1 46 124.615 Tm (- OpenCode supports its free models and OpenCode Go configuration, and OpenBot can manage the runtime.) Tj ET BT /F1 10.5 Tf 0.2 0.23 0.28 rg 1 0 0 1 46 107.815 Tm (- Gemini uses Google's Antigravity ACP server. OpenBot can download and manage the compatible runtime.) Tj ET BT /F1 10.5 Tf 0.2 0.23 0.28 rg 1 0 0 1 46 91.015 Tm (- Cursor works through the Cursor agent CLI and ACP interface.) Tj ET BT /F1 10.5 Tf 0.2 0.23 0.28 rg 1 0 0 1 46 74.215 Tm (- Cline has also been added as a supported provider.) Tj ET q 0.86 0.88 0.92 RG 1 w 46 42 m 549.28 42 l S Q BT /F1 8.4 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 30 Tm (TechRounder | Page 5 of 15) Tj ET BT /F1 7.2 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 19 Tm (https://www.techrounder.com/pdf/blog/openbot-turning-my-linux-server-into-an-always-on-ai-workspace.pdf) Tj ET endstream endobj 15 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595.28 841.89] /Resources << /Font << /F1 3 0 R /F2 4 0 R >> >> /Contents 16 0 R >> endobj 16 0 obj << /Length 4266 >> stream BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 789.89 Tm (OpenBot can connect to arbitrary OpenAI-compatible endpoints, which is useful if you already run an AI) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 774.89 Tm (gateway or local inference server. It can also detect local model servers such as:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 750.89 Tm (Ollama) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 734.015 Tm (LM Studio) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 715.515 Tm (This allows at least some agents to use local inference.) Tj ET BT /F2 13 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 687.515 Tm (Managing provider CLIs) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 665.515 Tm (For supported providers, OpenBot can download a managed CLI runtime and check for new versions) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 650.515 Tm (at startup and periodically while running. The application and its provider runtimes can update) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 635.515 Tm (independently.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 613.515 Tm (It can also use a CLI you maintain yourself. These environment variables override provider executable) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 598.515 Tm (locations:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 574.515 Tm (OPENBOT_CODEX_PATH) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 557.64 Tm (OPENBOT_CLAUDE_PATH) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 540.765 Tm (OPENBOT_GROK_PATH) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 523.89 Tm (OPENBOT_OPENCODE_PATH) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 507.015 Tm (OPENBOT_CURSOR_PATH) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 490.14 Tm (OPENBOT_CLINE_PATH) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 473.265 Tm (OPENBOT_ANTIGRAVITY_PATH) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 454.765 Tm (That suited my Linux host, which already had command-line AI and development tools installed.) Tj ET BT /F2 13 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 426.765 Tm (Custom ACP agents) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 404.765 Tm (OpenBot supports external agents that implement the Agent Client Protocol, or ACP. Compatible agents) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 389.765 Tm (can become additional providers, extending the application beyond its built-in integrations.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 367.765 Tm (Version 0.30.0 improved support for custom agents organized by directory. It can run separate agent) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 352.765 Tm (processes for separate folders and keep their model lists distinct. This is useful if you experiment) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 337.765 Tm (with custom routing stacks, local models or alternative agent harnesses.) Tj ET BT /F2 13 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 309.765 Tm (Switching providers) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 287.765 Tm (An agent can change providers while keeping its identity, workspace and OpenBot conversation. For) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 272.765 Tm (example, I could start with:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 248.765 Tm (Developer) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 231.89 Tm (Provider: Codex) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 213.39 Tm (Then switch to:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 189.39 Tm (Developer) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 172.515 Tm (Provider: Claude Code) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 154.015 Tm (Version 0.30.0 improved the handoff by passing work-state information to the new provider. This can) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 139.015 Tm (include executed commands, the end of command output, changed file paths, tool activity, searches and) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 124.015 Tm (progress notes. Known secrets are filtered before the handoff.) Tj ET q 0.86 0.88 0.92 RG 1 w 46 42 m 549.28 42 l S Q BT /F1 8.4 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 30 Tm (TechRounder | Page 6 of 15) Tj ET BT /F1 7.2 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 19 Tm (https://www.techrounder.com/pdf/blog/openbot-turning-my-linux-server-into-an-always-on-ai-workspace.pdf) Tj ET endstream endobj 17 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595.28 841.89] /Resources << /Font << /F1 3 0 R /F2 4 0 R >> >> /Contents 18 0 R >> endobj 18 0 obj << /Length 3846 >> stream BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 789.89 Tm (For longer conversations, OpenBot monitors context usage per agent and can compact the conversation) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 774.89 Tm (before the model runs out of context. That helps when an agent is intended to stay active for weeks or) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 759.89 Tm (months.) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 731.89 Tm (Task queues and communication) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 707.89 Tm (Agents have persistent FIFO task queues. When an agent is busy, additional instructions can wait. Queue) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 692.89 Tm (controls include:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 668.89 Tm (paused) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 652.015 Tm (resumed) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 635.14 Tm (cancelled) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 616.64 Tm (Queue state survives crashes and restarts, so pending work is not automatically lost. I can give an) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 601.64 Tm (agent more work while it is still handling the current task.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 579.64 Tm (Agents can also communicate directly, exchanging messages, replies, reactions, images and files. A) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 564.64 Tm (possible handoff sequence is:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 540.64 Tm (Researcher) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 523.765 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 506.89 Tm (v) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 490.015 Tm (Developer) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 473.14 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 456.265 Tm (v) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 439.39 Tm (Security Reviewer) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 422.515 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 405.64 Tm (v) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 388.765 Tm (QA Agent) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 370.265 Tm (A message can supply context without starting a new model turn on the receiving agent. That is useful) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 355.265 Tm (when the recipient needs information but has no new work to do.) Tj ET BT /F2 13 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 327.265 Tm (Channels) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 305.265 Tm (A channel is a shared conversation involving several agents, for example:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 281.265 Tm (#website-project) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 264.39 Tm (Researcher) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 247.515 Tm (Developer) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 230.64 Tm (Security Reviewer) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 213.765 Tm (Content Writer) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 195.265 Tm (One agent can own the current task while others participate through delegation and handoffs. Channel) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 180.265 Tm (controls include:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 156.265 Tm (Stop) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 139.39 Tm (Resume) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 122.515 Tm (Reassign) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 105.64 Tm (Archive) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 88.765 Tm (Restore) Tj ET q 0.86 0.88 0.92 RG 1 w 46 42 m 549.28 42 l S Q BT /F1 8.4 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 30 Tm (TechRounder | Page 7 of 15) Tj ET BT /F1 7.2 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 19 Tm (https://www.techrounder.com/pdf/blog/openbot-turning-my-linux-server-into-an-always-on-ai-workspace.pdf) Tj ET endstream endobj 19 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595.28 841.89] /Resources << /Font << /F1 3 0 R /F2 4 0 R >> >> /Contents 20 0 R >> endobj 20 0 obj << /Length 3829 >> stream BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 789.89 Tm (Channels can also have their own instructions, memory and routines.) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 761.89 Tm (Scheduled routines and local triggers) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 737.89 Tm (OpenBot calls scheduled tasks Routines. They let an agent wake up without a manual prompt, with runs) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 722.89 Tm (appearing in the same agent context. A routine might contain:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 698.89 Tm (Every morning:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 682.015 Tm (Check the project repository.) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 665.14 Tm (Review new issues.) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 648.265 Tm (Summarize anything requiring attention.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 629.765 Tm (Or a weekly instruction:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 605.765 Tm (Every Sunday:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 588.89 Tm (Inspect dependency updates.) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 572.015 Tm (Report potentially breaking changes.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 553.515 Tm (Version 0.29.0 added local script triggers. A script on the OpenBot computer can trigger a routine and) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 538.515 Tm (provide a payload, allowing workflows such as:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 514.515 Tm (CI process finishes) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 497.64 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 480.765 Tm (v) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 463.89 Tm (Local shell script) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 447.015 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 430.14 Tm (v) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 413.265 Tm (OpenBot routine) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 396.39 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 379.515 Tm (v) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 362.64 Tm (Developer agent) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 345.765 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 328.89 Tm (v) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 312.015 Tm (Inspect build result) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 293.515 Tm (The Local scripts option is disabled by default and must be enabled for the relevant agent. On an) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 278.515 Tm (always-on Linux host, this lets operating-system automation wake an agent when an event needs) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 263.515 Tm (attention.) Tj ET BT /F2 13 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 235.515 Tm (Handling provider limits) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 213.515 Tm (Several agents sharing a Claude or Codex account can reach its usage limit. OpenBot 0.30 can show) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 198.515 Tm (that the account is limited, identify waiting agents and display a reset time when the provider supplies) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 183.515 Tm (one.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 161.515 Tm (Routines can either:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 137.515 Tm (wait until the account resets) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 119.015 Tm (Or:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 95.015 Tm (skip that scheduled run) Tj ET q 0.86 0.88 0.92 RG 1 w 46 42 m 549.28 42 l S Q BT /F1 8.4 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 30 Tm (TechRounder | Page 8 of 15) Tj ET BT /F1 7.2 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 19 Tm (https://www.techrounder.com/pdf/blog/openbot-turning-my-linux-server-into-an-always-on-ai-workspace.pdf) Tj ET endstream endobj 21 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595.28 841.89] /Resources << /Font << /F1 3 0 R /F2 4 0 R >> >> /Contents 22 0 R >> endobj 22 0 obj << /Length 4831 >> stream BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 789.89 Tm (Waiting is the default. A temporary quota limit can delay a scheduled task without making it fail) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 774.89 Tm (permanently.) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 746.89 Tm (Browser access and 1Password) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 722.89 Tm (OpenBot has a persistent embedded browser. Agents can open and inspect websites, navigate, click) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 707.89 Tm (controls, fill forms, download files and carry out browser workflows. Browser state can persist) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 692.89 Tm (between tasks, including cookies and authenticated sessions, so it needs to be treated as sensitive data.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 670.89 Tm (Version 0.30.0 added direct 1Password integration. OpenBot can create a restricted vault named:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 646.89 Tm (Shared with OpenBot) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 628.39 Tm (Credentials deliberately placed in that vault can be used for website logins. The browser can fill) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 613.39 Tm (usernames, passwords and authenticator/TOTP codes without the agent needing to see the password) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 598.39 Tm (or authenticator secret. I prefer that to pasting credentials into a conversation.) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 570.39 Tm (Computer Use and remote desktop) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 546.39 Tm (The optional Computer Use driver lets an agent control graphical applications as well as work with) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 531.39 Tm (files and shell commands. It supports:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 507.39 Tm (macOS) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 490.515 Tm (Windows) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 473.64 Tm (Linux) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 455.14 Tm (The driver launches when needed and stops with OpenBot. On macOS, it requires Screen Recording) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 440.14 Tm (and Accessibility permissions; Windows and Linux do not use that macOS permission system.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 418.14 Tm (Computer Use can be disabled per agent. I would leave it disabled for a research agent that only needs) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 403.14 Tm (browser access and enable it for an agent whose work requires desktop control.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 381.14 Tm (Remote desktop lets a human observe and control the host remotely. It uses Sunshine and Moonlight) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 366.14 Tm (Web components. On Linux, it currently works with x64/X11 environments. Wayland is unsupported,) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 351.14 Tm (and the ARM64 AppImage does not include the same remote desktop runtime.) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 323.14 Tm (Connecting from another device) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 299.14 Tm (I can reach the host through the OpenBot desktop application, mobile application or browser client. The) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 284.14 Tm (browser client is available through OpenBot's web application, so I do not need to expose a local web) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 269.14 Tm (panel directly to the internet.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 247.14 Tm (Host/client communication uses WebRTC. Where possible, the encrypted connection is direct:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 223.14 Tm (Remote client) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 206.265 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 189.39 Tm (| encrypted WebRTC) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 172.515 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 155.64 Tm (v) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 138.765 Tm (OpenBot host) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 120.265 Tm (If NAT or firewall conditions prevent a direct connection, a TURN relay can carry it. OpenBot's Signal) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 105.265 Tm (service coordinates connection setup. This arrangement normally avoids the need for incoming port) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 90.265 Tm (forwarding.) Tj ET q 0.86 0.88 0.92 RG 1 w 46 42 m 549.28 42 l S Q BT /F1 8.4 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 30 Tm (TechRounder | Page 9 of 15) Tj ET BT /F1 7.2 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 19 Tm (https://www.techrounder.com/pdf/blog/openbot-turning-my-linux-server-into-an-always-on-ai-workspace.pdf) Tj ET endstream endobj 23 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595.28 841.89] /Resources << /Font << /F1 3 0 R /F2 4 0 R >> >> /Contents 24 0 R >> endobj 24 0 obj << /Length 4550 >> stream BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 789.89 Tm (According to the project's privacy documentation, the central service does not relay or store normal) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 774.89 Tm (chats, files, commands or remote desktop media as application data.) Tj ET BT /F2 13 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 746.89 Tm (Mobile access and accounts) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 724.89 Tm (The phone is a client; the host runs the agent:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 700.89 Tm (Phone) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 684.015 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 667.14 Tm (v) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 650.265 Tm (Encrypted remote connection) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 633.39 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 616.515 Tm (v) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 599.64 Tm (OpenBot server) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 582.765 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 565.89 Tm (v) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 549.015 Tm (AI provider) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 530.515 Tm (That fits my setup: the Linux machine does the work, and I can check on it from another device.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 515.515 Tm (Version 0.30 expanded the iPhone client's server features, including access to server routines and) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 500.515 Tm (per-server usage information.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 478.515 Tm (An OpenBot account is optional for use entirely on one computer. It becomes relevant for remote) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 463.515 Tm (connections, joined servers, mobile access, team membership and some server integrations.) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 435.515 Tm (Skills, Marketplace and integrations) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 411.515 Tm (Skills package task-specific instructions and procedures for reuse. I can keep specialized instructions) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 396.515 Tm (in separate skills and attach the relevant ones when needed. OpenBot can expose operations for agents) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 381.515 Tm (to:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 357.515 Tm (list skills) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 340.64 Tm (read skills) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 323.765 Tm (create skills) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 306.89 Tm (revise skills) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 290.015 Tm (install skills) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 271.515 Tm (The Marketplace contains Agents, Skills and Plugins. Its launch catalog includes prebuilt agents and) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 256.515 Tm (skills for development, research, security, operations, project management and content work.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 241.515 Tm (Installing a Marketplace agent imports a reusable configuration or template; it does not copy the) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 226.515 Tm (creator's private conversation history or workspace files.) Tj ET BT /F2 13 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 198.515 Tm (MCP and GitHub) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 176.515 Tm (Agents can use local or remote MCP servers to work with external systems. This lets integrations) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 161.515 Tm (operate outside the OpenBot application itself. OpenBot stores the MCP credentials it handles through) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 146.515 Tm (operating-system secret storage and masks sensitive values in diagnostic output.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 124.515 Tm (Version 0.30 added contextual connector suggestions. If an agent needs GitHub and the connection has) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 109.515 Tm (not been configured, OpenBot can show a connection card in the conversation, helping the user set up) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 94.515 Tm (the missing integration.) Tj ET q 0.86 0.88 0.92 RG 1 w 46 42 m 549.28 42 l S Q BT /F1 8.4 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 30 Tm (TechRounder | Page 10 of 15) Tj ET BT /F1 7.2 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 19 Tm (https://www.techrounder.com/pdf/blog/openbot-turning-my-linux-server-into-an-always-on-ai-workspace.pdf) Tj ET endstream endobj 25 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595.28 841.89] /Resources << /Font << /F1 3 0 R /F2 4 0 R >> >> /Contents 26 0 R >> endobj 26 0 obj << /Length 4122 >> stream BT /F2 13 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 789.89 Tm (Slack) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 767.89 Tm (Connecting Slack creates a Slack Orchestrator agent. It can route a request such as:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 743.89 Tm (@OpenBot investigate this issue) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 725.39 Tm (To the appropriate agent:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 701.39 Tm (Slack) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 684.515 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 667.64 Tm (v) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 650.765 Tm (OpenBot Slack Orchestrator) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 633.89 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 617.015 Tm (+-- Researcher) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 600.14 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 583.265 Tm (+-- Developer) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 566.39 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 549.515 Tm (+-- DevOps) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 532.64 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 515.765 Tm (+-- Security Agent) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 497.265 Tm (Responses return to the originating Slack conversation. Other users can work with the internal agent) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 482.265 Tm (team through Slack without opening the OpenBot interface.) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 454.265 Tm (Shared data, transfers and attachments) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 430.265 Tm (OpenBot provides a shared SQLite database for structured agent records:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 406.265 Tm (~/OpenBot/Shared/Data/agent-data.db) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 387.765 Tm (It can hold research findings, server inventories, content queues, issue tracking, project state,) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 372.765 Tm (monitoring observations and task history. Those records can be more precise than information kept in) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 357.765 Tm (free-form conversation history.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 335.765 Tm (OpenBot also tracks files transferred between agents. Transfer records can contain the owner,) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 320.765 Tm (recipient, file size and SHA-256 information. Managed transfers live in the OpenBot Shared area.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 298.765 Tm (Chat attachments include MP3 audio and MOV video. The documented limits are:) Tj ET BT /F1 10.5 Tf 0.2 0.23 0.28 rg 1 0 0 1 46 276.765 Tm (- 100 MB per file.) Tj ET BT /F1 10.5 Tf 0.2 0.23 0.28 rg 1 0 0 1 46 259.965 Tm (- 250 MB total per message.) Tj ET BT /F1 10.5 Tf 0.2 0.23 0.28 rg 1 0 0 1 46 243.165 Tm (- Up to 10 files per message.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 226.365 Tm (OpenBot gives the agent the original file. Whether it can analyze that file depends on the selected) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 211.365 Tm (agent's capabilities and tools.) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 183.365 Tm (Where data and credentials go) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 159.365 Tm (OpenBot keeps workspaces, conversations, attachments, browser state, queues and local team data on) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 144.365 Tm (the host. Cloud inference still sends prompts and relevant context to the selected provider:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 120.365 Tm (Codex - OpenAI) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 103.49 Tm (Claude Code - Anthropic) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 86.615 Tm (Grok - xAI) Tj ET q 0.86 0.88 0.92 RG 1 w 46 42 m 549.28 42 l S Q BT /F1 8.4 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 30 Tm (TechRounder | Page 11 of 15) Tj ET BT /F1 7.2 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 19 Tm (https://www.techrounder.com/pdf/blog/openbot-turning-my-linux-server-into-an-always-on-ai-workspace.pdf) Tj ET endstream endobj 27 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595.28 841.89] /Resources << /Font << /F1 3 0 R /F2 4 0 R >> >> /Contents 28 0 R >> endobj 28 0 obj << /Length 4740 >> stream BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 789.89 Tm (Gemini - Google) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 773.015 Tm (Cursor - Cursor) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 754.515 Tm (A local model running through a local compatible server can keep the inference path local. That) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 739.515 Tm (depends on the endpoint I choose.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 717.515 Tm (OpenBot generally uses the underlying provider tools' normal login mechanisms, including) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 702.515 Tm (configuration directories such as:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 678.515 Tm (~/.codex) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 661.64 Tm (~/.claude) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 643.14 Tm (It does not copy those credentials into its central account service. An OpenBot account and an) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 628.14 Tm (AI-provider account are separate.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 606.14 Tm (Local usage reporting can track token and activity counts, provider, model, timestamps, estimated cost) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 591.14 Tm (and internal turn/session identifiers. According to the project's privacy documentation, these analytics) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 576.14 Tm (records exclude message contents and provider credentials.) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 548.14 Tm (Permissions and isolation) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 524.14 Tm (The developers describe OpenBot as a development preview. Full Access agents can have broad) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 509.14 Tm (permissions, and the documentation explicitly refers to:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 485.14 Tm (danger-full-access) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 468.265 Tm (approvalPolicy: never) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 449.765 Tm (An agent may be able to read and modify files, execute programs, access the network and control the) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 434.765 Tm (embedded browser. I would be careful about giving untrusted prompts unrestricted access to a) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 419.765 Tm (machine containing personal or production data.) Tj ET BT /F2 13 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 391.765 Tm (Workspace only mode) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 369.765 Tm (Workspace only mode primarily limits writable locations to the agent's workspace, the OpenBot shared) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 354.765 Tm (folder and permitted temporary locations. Full Access remains the default for supported agents.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 332.765 Tm (Restrictions vary by provider and platform. Some providers cannot currently start in Workspace-only) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 317.765 Tm (mode on certain Windows and Linux configurations. I would give each agent the access its work) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 302.765 Tm (requires.) Tj ET BT /F2 13 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 274.765 Tm (Docker isolation) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 252.765 Tm (A container can let agents work with broad permissions inside it while limiting their access to the) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 237.765 Tm (physical host. Mounting sensitive host resources can undermine that boundary. I would avoid exposing) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 222.765 Tm (the Docker socket:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 198.765 Tm (/var/run/docker.sock) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 180.265 Tm (Code with access to that socket can control Docker itself, compromising the intended isolation. I would) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 165.265 Tm (also avoid unnecessarily mounting the host's entire home directory.) Tj ET BT /F2 13 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 137.265 Tm (Agents configuring other agents) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 115.265 Tm (OpenBot lets agents inspect or modify parts of another agent's setup, including its profile, model,) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 100.265 Tm (reasoning effort, skills, routines, Workspace-only restrictions and notification settings.) Tj ET q 0.86 0.88 0.92 RG 1 w 46 42 m 549.28 42 l S Q BT /F1 8.4 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 30 Tm (TechRounder | Page 12 of 15) Tj ET BT /F1 7.2 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 19 Tm (https://www.techrounder.com/pdf/blog/openbot-turning-my-linux-server-into-an-always-on-ai-workspace.pdf) Tj ET endstream endobj 29 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595.28 841.89] /Resources << /Font << /F1 3 0 R /F2 4 0 R >> >> /Contents 30 0 R >> endobj 30 0 obj << /Length 5093 >> stream BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 789.89 Tm (Some sensitive actions remain under human control. An agent cannot grant another agent Full Access,) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 774.89 Tm (enable Computer Use, change auto-approval policy or rewrite MCP configuration without the relevant) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 759.89 Tm (human-controlled permissions. This allows agents to help assemble a team while limiting their ability to) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 744.89 Tm (raise one another's privileges.) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 716.89 Tm (Moving from Grok Bot) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 692.89 Tm (OpenBot has an import workflow for existing Grok Bot agents. It can carry over the agent's name,) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 677.89 Tm (instructions, avatar, skills, routines and memories, along with optional workspace files.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 655.89 Tm (It does not directly copy the full conversation history. Important information can be retained as) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 640.89 Tm (memories, and workspace files go into an imported directory. That gives existing Grok Bot users a) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 625.89 Tm (migration path.) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 597.89 Tm (Choosing between OpenBot, Grok Bot and dots) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 573.89 Tm (The location of the agent computer is a practical difference between OpenBot and Grok Bot. Grok Bot) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 558.89 Tm (includes a vendor-operated cloud computer. OpenBot is built around a computer I control.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 536.89 Tm (With OpenBot, workspaces can remain on my machine, I can use several providers and existing AI) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 521.89 Tm (plans, and I can run local models. An always-on Linux host gives me direct access to the filesystem) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 506.89 Tm (and runtime. The software is free for permitted noncommercial use, but I am responsible for) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 491.89 Tm (maintaining the server. Grok Bot removes that responsibility for users who want its cloud computer.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 469.89 Tm (OpenAI calls its product dots. A dot is an always-on agent powered by GPT-6 Astra, with its own cloud) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 454.89 Tm (computer and access to OpenAI's plugin ecosystem. Like OpenBot, dots have persistent identities,) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 439.89 Tm (support long-running work and tool use, connect to external applications and can be reached through) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 424.89 Tm (multiple interfaces.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 402.89 Tm (Dots are an OpenAI-managed service. OpenBot lets me choose the provider for each agent, so I could) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 387.89 Tm (have a setup such as:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 363.89 Tm (Researcher - Claude) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 347.015 Tm (Developer - Codex) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 330.14 Tm (Fast assistant - Grok) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 313.265 Tm (Google workflow - Gemini) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 296.39 Tm (Local task - local model) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 279.515 Tm (Custom worker - ACP agent) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 261.015 Tm (Dots are simpler if I want OpenAI to operate the infrastructure and supply the model, cloud computer) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 246.015 Tm (and application ecosystem together. OpenBot fits my preference for owning the agent computer and) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 231.015 Tm (using multiple providers in one environment.) Tj ET BT /F2 15 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 203.015 Tm (Where OpenBot fits in my setup) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 179.015 Tm (After installing and testing it, I see OpenBot as the central host for my agents. This is the setup I am) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 164.015 Tm (aiming for:) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 140.015 Tm (ALWAYS-ON OPENBOT HOST) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 123.14 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 106.265 Tm (+-----------------+------------------+) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 89.39 Tm (| | |) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 72.515 Tm (v v v) Tj ET q 0.86 0.88 0.92 RG 1 w 46 42 m 549.28 42 l S Q BT /F1 8.4 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 30 Tm (TechRounder | Page 13 of 15) Tj ET BT /F1 7.2 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 19 Tm (https://www.techrounder.com/pdf/blog/openbot-turning-my-linux-server-into-an-always-on-ai-workspace.pdf) Tj ET endstream endobj 31 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595.28 841.89] /Resources << /Font << /F1 3 0 R /F2 4 0 R >> >> /Contents 32 0 R >> endobj 32 0 obj << /Length 4793 >> stream BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 789.89 Tm (Developer Researcher DevOps) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 773.015 Tm (| | |) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 756.14 Tm (Codex Claude ACP/CLI) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 739.265 Tm (| | |) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 722.39 Tm (+-----------------+------------------+) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 705.515 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 688.64 Tm (Shared files) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 671.765 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 654.89 Tm (Shared database) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 638.015 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 621.14 Tm (MCP) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 604.265 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 587.39 Tm (GitHub / Apps) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 570.515 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 553.64 Tm (Routines) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 536.765 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 519.89 Tm (Browser / Computer Use) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 503.015 Tm (|) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 486.14 Tm (+-----------------+----------------+) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 469.265 Tm (| | |) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 452.39 Tm (v v v) Tj ET BT /F1 9.5 Tf 0.18 0.2 0.24 rg 1 0 0 1 54 435.515 Tm (Desktop Browser Mobile) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 417.015 Tm (The features make sense together. Persistent workspaces give scheduled routines ongoing context.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 402.015 Tm (Remote access lets me use the always-on host from another device. Messaging, shared files and) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 387.015 Tm (structured data let agents using different providers collaborate, while MCP and browser control) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 372.015 Tm (extend the work they can do.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 350.015 Tm (The project is changing quickly, so I would not install it and expect to leave it unattended for years. I) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 335.015 Tm (would keep up with release notes, back up the database and watch provider CLI changes. Agent) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 320.015 Tm (permissions, browser credentials, Computer Use access, MCP integrations and exposed host) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 305.015 Tm (directories all need attention.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 283.015 Tm (I am comfortable with those responsibilities on an experimental agent machine. On a production server) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 268.015 Tm (with unrelated sensitive workloads, I would isolate OpenBot much more aggressively.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 246.015 Tm (OpenBot makes sense for someone who already runs an always-on PC, server or VPS, uses) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 231.015 Tm (coding-agent CLIs or several AI providers, and wants control over persistent workspaces. Existing) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 216.015 Tm (ChatGPT or Claude subscriptions, recurring tasks and remote access are further reasons to consider) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 201.015 Tm (it. Someone choosing a cloud agent specifically to avoid maintaining a computer will have less reason) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 186.015 Tm (to self-host.) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 164.015 Tm (For my personal, noncommercial setup, OpenBot gives the Linux machine a useful job: hosting agents) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 149.015 Tm (that keep their workspaces, accept queued tasks, run routines and remain reachable from other) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 134.015 Tm (devices. The development-preview status, permissions and license still need attention. What keeps me) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 119.015 Tm (interested is being able to use my existing subscriptions and hardware while choosing a provider for) Tj ET BT /F1 11 Tf 0.14 0.16 0.2 rg 1 0 0 1 46 104.015 Tm (each agent's work.) Tj ET BT /F2 13 Tf 0.08 0.1 0.14 rg 1 0 0 1 46 76.015 Tm (References) Tj ET q 0.86 0.88 0.92 RG 1 w 46 42 m 549.28 42 l S Q BT /F1 8.4 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 30 Tm (TechRounder | Page 14 of 15) Tj ET BT /F1 7.2 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 19 Tm (https://www.techrounder.com/pdf/blog/openbot-turning-my-linux-server-into-an-always-on-ai-workspace.pdf) Tj ET endstream endobj 33 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595.28 841.89] /Resources << /Font << /F1 3 0 R /F2 4 0 R >> >> /Contents 34 0 R >> endobj 34 0 obj << /Length 529 >> stream BT /F1 10 Tf 0.18 0.2 0.24 rg 1 0 0 1 46 789.89 Tm (1. openbot.run - https://openbot.run/) Tj ET BT /F1 10 Tf 0.18 0.2 0.24 rg 1 0 0 1 46 772.39 Tm (2. github.com - nightly-labs / openbot - https://github.com/nightly-labs/openbot) Tj ET q 0.86 0.88 0.92 RG 1 w 46 42 m 549.28 42 l S Q BT /F1 8.4 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 30 Tm (TechRounder | Page 15 of 15) Tj ET BT /F1 7.2 Tf 0.42 0.45 0.5 rg 1 0 0 1 46 19 Tm (https://www.techrounder.com/pdf/blog/openbot-turning-my-linux-server-into-an-always-on-ai-workspace.pdf) Tj ET endstream endobj xref 0 35 0000000000 65535 f 0000000015 00000 n 0000000064 00000 n 0000000218 00000 n 0000000288 00000 n 0000000363 00000 n 0000000505 00000 n 0000005617 00000 n 0000005759 00000 n 0000009777 00000 n 0000009920 00000 n 0000014383 00000 n 0000014527 00000 n 0000018965 00000 n 0000019109 00000 n 0000023636 00000 n 0000023780 00000 n 0000028098 00000 n 0000028242 00000 n 0000032140 00000 n 0000032284 00000 n 0000036165 00000 n 0000036309 00000 n 0000041192 00000 n 0000041336 00000 n 0000045938 00000 n 0000046082 00000 n 0000050256 00000 n 0000050400 00000 n 0000055192 00000 n 0000055336 00000 n 0000060481 00000 n 0000060625 00000 n 0000065470 00000 n 0000065614 00000 n trailer << /Size 35 /Root 1 0 R >> startxref 66194 %%EOF