<?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: openpawz</title>
    <description>The latest articles on DEV Community by openpawz (@openpawz).</description>
    <link>https://dev.to/openpawz</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3790337%2F876d3d87-7930-40b8-a486-a88f0b5ac43f.png</url>
      <title>DEV Community: openpawz</title>
      <link>https://dev.to/openpawz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/openpawz"/>
    <language>en</language>
    <item>
      <title>Introducing OpenPawz: A Native Desktop AI Platform That Runs Fully Offline</title>
      <dc:creator>openpawz</dc:creator>
      <pubDate>Tue, 24 Feb 2026 21:25:54 +0000</pubDate>
      <link>https://dev.to/openpawz/introducing-openpawz-a-native-desktop-ai-platform-that-runs-fully-offline-5pd</link>
      <guid>https://dev.to/openpawz/introducing-openpawz-a-native-desktop-ai-platform-that-runs-fully-offline-5pd</guid>
      <description>&lt;p&gt;Every AI tool I tried had the same trade-off: send your data to the cloud to get anything useful. I wanted something different — a &lt;strong&gt;native desktop app&lt;/strong&gt; where I own my data, pick my providers, and the AI still has real power.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;OpenPawz&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is OpenPawz?
&lt;/h2&gt;

&lt;p&gt;OpenPawz is an open-source, native desktop AI platform built with &lt;a href="https://v2.tauri.app/" rel="noopener noreferrer"&gt;Tauri v2&lt;/a&gt; (Rust backend, TypeScript frontend). It ships as a ~5 MB binary — no Electron, no Node.js backend, no open network ports.&lt;/p&gt;

&lt;p&gt;It runs &lt;strong&gt;fully offline&lt;/strong&gt; with &lt;a href="https://ollama.ai" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt;, connects to &lt;strong&gt;any OpenAI-compatible provider&lt;/strong&gt; (OpenAI, Anthropic, Gemini, DeepSeek, Grok, Mistral, OpenRouter, and more), and gives you multi-agent orchestration, 75+ built-in tools, and 11 channel bridges — all controlled from your desktop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/OpenPawz/openpawz" rel="noopener noreferrer"&gt;github.com/OpenPawz/openpawz&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Another AI Tool?
&lt;/h2&gt;

&lt;p&gt;Three things bothered me about existing solutions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Privacy&lt;/strong&gt; — Most AI tools phone home. Your prompts, your data, your credentials — all flowing to someone else's servers. OpenPawz has zero telemetry, zero open ports, and encrypts all credentials with AES-256-GCM in your OS keychain.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lock-in&lt;/strong&gt; — Most tools chain you to one provider. OpenPawz supports 10 providers out of the box plus any custom OpenAI-compatible endpoint. Switch models mid-conversation. Run local and cloud simultaneously.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Control&lt;/strong&gt; — AI agents doing real things on your machine is scary. OpenPawz puts 7 security layers between the agent and your OS. Every tool call flows through the Rust engine where it's classified, risk-scored, and — for anything with side effects — shown to you for approval before it runs.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Architecture at a Glance
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Frontend (TypeScript)                  Rust Engine
┌──────────────────────┐              ┌────────────────────────────────┐
│ Vanilla DOM · 20+ views │◄── IPC ──►│ Tauri commands                  │
│ Feature modules         │   (typed) │ Channel bridges                 │
│ Material Icons          │           │ AI providers                    │
│                         │           │ Tool executor + HIL approval    │
└──────────────────────┘              │ AES-256-GCM encrypted SQLite    │
                                      │ OS keychain · Docker sandbox    │
                                      └────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No Node.js backend. No gateway process. No open ports. Everything flows through Tauri IPC.&lt;/p&gt;

&lt;p&gt;The codebase is ~86k LOC (39k Rust + 35k TypeScript + 12k CSS), with 600+ automated tests across a 3-job CI pipeline: Rust (check + test + clippy with &lt;code&gt;-D warnings&lt;/code&gt;), TypeScript (tsc + eslint + vitest + prettier), and Security (cargo audit + npm audit).&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Multi-Agent System
&lt;/h3&gt;

&lt;p&gt;Create unlimited agents with custom personalities, models, and tool policies. Agents can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Delegate tasks via boss/worker orchestration&lt;/li&gt;
&lt;li&gt;Spawn sub-agents at runtime&lt;/li&gt;
&lt;li&gt;Communicate through direct messages, broadcasts, and squad channels&lt;/li&gt;
&lt;li&gt;Form squads with coordinator roles for collaborative tasks&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7-Layer Security Model
&lt;/h3&gt;

&lt;p&gt;The agent &lt;strong&gt;never&lt;/strong&gt; touches the OS directly. Every tool call goes through the Rust engine:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Prompt injection scanner&lt;/strong&gt; — Dual TypeScript + Rust detection, 30+ patterns&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Command risk classifier&lt;/strong&gt; — 30+ danger patterns across 5 risk levels (Critical auto-denies by default)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human-in-the-Loop approval&lt;/strong&gt; — side-effect tools require explicit user approval&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Per-agent tool policies&lt;/strong&gt; — allowlist, denylist, or unrestricted per agent&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Container sandboxing&lt;/strong&gt; — Docker isolation with &lt;code&gt;CAP_DROP ALL&lt;/code&gt;, memory/CPU limits, network disabled&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Browser network policy&lt;/strong&gt; — domain allowlist/blocklist prevents data exfiltration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credential vault&lt;/strong&gt; — OS keychain + AES-256-GCM; keys never appear in prompts&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  11 Channel Bridges
&lt;/h3&gt;

&lt;p&gt;Telegram · Discord · IRC · Slack · Matrix · Mattermost · Nextcloud Talk · Nostr · Twitch · WebChat · WhatsApp&lt;/p&gt;

&lt;p&gt;Each bridge includes user approval flows, per-agent routing, and uniform start/stop/config. The same agent brain, memory, and tools work across every platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  75+ Built-in Tools
&lt;/h3&gt;

&lt;p&gt;File operations, shell execution, web fetch, browser automation, email (IMAP/SMTP), GitHub integration, DeFi trading (7 EVM chains + Solana), research workflows, task management, inter-agent messaging, and more — all with encrypted credential injection and risk classification.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hybrid Memory
&lt;/h3&gt;

&lt;p&gt;BM25 + vector similarity search with Ollama embeddings, MMR re-ranking for diversity, temporal decay (30-day half-life), plus a Memory Palace visualization UI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Start
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/OpenPawz/openpawz.git
&lt;span class="nb"&gt;cd &lt;/span&gt;paw
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run tauri dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Prerequisites:&lt;/strong&gt; Node.js 18+, Rust (latest stable), and &lt;a href="https://v2.tauri.app/start/prerequisites/" rel="noopener noreferrer"&gt;Tauri prerequisites&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That's it. No cloud account, no API key required for local models. Add a provider API key under Settings if you want to use cloud models.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Framework&lt;/td&gt;
&lt;td&gt;Tauri v2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;Rust (async with Tokio)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;TypeScript (vanilla DOM — no React, no Vue)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database&lt;/td&gt;
&lt;td&gt;SQLite (21 tables, AES-256-GCM encrypted fields)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bundler&lt;/td&gt;
&lt;td&gt;Vite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Testing&lt;/td&gt;
&lt;td&gt;vitest (TypeScript) + cargo test (Rust)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CI&lt;/td&gt;
&lt;td&gt;GitHub Actions (3 parallel jobs)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;v0.2&lt;/strong&gt; — Stable release binaries, Homebrew/AUR/Snap/Flatpak packages&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;v0.3&lt;/strong&gt; — Plugin API, PawzHub marketplace launch&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;v0.4&lt;/strong&gt; — Mobile companion (iOS/Android), cloud sync opt-in&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;v1.0&lt;/strong&gt; — Production-ready with full enterprise hardening&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get Involved
&lt;/h2&gt;

&lt;p&gt;OpenPawz is MIT-licensed and contributions are welcome:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Star the repo:&lt;/strong&gt; &lt;a href="https://github.com/OpenPawz/openpawz" rel="noopener noreferrer"&gt;github.com/OpenPawz/openpawz&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Join our Matrix room:&lt;/strong&gt; &lt;a href="https://matrix.to/#/#openpawz:matrix.org" rel="noopener noreferrer"&gt;#openpawz:matrix.org&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Follow on Bluesky:&lt;/strong&gt; &lt;a href="https://bsky.app/profile/openpawz.bsky.social" rel="noopener noreferrer"&gt;@openpawz.bsky.social&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read the contributing guide:&lt;/strong&gt; &lt;a href="https://github.com/OpenPawz/openpawz/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;CONTRIBUTING.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sponsor the project:&lt;/strong&gt; &lt;a href="https://github.com/sponsors/OpenPawz" rel="noopener noreferrer"&gt;GitHub Sponsors&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you've been looking for an AI platform that respects your privacy, doesn't lock you in, and gives you real control — give OpenPawz a try and let me know what you think.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>rust</category>
      <category>opensource</category>
      <category>tauri</category>
    </item>
  </channel>
</rss>
