惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
Simon Willison's Weblog
Simon Willison's Weblog
云风的 BLOG
云风的 BLOG
宝玉的分享
宝玉的分享
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Register - Security
The Register - Security
S
SegmentFault 最新的问题
博客园 - 司徒正美
The GitHub Blog
The GitHub Blog
量子位
SecWiki News
SecWiki News
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Palo Alto Networks Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
爱范儿
爱范儿
S
Secure Thoughts
G
Google Developers Blog
Microsoft Security Blog
Microsoft Security Blog
D
Docker
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
F
Fortinet All Blogs
T
Threat Research - Cisco Blogs
P
Proofpoint News Feed
Schneier on Security
Schneier on Security
Y
Y Combinator Blog
博客园 - 三生石上(FineUI控件)
Recent Announcements
Recent Announcements
Recent Commits to openclaw:main
Recent Commits to openclaw:main
G
GRAHAM CLULEY
Recorded Future
Recorded Future
罗磊的独立博客
Forbes - Security
Forbes - Security
Security Latest
Security Latest
NISL@THU
NISL@THU
T
The Exploit Database - CXSecurity.com
Hugging Face - Blog
Hugging Face - Blog
T
Tenable Blog
C
Cybersecurity and Infrastructure Security Agency CISA
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
K
Kaspersky official blog
月光博客
月光博客
小众软件
小众软件
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
WordPress大学
WordPress大学
Security Archives - TechRepublic
Security Archives - TechRepublic

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
OpenClaw without the Node v22 install hell — I put it on Telegram
VoltageGPU · 2026-05-08 · via DEV Community

VoltageGPU

I'll be honest. I tried to install OpenClaw three times before I gave up and shipped a hosted version on Telegram for $20/mo.

If you've stared at the OpenClaw README and felt the dread settle in, this post is for you. I'm going to walk through:

  1. The exact friction that kills 90% of installs (with the receipts)
  2. What I built to skip it
  3. The architecture, including the parts I'm not proud of
  4. What you lose when you don't run it locally
  5. Why I think the hosted angle is the right answer for most people

If you'd rather just try it: voltagegpu.com/confidential-agent. Same price as ChatGPT Plus. Sealed in Intel TDX in the EU. The operator (me) literally cannot read your messages. More on that later.

The install nobody finishes

OpenClaw is a beast of a project. Hundreds of thousands of stars on GitHub. A plugin ecosystem that makes LangChain look anaemic. A maintainer with an actual point of view about what an agent should be.

It's also unusable for ~99% of the humans who star it.

Here's what the README asks of you, in order:

# 1. Install nvm (you've heard of it, never installed it)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash

# 2. Install Node v22 specifically — not v20, not v21, not v22.0.0,
#    not the v22 already in your homebrew. v22.16.0 or it segfaults on plugin load.
nvm install 22.16.0
nvm use 22.16.0

# 3. Global npm install of a 380MB package
npm install -g openclaw

# 4. Get an API key from a model provider you've never heard of
#    OR from OpenAI but configure the right base URL
#    OR from Chutes/Targon/etc. — README lists 14 options without ranking them

# 5. Edit ~/.openclaw/openclaw.json — JSON, no schema validation, fails silently
{
  "providers": [...],
  "agents": [...],
  "gateway": { "mode": "local" }   // miss this, exit code 78, no error message
}

# 6. Install the gateway as a systemd user service
openclaw daemon install
openclaw daemon start

# 7. Run your first agent
openclaw agent main --local --prompt "hello world"
# (waits 100 seconds — yes really, plugin load — returns three lines of JSON)

Enter fullscreen mode Exit fullscreen mode

Each step is fine on its own. Stack them and you've got a 30-minute setup that fails on step 5 for half the people who start it, because the JSON config rejects fields the README example shows. I lost an hour on meta.lastTouchedBy alone — turns out the schema rejects it, even though it appears in three of the demo configs.

The maintainer has been blunt about this. Paraphrasing a recent issue thread: "if you don't know how to use a terminal, this project is too dangerous for you to run."

Fair. But that filter throws out a lot of people who actually need an agent.

So I paid myself to host it

The shortcut, once you've eaten enough of these errors, is this:

What if the install just... wasn't your problem?

That's the entire pitch. Run OpenClaw on a server I control. Wire the input/output to a surface every adult already has on their phone. Charge for it.

The surface I picked: Telegram. Not Slack (work). Not WhatsApp (no bot API worth using). Not iMessage (Apple won't let you). Telegram's bot API is mature, the UX is identical to texting, and people already have it.

The flow ends up being four steps:

  1. Subscribe at voltagegpu.com/confidential-agent — Stripe, $20/mo
  2. Dashboard shows you a one-time link token
  3. Open Telegram, message @VoltageGPUPersonalBot, send /start <token>
  4. Start texting it like you'd text a person

Total time, sign-up to first reply: about four minutes, most of which is Stripe checkout.

What's actually running

Here's the architecture, no glossing:

Telegram client
      │
      ▼
┌──────────────────────────────────────────┐
│ Next.js app on Vercel                    │
│  /api/telegram/webhook                   │
│   ├─ verifies bot token                  │
│   ├─ resolves chatId → userId            │
│   └─ inserts AgentJob row in Postgres    │
└──────────────────────────────────────────┘
      │
      ▼
┌──────────────────────────────────────────┐
│ Postgres (Neon)                          │
│  AgentJob: { userId, chatId, prompt,     │
│             status, result }             │
└──────────────────────────────────────────┘
      │ polled
      ▼
┌──────────────────────────────────────────┐
│ Worker on OVH VPS (systemd unit)         │
│  voltage-personal-agent.service          │
│   ├─ pulls pending AgentJob              │
│   ├─ spawns: openclaw agent main --local │
│   │    --prompt <user message>           │
│   ├─ openclaw loads 92 plugins (~90s     │
│   │    cold, the part I'm not proud of)  │
│   ├─ extracts payloads[0].text           │
│   ├─ writes result back to AgentJob      │
│   └─ sends to Telegram via bot API       │
└──────────────────────────────────────────┘
      │ inference
      ▼
┌──────────────────────────────────────────┐
│ Chutes TEE inference                     │
│  https://llm.chutes.ai/v1                │
│  model: Qwen/Qwen3-32B-TEE               │
│  Intel TDX-sealed, EU-hosted             │
└──────────────────────────────────────────┘

Enter fullscreen mode Exit fullscreen mode

A few things to call out from the diagram, because they hurt to debug:

OpenClaw 2026.5.x changed the response shape without bumping major. It used to return {output: "..."}. It now returns {payloads: [{text, mediaUrl}], meta: {...}}. If you grep for .output in your worker code, you'll get empty replies forever and the JSON will look fine in your logs because meta is populated.

--local mode loads 92 plugins on every cold call. That's the ~90-100 second floor I keep hitting. The gateway daemon (openclaw daemon start) keeps plugins warm on port 18789, but the worker right now spawns fresh per job because I haven't figured out a clean way to multiplex jobs through a single warm gateway without leaking state between users. So users wait 100 seconds. I have JOB_TIMEOUT_MS=240_000 to absorb this and a "thinking..." Telegram message at t+2s so it doesn't feel dead.

The Telegram sendMessage returns {ok: false} on bad chatId instead of throwing. So a typo in the chat resolution path silently swallows the agent's reply. I learned this by inserting an AgentJob with chatId 999999999, watching the worker complete successfully, and finding the answer in the database but never on my phone. Lesson: assert ok === true and re-queue if not.

What you lose by not running it locally

Be honest with yourself. The hosted version is not strictly equivalent to running OpenClaw on your laptop. Specifically:

  • No custom plugins — you get the 92 that ship by default. Want to add the GitHub plugin with your PAT? Local only.
  • No local file access — OpenClaw on your laptop can read ~/Documents/. The hosted bot cannot reach into your filesystem (and shouldn't).
  • Single agent identity — I configure --agent main only. You can't define --agent code-reviewer and --agent legal-research with different system prompts (yet).
  • Inference model is fixed — Qwen/Qwen3-32B-TEE. You don't get to swap in GPT-5 or Claude. This is a deliberate choice for the hardware-sealed story (more on that), but it's still a constraint.

If any of those are dealbreakers, install OpenClaw locally. Genuinely. The README is hostile but the project is good.

What you gain

The reasons people actually use the hosted version, ranked by what I see in support emails:

  1. Memory persistence across devices. Local OpenClaw stores conversation memory on disk. The hosted version stores it server-side, so the bot remembers your context whether you message from your phone, your laptop browser (Telegram Web), or your tablet.
  2. Mobile. OpenClaw locally is laptop-only unless you SSH from your phone, which nobody does.
  3. No installation entropy. No nvm conflicts when you upgrade macOS. No "works on my machine, fails on yours" when teaching a colleague.
  4. EU + TDX privacy posture. This one needs a paragraph.

The privacy angle, briefly

OpenClaw locally is private to you in the sense that the agent runs on your laptop. But the moment you point it at OpenAI or Anthropic, your prompts go to a US-hosted commercial provider that holds plaintext logs and can be subpoenaed.

The hosted version routes inference to an Intel TDX-sealed VM in France. TDX is a hardware confidentiality feature: the VM's memory is encrypted with a per-VM key the host (us) cannot extract. Our SREs can't read your prompts. A subpoena to us yields ciphertext we can't decrypt. The inference model never sees plaintext outside the enclave.

This is the "GDPR Article 28(3)(b) confidentiality, hardware-enforced" story, and it's why a couple of solo lawyers and notaries have started using it for client-sensitive drafting that they used to handle in ChatGPT and quietly regret.

If you want the long version, there's a comparison page — same $20/mo as ChatGPT Plus, different threat model.

The price anchor

I picked $20/mo for a reason. ChatGPT Plus is $20. Claude Pro is $20. There's an unwritten consumer expectation that "premium AI = $20/mo," and I'm not interested in fighting it.

What's included:

  • 2,000 inference requests / month (covers normal daily use comfortably)
  • Persistent conversation memory
  • All 92 default OpenClaw plugins (web search, summarisation, file analysis on Telegram-attached docs, etc.)
  • Telegram delivery on @VoltageGPUPersonalBot

If you blow past 2,000, the dashboard offers metered top-ups. If you don't, you don't pay extra.

Try it or fork the bridge

If you just want to use it: voltagegpu.com/confidential-agent.

If you want to host your own Telegram bridge to OpenClaw on your own VPS, the architecture above is roughly all of it. The painful bits are:

  • Handle the payloads[0].text extraction shape change
  • Don't trust sendMessage ok-status
  • Cold plugin load is ~90s; either keep a warm gateway or set user expectations
  • The gateway.mode=local config field is required and the failure mode is exit code 78 with no message

Whichever you pick: stop trying to install OpenClaw cold on a fresh machine and expecting it to work first try. It won't. The maintainer was right about the terminal warning. The fix is either commit to the install pain, or pay someone else to wear it.

I picked option 3: become the someone else.


If this saved you an evening, the bot is at voltagegpu.com/confidential-agent. If it didn't, the architecture diagram above is yours to copy.