<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Don Karter</title>
    <description>The latest articles on DEV Community by Don Karter (@donk8r).</description>
    <link>https://dev.to/donk8r</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3868460%2F00d65e09-1e87-48db-8634-1af15e5f7438.jpeg</url>
      <title>DEV Community: Don Karter</title>
      <link>https://dev.to/donk8r</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/donk8r"/>
    <language>en</language>
    <item>
      <title>Your First Five Minutes with Octomind: One Install, One Login, Zero API Keys</title>
      <dc:creator>Don Karter</dc:creator>
      <pubDate>Fri, 24 Jul 2026 04:43:08 +0000</pubDate>
      <link>https://dev.to/donk8r/your-first-five-minutes-with-octomind-one-install-one-login-zero-api-keys-p2h</link>
      <guid>https://dev.to/donk8r/your-first-five-minutes-with-octomind-one-install-one-login-zero-api-keys-p2h</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This post originally appeared on &lt;a href="https://octomind.run/blog/octomind-hub-quickstart" rel="noopener noreferrer"&gt;octomind.run/blog/octomind-hub-quickstart&lt;/a&gt;. Cross-posted to dev.to.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;Every AI coding tool starts the same way: sign up, grab an API key, paste it into a config file, forget it's there until it leaks. Octomind doesn't do that. One curl command, one browser click, and you're talking to an agent that reads your code, finds bugs, and fixes them — then proves the fix works.&lt;/p&gt;

&lt;p&gt;Total cost for the whole thing: under two cents.&lt;/p&gt;

&lt;p&gt;Here's the walkthrough. Everything below ran in a clean Ubuntu 24.04 container. No dotfiles, no cached credentials, no Node, no Python pre-installed. Just the agent and a real codebase.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you're actually getting
&lt;/h2&gt;

&lt;p&gt;Octomind's Hub is an OpenAI-compatible gateway sitting in front of a curated model roster. Not a 400-model dropdown where half the entries are deprecated — 21 models that earn their place.&lt;/p&gt;

&lt;p&gt;Open-weights models (DeepSeek, Qwen, Kimi, GLM, MiniMax, Gemma) ship with every paid plan. Premium models (Claude, GPT, Gemini) bill per token from prepaid credits at published prices. There's a free model with a daily allowance, so a brand-new account can try everything without entering a card.&lt;/p&gt;

&lt;p&gt;The key part: &lt;strong&gt;you never handle an API key.&lt;/strong&gt; Not once.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;octomind login&lt;/code&gt; runs a device flow — same pattern as &lt;code&gt;gh auth login&lt;/code&gt;. The CLI shows a short code, you confirm in your browser, and the Hub mints a key scoped to that specific machine. No password in your terminal. No secret in your shell history.&lt;/p&gt;

&lt;p&gt;Every machine gets its own revocable key. Log in from your laptop and your server, and you'll see two keys in the panel named after each device. Revoke one, the other keeps working. Fair use is per account, not per key — past the parallelism limit, requests queue briefly instead of failing.&lt;/p&gt;

&lt;p&gt;And the meter is visible while you work. Every response prints what it cost. No end-of-month archaeology.&lt;/p&gt;

&lt;p&gt;Under the hood, it's all &lt;code&gt;octohub&lt;/code&gt; — open source, Rust, one static binary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Install (one command)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://octomind.run/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or on macOS: &lt;code&gt;brew install muvon/tap/octomind&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Here's what actually happened in the container:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;[INFO] Installing octomind...
[INFO] Detected platform: x86_64-unknown-linux-musl
[INFO] Latest version: 0.38.2
[INFO] Downloading octomind 0.38.2 for x86_64-unknown-linux-musl...
[INFO] Extracting binary...
[INFO] Installing to /root/.local/bin...
[SUCCESS] octomind installed successfully!
[SUCCESS] Installation verified!
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Static binary drops into &lt;code&gt;~/.local/bin&lt;/code&gt;. No runtime dependencies, no package manager churn, works identically on macOS and Linux.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Log in (one click)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;octomind login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;╭ login · octomind account
│   code  6PVJ-NHW9
│   url   https://octomind.run/app/login/cli
│
│ Confirm the code in your browser to finish signing in.
│ waiting…
│   account  don@muvon.io
│   key      octomind-cli-35f0c0f849cd
│   stored   /root/.local/share/octomind/config/.env
╰ ✓ login · signed in
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The CLI opened the panel URL, I confirmed the code, and it claimed a per-device Hub key. If you don't have an account yet, the same page signs you up first — free plan needs no card.&lt;/p&gt;

&lt;p&gt;The key shows up in the panel under Keys. Revoking it takes one click. This shipped in 0.38.0 because pasting long-lived secrets into terminals is exactly how keys end up in shell history and screen recordings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Ask your first question
&lt;/h2&gt;

&lt;p&gt;I dropped a Python file with a deliberate bug:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# stats.py
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;median&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;ordered&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sorted&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;mid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ordered&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ordered&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;ordered&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;mid&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;ordered&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;mid&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;


&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;median&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;median&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The bug: both branches return &lt;code&gt;ordered[mid]&lt;/code&gt;. The even-length case should average the two middle values.&lt;/p&gt;

&lt;p&gt;If your directory isn't a git repo, run &lt;code&gt;git init&lt;/code&gt; first — the code-search index works repo-per-repo. First run bootstraps its own tooling (it installed Node for MCP servers unprompted), so give it a minute.&lt;/p&gt;

&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;octomind run
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This starts the concierge orchestrator — it works out what you need, routes to the right specialist, and remembers across sessions. The header shows the agent, model setting (&lt;code&gt;octohub:auto&lt;/code&gt; — the Hub routes each request to a suitable model), working directory, and session ID.&lt;/p&gt;

&lt;p&gt;Or skip routing entirely: &lt;code&gt;octomind run developer:general&lt;/code&gt; for direct specialist access.&lt;/p&gt;

&lt;p&gt;I asked: &lt;em&gt;"Read stats.py and explain in a few sentences what it does. Is the median calculation correct?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The agent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read the file with a tool call (not hallucinating from context)&lt;/li&gt;
&lt;li&gt;Found the bug: duplicated branch, even-length case wrong&lt;/li&gt;
&lt;li&gt;Demonstrated on concrete input: &lt;code&gt;median([3,1,4,1,5,9])&lt;/code&gt; → sorted &lt;code&gt;[1,1,3,4,5,9]&lt;/code&gt;, mid=3, returns 4. Correct answer is &lt;code&gt;(3+4)/2 = 3.5&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Suggested the fix: &lt;code&gt;return (ordered[mid-1] + ordered[mid]) / 2&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cost: &lt;strong&gt;$0.00403&lt;/strong&gt; · 27K in · 518 out&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Make it prove the fix
&lt;/h2&gt;

&lt;p&gt;Here's where it gets interesting. I asked: &lt;em&gt;"Fix the median bug, then run python3 stats.py to prove the fix works."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The agent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Edited exactly the broken line with &lt;code&gt;str_replace&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Ran &lt;code&gt;python3 stats.py&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Output: &lt;code&gt;3&lt;/code&gt; and &lt;code&gt;3.5&lt;/code&gt; — fix verified. Even-length now yields 3.5 instead of 4.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cost: &lt;strong&gt;$0.00960&lt;/strong&gt; · 67K in · 525 out&lt;/p&gt;

&lt;p&gt;Total for review plus verified fix: under a cent and a half.&lt;/p&gt;

&lt;p&gt;Every run is a persistent session. &lt;code&gt;octomind run --resume-recent&lt;/code&gt; picks up where you left off. &lt;code&gt;-n mywork&lt;/code&gt; gives the session a name. You can pipe it for CI and scripting:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Fix the median bug, then run python3 stats.py to prove the fix."&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  | octomind run developer:general &lt;span class="nt"&gt;--format&lt;/span&gt; plain
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How to ask questions that actually work
&lt;/h2&gt;

&lt;p&gt;A few things I learned from the transcripts:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One task per message, with the file named.&lt;/strong&gt; "Read stats.py and check the median calculation" beats "look around and tell me what's wrong." Specificity is free speed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ask for proof, not confidence.&lt;/strong&gt; The agent has a shell. End your request with "run it and show the output." A claim that compiles is worth ten that don't.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bound the answer.&lt;/strong&gt; "In a few sentences" saved tokens on every single transcript in the walkthrough.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Escalate when the task outgrows the shelf.&lt;/strong&gt; &lt;code&gt;-m&lt;/code&gt; on the command line or &lt;code&gt;/model&lt;/code&gt; mid-session switches to any model. Premium ones bill per token from credits. Escalation is a flag, not a migration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Does it hold up?
&lt;/h2&gt;

&lt;p&gt;The SWE-bench-Live numbers: 70% solved on the open-shelf model (GLM) at roughly $3.30 per solved task. The harness and baseline live in the repo under &lt;code&gt;bench/&lt;/code&gt; with committed history.&lt;/p&gt;

&lt;p&gt;Honest framing: it's their own harness, a pilot-sized suite (15 instances, two runs each), efficiency-first metric. Not a leaderboard submission. The claim is straightforward — an agent on open-weights pricing, resolving real issues, with a cost-per-solved you can actually reason about.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;Everything above ran on a local machine. That's the point — start where you are.&lt;/p&gt;

&lt;p&gt;Machines (persistent Linux boxes with the full toolchain, real Docker inside, sessions that survive closing your laptop) are invite-gated while the fleet scales. Subscribing unlocks access instantly. Free accounts earn invites through weekly usage. Every subscriber gets invites to hand out.&lt;/p&gt;

&lt;p&gt;It's bootstrapped — hardware bought with revenue, the gate widening at the pace they can genuinely serve.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;

&lt;p&gt;Free tier, no card required:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://octomind.run/install.sh | bash
octomind login
octomind run
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Five minutes, two cents, no API keys. Ask it something concrete, make it prove its answer, then see how it goes.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>devtools</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Octomind Cloud Is Live: Real Machines for Your Agent, Every Model Through One Key</title>
      <dc:creator>Don Karter</dc:creator>
      <pubDate>Wed, 22 Jul 2026 16:42:12 +0000</pubDate>
      <link>https://dev.to/donk8r/octomind-cloud-is-live-real-machines-for-your-agent-every-model-through-one-key-3ei9</link>
      <guid>https://dev.to/donk8r/octomind-cloud-is-live-real-machines-for-your-agent-every-model-through-one-key-3ei9</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This post originally appeared on &lt;a href="https://octomind.run/blog/octomind-cloud-launch" rel="noopener noreferrer"&gt;octomind.run/blog/octomind-cloud-launch&lt;/a&gt;. Cross-posted to dev.to.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;You've built an agent. It's running a 40-minute refactor. You close your laptop.&lt;/p&gt;

&lt;p&gt;Gone. Session dead. Tokens burned. Context lost.&lt;/p&gt;

&lt;p&gt;Agents are long-running processes. Laptops aren't long-running machines. The math doesn't work.&lt;/p&gt;

&lt;p&gt;That's the first problem we solved with Octomind Cloud. There are two more — and they're equally annoying if you've ever tried to run AI workflows in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Three Problems
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Problem 1: Your agent dies with your laptop lid.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You start a long task. Close the laptop. Come back. Everything's gone. You're starting over.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 2: API keys in five dashboards.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;OpenRouter. Anthropic. OpenAI. Voyage. That &lt;code&gt;.env&lt;/code&gt; file you're scared to look at. Every provider has its own billing, its own rate limits, its own way of telling you you're out of credits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 3: Your AI bill is a surprise.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Opaque seat pricing. Or worse — usage-based, but you can't see the meter until the invoice hits. Runaway agents burning money overnight while you sleep.&lt;/p&gt;

&lt;p&gt;Octomind Cloud is the answer to all three. It's cloud compute for AI agents — one subscription, one wallet, one key.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdu0ch2hkwau8em2nxxml.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdu0ch2hkwau8em2nxxml.png" alt="The Octomind panel showing cloud machines and the model hub — one key, one wallet, transparent prices" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What You Actually Get
&lt;/h2&gt;

&lt;p&gt;Two things sharing one account:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Hub&lt;/strong&gt; — an OpenAI-compatible gateway with 21 curated models behind a single API key&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Machines&lt;/strong&gt; — persistent Linux containers with the full agent toolchain, ready in under a minute&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The whole stack is open source (Apache 2.0): &lt;code&gt;octomind&lt;/code&gt;, &lt;code&gt;octocode&lt;/code&gt;, &lt;code&gt;octobrain&lt;/code&gt;, &lt;code&gt;octohub&lt;/code&gt;. Self-host if you want. All doors open, docs assume you might.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Hub: One Key, 21 Models
&lt;/h2&gt;

&lt;p&gt;The Hub is an OpenAI-compatible gateway. You get one API key, and it works across every model on the shelf.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open shelf&lt;/strong&gt; (included in every paid plan):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DeepSeek V4 Flash, DeepSeek V4 Pro&lt;/li&gt;
&lt;li&gt;Qwen3.7 Plus, Qwen3.7 Max&lt;/li&gt;
&lt;li&gt;Kimi 2.6, Kimi 2.7 Code&lt;/li&gt;
&lt;li&gt;MiniMax M3&lt;/li&gt;
&lt;li&gt;GLM-5.2&lt;/li&gt;
&lt;li&gt;Gemma 4&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Premium shelf&lt;/strong&gt; (bills per token from credits):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude Fable 5, Opus 4.8, Sonnet 5&lt;/li&gt;
&lt;li&gt;GPT-5.6 family: Sol, Terra, Luna&lt;/li&gt;
&lt;li&gt;GPT-5.5, GPT-5.5 Pro, GPT-5.4 mini, GPT-5.4 nano&lt;/li&gt;
&lt;li&gt;Gemini 3.5 Flash, Gemini 3.1 Pro&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There's also a free model with a daily allowance. When everything else is exhausted, this one keeps working.&lt;/p&gt;

&lt;p&gt;Prices are published. Metering matches the table exactly. No surprises.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F29d3r0bal2prccum0abs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F29d3r0bal2prccum0abs.png" alt="The Models page — LLMs and embedding models with per-token prices and plan badges" width="800" height="552"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fair use per account:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Free: 1 parallel call&lt;/li&gt;
&lt;li&gt;Pro: 5 parallel calls&lt;/li&gt;
&lt;li&gt;Max: 10 parallel calls&lt;/li&gt;
&lt;li&gt;Team: 20 pooled parallel calls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Under the hood, the Hub runs on &lt;code&gt;octohub&lt;/code&gt; — open source, written in Rust, ships as one static binary.&lt;/p&gt;

&lt;p&gt;Here's what a call looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://hub.octomind.run/v1/chat/completions &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$OCTOMIND_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "gpt-5.6-luna",
    "messages": [{"role": "user", "content": "Explain Rust ownership in one paragraph"}]
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same endpoint, same format. Switch models by changing the &lt;code&gt;model&lt;/code&gt; field. That's it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Machines: Persistent Linux Containers
&lt;/h2&gt;

&lt;p&gt;Machines are persistent Linux containers with the full agent toolchain pre-installed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;octomind&lt;/code&gt;, &lt;code&gt;octocode&lt;/code&gt;, &lt;code&gt;octobrain&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Web terminal&lt;/li&gt;
&lt;li&gt;Git, Docker, Node, Bun&lt;/li&gt;
&lt;li&gt;Headless browser, ffmpeg&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn2nkuyxgu0sviar006s6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn2nkuyxgu0sviar006s6.png" alt="The Machines page — one machine active, one suspended, live disk and network meters" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Three sizes:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Size&lt;/th&gt;
&lt;th&gt;vCPU&lt;/th&gt;
&lt;th&gt;RAM&lt;/th&gt;
&lt;th&gt;Active&lt;/th&gt;
&lt;th&gt;Idle-Warm&lt;/th&gt;
&lt;th&gt;Suspended&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Small&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2 GB&lt;/td&gt;
&lt;td&gt;$0.05/hr&lt;/td&gt;
&lt;td&gt;$0.01/hr&lt;/td&gt;
&lt;td&gt;~$0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;4 GB&lt;/td&gt;
&lt;td&gt;$0.10/hr&lt;/td&gt;
&lt;td&gt;$0.02/hr&lt;/td&gt;
&lt;td&gt;~$0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Large&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;8 GB&lt;/td&gt;
&lt;td&gt;$0.20/hr&lt;/td&gt;
&lt;td&gt;$0.04/hr&lt;/td&gt;
&lt;td&gt;~$0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Per-second metering. Automatic transitions between active, idle-warm, and suspended states.&lt;/p&gt;

&lt;p&gt;10 GB working disk free with every machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security details that matter:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Docker runs inside (real Docker Engine, sysbox runtime, no &lt;code&gt;--privileged&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;System filesystem is read-only&lt;/li&gt;
&lt;li&gt;Agent runs as non-root user&lt;/li&gt;
&lt;li&gt;Environment variables are encrypted and write-only — the panel never shows the value back&lt;/li&gt;
&lt;li&gt;Shared directories between machines on the same host&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your machine is ready in about a minute. You get a web terminal, an API endpoint, and it's reachable from the panel, the developer API (&lt;code&gt;api.octomind.run&lt;/code&gt;), or Telegram.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sessions Survive You
&lt;/h2&gt;

&lt;p&gt;Start a turn. Close the tab. The turn keeps running.&lt;/p&gt;

&lt;p&gt;Open it from your phone 20 minutes later. Everything's there — full transcript recorded.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwt82zavamd5aa7l3fy1g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwt82zavamd5aa7l3fy1g.png" alt="A session on a cloud machine — the agent writes a Bun server, runs it, proves it with curl; the whole thing cost $0.008" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sessions are reachable from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The panel&lt;/li&gt;
&lt;li&gt;Web terminal&lt;/li&gt;
&lt;li&gt;Developer API (&lt;code&gt;api.octomind.run&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Telegram&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Telegram integration:&lt;/strong&gt; One tap connects your bot. The machine answers in chat with real formatting — code blocks, lists, everything renders properly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Switch models per session:&lt;/strong&gt; &lt;code&gt;/model gpt-5.6-luna&lt;/code&gt; works from the panel, Telegram, or the API. Same command, same result.&lt;/p&gt;

&lt;p&gt;This is the same &lt;code&gt;octomind&lt;/code&gt; you run locally. Same config, same sub-agent delegation, same tools. The only difference is it doesn't die when you close your laptop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Embeddings: Index Once, Search Everywhere
&lt;/h2&gt;

&lt;p&gt;Two lanes for embeddings:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqo2oirp3fg2wouup14au.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqo2oirp3fg2wouup14au.png" alt="The embeddings picker — local models billed as compute, hub models billed per token" width="800" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local&lt;/strong&gt; (default, free):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fastembed running on machine CPU&lt;/li&gt;
&lt;li&gt;You pay compute, not tokens&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Hub&lt;/strong&gt; (paid):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Voyage 4, Jina v5, OpenAI text-embedding-3&lt;/li&gt;
&lt;li&gt;Starts at $0.02 per million tokens&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Index once. The index lands in shared storage. Every machine reuses it. No re-indexing, no duplication.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pricing
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu7nmidida5izvl5rxkf9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu7nmidida5izvl5rxkf9.png" alt="The Usage page — rolling caps, daily spend chart, per-model and per-machine breakdowns" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;th&gt;Usage Caps&lt;/th&gt;
&lt;th&gt;Machines&lt;/th&gt;
&lt;th&gt;Shared Storage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Free&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;td&gt;$0.15/day&lt;/td&gt;
&lt;td&gt;1 Small&lt;/td&gt;
&lt;td&gt;2 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Pro&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$20/mo ($10 first month)&lt;/td&gt;
&lt;td&gt;$20/4h · $60/week · $120/month&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;10 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Max&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$100/mo&lt;/td&gt;
&lt;td&gt;5x Pro caps&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;30 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Team&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$500/mo&lt;/td&gt;
&lt;td&gt;Pooled caps&lt;/td&gt;
&lt;td&gt;Unlimited members&lt;/td&gt;
&lt;td&gt;Shared machines&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Credits are overflow.&lt;/strong&gt; Hit your cap mid-task? Credits keep the session flowing. It doesn't die.&lt;/p&gt;

&lt;p&gt;Every price is on the pricing page and in the panel. The meter bills from the same numbers. No reconciliation surprises.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;Octomind Cloud is in beta. It's live now.&lt;/p&gt;

&lt;p&gt;Login is email code — no card needed for the free tier. Your first machine is ready in about a minute.&lt;/p&gt;

&lt;p&gt;The whole stack is open source, Apache 2.0. Self-host if you want, or use the cloud and move on with your day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&gt; &lt;a href="https://octomind.run/app" rel="noopener noreferrer"&gt;octomind.run/app&lt;/a&gt; — free tier, no card, start building.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cloud</category>
      <category>opensource</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
