Four projects · one local-first open-source AI ecosystem

From desktop and phone to robots and remote networks every NomiFun product is open source

Desktop is the local AI and data hub. Mobile is the pocket interface. Xiaozhi Yuntai connects AI to the physical world. NomiFun Net Infra (NomiRelay) adds self-hosted, auditable relay infrastructure for access across networks.

  • Desktop · local AI hub
  • Mobile · pocket remote
  • Xiaozhi · robot platform
  • Net Infra · self-hosted relay
Latest NomiFun Desktop workspace
NomiFun Mobile connected to Desktop
Apache-2.0
The NomiFun open-source family

Four open-source projects, one connected experience

Desktop owns local capabilities and data; Mobile and Xiaozhi provide different interaction surfaces. When access must cross networks, you can deploy Net Infra yourself. Every project has its own source, setup path, and product guide.

NomiFun Desktop 01 · DESKTOP

Local AI workstation

NomiFun Desktop

Manage models, companions, Skills, knowledge, tasks, and workflows on Windows, macOS, and Linux — then expose those local capabilities to your phone and robot.

  • Local data and model access
  • Multi-Agent / Skills / MCP
  • WebUI and remote APIs
NomiFun Mobile
02 · MOBILE

Pocket control and collaboration

NomiFun Mobile

Connect to your Desktop and carry sessions, scheduled tasks, requirements, and companion status on your phone. Your own computer still does the work.

  • QR connection to Desktop
  • Sessions / tasks / requirements
  • Companions and models
03 · XIAOZHI

Open robot platform

NomiFun Xiaozhi Yuntai

An open-source pan-tilt project for Xiaozhi robots, giving a voice assistant a movable point of view and a path into NomiFun local AI capabilities.

  • ESP32-S3 open hardware project
  • Pan-tilt motion and viewing direction
  • Connects to Desktop AI services
04 · NET INFRA

Self-hosted network relay

NomiFun Net Infra

NomiRelay exposes Desktop and other services behind NAT to phones and IoT devices with QUIC-first transport, TCP fallback, a web console, and explicit access policy.

  • HTTP / WebSocket / TCP / UDP
  • QUIC first with TLS/TCP fallback
  • Self-hosted, auditable, no hosted dependency
Product walkthrough

Watch NomiFun in context before diving deeper

If you want to quickly judge whether NomiFun fits your workflow, this walkthrough is more direct than scanning another feature list.

Open on YouTube

The video is loaded from YouTube; open the external link if playback is blocked on this network.

  • All data local · no telemetry
  • Apache-2.0 open source
  • Free to commercialize · no paywall
  • Open source · open to audit
Open foundation · ready to extend

A plain, understandable architecture — not a locked product demo

NomiFun is an Agent Desktop foundation you can actually take, change, and maintain. React 19 + Tauri 2 + Rust 2024, with the desktop and web hosts sharing one frontend and backend capability set — a practical starting point for companies building their own advanced Agent Desktop.

Open source, free, no commercial restriction

Apache-2.0 lets individuals and companies learn from it, use it internally, fork it, and commercialize it without seeking extra permission.

Apache-2.0

Plain, readable architecture

One React frontend and one Rust backend, shared by the desktop and web hosts. No cloud account dependency, and no core capability hidden behind a private service.

React 19 · Tauri 2 · Rust

All major desktop systems

Windows, macOS, and Linux are supported, so teams can adapt the system, models, permissions, and workflows to their own environment.

Win · macOS · Linux

A practical enterprise starting point

Multi-model, multi-agent, MCP / REST, knowledge, terminals, browser use, and computer use are modular enough to trim, integrate on-prem, and keep evolving.

fork-friendly

Your computer is the server

The desktop app already runs the full backend. Turn on WebUI and a phone or tablet can connect directly over a trusted network — with no NomiFun cloud relay, data collection, or telemetry by default.

Pillar 1 · Security is the foundation

Security is the foundation — everything else builds on it

No capability is worth peace of mind if the product quietly ships your data elsewhere. So we lay the foundation first.

Why should your chats, files and memory pass through someone else’s servers first?

Data is all-in-local, with no collection or telemetry. Network calls happen only when you explicitly configure and use a model, channel, webhook, external knowledge source, remote capability, or generation service; core workflows do not depend on a NomiFun cloud.

To earn your trust, we deliberately did less

We cut several advanced, fun features — the open-source build ships without them for now — because the data safety of every user and every developer comes first. Those capabilities return once they are mature and controllable.

See the Roadmap for what’s next

Your device

SQLite as the single source of truth · isolated work dir per session

  • Chats & history
  • Knowledge & skills
  • Companion memory
Third-party reporting · telemetry · cloud sync
Connections you configure · models / channels / webhooks / sources

Local storage

Everything lives on your machine: SQLite is the single source of truth, and every session gets its own isolated working directory.

all-in-local

Open & auditable

Fully open-source under Apache-2.0. The code is public and open to audit — how data flows, and whether it leaves, is all visible.

Apache-2.0

Free forever, commercial OK

Free for commercial use. No ads, no membership, no paywall — safe for individuals and enterprises to rely on long-term.

no ads · no membership
Super companions · evolving by design

The more you use it, the better it knows you.

Companions that grow with you

Three built-in characters — Mochi the mochi bunny, Ink the amber-eyed cat, and Bolt the hovering robot, all hand-drawn in code; or design any companion IP you like — even your own family or pets. Plus persona presets (Lively / Calm / Sassy, or free text); behavior capture is mostly off by default and opt-in, distilled by an LLM into long-term memory — so companions learn you over time.

  • Design any avatar you like

    Three built-ins — Mochi the mochi bunny, Ink the amber-eyed cat, Bolt the hovering robot; or customize any companion IP you want — even upload your own family or pets to make a one-of-a-kind companion.

  • Shared / private memory + per-companion skills

    Memory supports shared and per-companion private scopes: chat memories default to the active companion, learner output is shared. Skill libraries remain isolated per companion.

  • Evolution engine mines skills

    It auto-mines reusable skills from tool-call sequences (parameter values excluded) → generates a reviewable SKILL.md, enabled only after it reviews it with you.

  • Gift skills · shared learning

    Gift a skill from one companion to another and turn on shared learning. Teach just one companion, and let it teach the rest.

  • Memory content and ownership are editable; new conversations and realtime recall read the latest scope.
  • Read the companion guide
Mochi· now speaking

Soft Japanese · mochi bunny

All done! What else should we tackle — just say the word~

Persona preset

Pick a companion

Skill evolution
Review with you

auto-mined from tool-call sequences

A reviewable SKILL.md is generated — enabled only after you confirm

Companion as super gateway

Your companion is a super gateway

Anywhere, anytime — with just a network and a chat app, command your far-away companion to operate your computer.

Every companion is a full, independent individual that can connect to 12 built-in IM channels on its own. Send orders from any chat app and it gets the work done on your computer — one bot bound to one companion.

One companion, 12 built-in IM channels
  • TelegramTelegram
  • Lark / 飞书Lark / 飞书
  • 钉钉钉钉
  • 微信微信
  • 企业微信企业微信
  • SlackSlack
  • DiscordDiscord
  • MatrixMatrix
  • MattermostMattermost
  • TwitchTwitch
  • NostrNostr
  • QQ BotQQ Bot
Live
Your companion
online
Command from any chat app; your companion does the work on your computer
  • Connects to 12 built-in channels

    Telegram, Lark, DingTalk, WeChat, WeCom, Slack, Discord, Matrix, Mattermost, Twitch, Nostr, and QQ Bot are compiled into the default Desktop build.

  • Any chat app is the remote

    Issue commands from any chat app; the companion does the work on your computer — instant control from anywhere.

  • One bot, one companion

    Each companion is a complete, independent individual that fully drives the whole system; one bot binds to exactly one companion.

WEBUI · REMOTE OFFICE

No computer needed — work anywhere

Switch on the WebUI on your LAN / office network / VPN, and your phone or tablet gets the exact same interaction as the desktop. Pull out your phone and keep working, anywhere, anytime.

  • Same as desktop

    The experience on phone or tablet is identical to the desktop — not a cut-down lite version. Same interface, same full set of capabilities.

  • Scan once · LAN direct

    On a LAN / office network / VPN, scan once to connect: a one-time token valid for 5 minutes, a Host/Origin allow-list that blocks DNS-rebinding, and never through any social platform.

  • Uninterrupted terminal

    Want to keep using Codex / Claude? The platform’s terminal sessions (PTY, presets Shell / Claude Code / Codex / Gemini) give you a native, uninterrupted remote session.

Current authenticated NomiFun remote workspace

Scan to connect this device

One-time token · 5-min TTL

One NomiFun — authenticate on another device and continue in the full workspace

nomi — remote terminal session

$ claude

running in NomiFun terminal — session kept alive

context restored · attached to the same working directory

editing src/lib/router.ts … wrote 3 edits

$ 

Unattended · you just direct

Requirement board + AutoWork + IDMM, work that finishes itself

Drop a requirement on the board and it takes over: smart per-tag rotation, single-loop execution, with lease sweeping and boot resume keeping it reliably alive — you just direct, it works for you.

  • Requirement board · smart rotation

    Pending→InProgress→Done/Failed/NeedsReview, rotated per tag with single-loop execution. The backend is the single source of truth.

  • High-reliability keep-alive · unattended

    A lease sweeper re-pends orphaned tasks every 60s, and boot resume picks work back up after a restart — dependable even when no one is watching.

  • IDMM supervision · end to end

    Rule tier auto-retries / backs off / nudges / auto-confirms read-only permissions; the sidecar model tier handles genuine decision stalls and can trigger a model failover queue.

Completion notifications
Lark Slack HTTP webhook
issue / IM inbound → requirement, coming soon Read the watch & IDMM docs
IDMM watch
Rule tier engaged
Pending3
web

Snapshot competitor pricing

data

Roll up weekly metrics

ops

Sweep session health

In progress1
code

Fix login regression

Done1
docs

Draft release notes

Notified

You just direct — it works for you, reliably.

Open capability · super ecosystem

Open capability, super ecosystem

Has everything, works with everything, plays well with everything.

Platform capabilities are exposed through three public facades: /mcp (full Remote surface), /mcp-agent (a curated do-work subset), and /v1 (REST + OpenAPI 3.1 + SSE streams). Let Claude, Codex, or any agent drive NomiFun directly over MCP/Skill.

  • Platform capabilities · three facades

    /mcp exposes the full Remote surface, /mcp-agent a curated do-work subset, and /v1 offers REST + /v1/openapi.json (OpenAPI 3.1) with SSE streaming responses.

  • companion-token auth

    Bearer tokens (stored as SHA-256, compared in constant time) authenticate calls; the caller acts as that companion on the Remote surface. Headline tools: nomi_agent_run (streaming) + nomi_agent_result (polling).

  • Three-axis gateway guard

    DangerTier × Surface × Decision finely govern every call; knowledge writes are additionally controlled by Disabled / Manual / Auto policy.

How to connect
Illustrative calls · authenticated with companion-token
POST https://<host>/mcpAuthorization: Bearer <companion-token>Content-Type: application/json {  "method": "tools/call",  "params": { "name": "nomi_agent_run" }} # Streamable-HTTP · 全量 Remote 能力面

MCP Streamable-HTTP · full Remote capability surface

Capability gateway · three-axis decisions
SurfaceDangerTierDecision
Illustrative policy
Read
Write
Destructive
Sensitive
DesktopLocal, hands-on
ChannelIM / chat apps
RemoteMCP / REST callers
Hover or tap a cell to see the decision for that surface at that danger tier.

Knowledge write-back is not a universal IM staging rule: Disabled is read-only, Manual writes only when you explicitly ask, and Auto may extract durable knowledge at turn end. External IM channels also require channel_write_enabled; when enabled, writes land in the knowledge-base body.

AllowConfirmDeny
Unified knowledge management · config one, use anywhere

One knowledge hub — manage · use · track

Centrally manage, use and track the knowledge scattered across your system — and configure knowledge bases, skills, agents, MCP and models once to reuse them across any session, agent, companion or terminal.

Unified hub config once
  • knowledge
  • skill
  • agent
  • mcp
  • model

Knowledge scattered across files, web pages and chats — hunting it down every time? Pull it into one manageable, trackable knowledge hub.

Manage, use and track your knowledge bases from one place: curated markdown directories, live URL snapshots, and policy-controlled write-back, with Feishu as a source — mounted on demand into any session, agent, companion or terminal. The same “config once, use anywhere” applies to skills / agents / mcp / models too.

Knowledge write-back: policy-controlled per mount

  1. Trigger explicit request / auto turn-end decision
  2. Mount policy Disabled / Manual / Auto
  3. Safe update direct body append + compare-and-swap

Disabled turns write-back off. Manual skips turn-end extraction and writes only when you explicitly ask the Agent to record something. Auto may retain durable knowledge at turn end. Qualifying writes land in the knowledge-base body, with append and compare-and-swap updates for existing documents.

Curated knowledge

A knowledge base is a markdown directory you curate, mounted into the session workspace so it’s instantly queryable. Bind it to a companion or a session.

markdownmounted workspace

Live URL snapshots

Turn web pages into knowledge entries: Live fetch or pinned Snapshot, with built-in SSRF protection and a headless browser for JS-heavy pages.

Live / SnapshotSSRF-protected

Safe write-back

Choose Disabled, Manual, or Auto per mount: off, explicit-request only, or Agent-directed retention. Existing documents use append and compare-and-swap semantics to reduce overwrites and collisions.

Manual / AutoSafe append
Truly native

Not a wrapper — a truly native build

For browsing and computer control we don’t bolt on someone else’s runtime. It’s self-developed, in-process, and served to the model as native tools.

Spawning a Playwright / Node subprocess is slow, heavy and hard to govern — can it be cleaner?

A self-developed in-process Rust engine and native computer-use, served to the model as native tools: faster, fewer tokens, fine-grained control, and source you can extend.

Built-in native tools

  • Browser
  • Computer
  • Read
  • Write
  • Bash
  • Grep
  • Glob
  • Lsp
  • Terminal

Bolted-on runtime (the usual way)

  • Depends on a Playwright / Node subprocess
  • Slow to start, memory-heavy, extra hop
  • A black box, hard to govern finely
  • Extra translation layer burns tokens

NomiFun native

  • In-process Rust engine, direct CDP
  • Faster, lighter, no extra runtime
  • Three-axis capability gateway by policy
  • Native tools serve the model — fewer tokens
  • Open source, extensible

Self-built browser engine

An in-process Rust CDP browser engine, Chromium-only, with no Playwright and no Node subprocess — about 32 actions drive the page directly.

Rust · CDP~32 actions

Native computer-use

Screen capture + input synthesis, backed by each platform’s accessibility engine: macOS AX / Windows UIA / Linux AT-SPI — about 21 actions that truly operate your desktop.

AX / UIA / AT-SPI~21 actions

Fine-grained control

A three-axis capability gateway (danger × surface × decision) gates every tool call — allow / confirm / deny by policy; open source, extensible by developers.

danger × surface × decisionopen & extensible
Batteries-included · nomi agent

The batteries-included nomi agent

Installed means ready — no agonizing over "which agent do I install first".

The built-in nomi agent needs no extra install (the `nomi` CLI binary) — usable the moment NomiFun lands. Four native backends cover the major clouds, OpenAI-compatible reaches 26+ providers / presets, and ~19 external ecosystem agents work alongside it — all fed models and local capabilities by NomiFun.

nomi agent $ nomi

Built-in nomi agent · no extra install

The `nomi` CLI binary ships with NomiFun and works out of the box — no separate download, no extra environment to wire up. Once installed you can start conversations and delegate tasks right away.

nomi CLI binaryZero extra installStreaming delegation

Model providers

4 native backends
  • Anthropic Anthropic
  • OpenAI 兼容 OpenAI 兼容
  • Amazon Bedrock Amazon Bedrock
  • G Google Vertex
26+ providers / presets reachable
  • DeepSeek DeepSeek
  • Gemini Gemini
  • Qwen Qwen
  • Kimi Kimi
  • Zhipu / GLM Zhipu / GLM
  • StepFun StepFun
  • Doubao / Volcengine Doubao / Volcengine
  • Mistral Mistral
  • xAI xAI
  • OpenRouter OpenRouter
  • New API New API
  • ModelScope ModelScope
  • InfiniAI InfiniAI
  • Novita Novita
  • PPIO PPIO
  • Ollama
  • vLLM
  • Azure

The OpenAI-compatible backend + a custom base_url reaches DeepSeek / Gemini / Qwen / Kimi / GLM / StepFun / Volcengine / OpenRouter / New API / Ollama / vLLM / Azure and more.

~19 external ecosystem agents

19 supported ecosystem agents

Not just the built-in nomi agent — Claude Code, Codex, OpenCode, Nanobot, OpenClaw, and more can connect, with NomiFun supplying their models and local capabilities.

  • Claude Code Claude Code
  • Codex CLI Codex CLI
  • Gemini CLI Gemini CLI
  • Qwen Qwen
  • Droid Droid
  • Goose Goose
  • Auggie Auggie
  • Hermes Hermes
  • Kimi Kimi
  • C CodeBuddy
  • OpenCode OpenCode
  • C Copilot
  • Q Qoder
  • V Vibe
  • C Cursor
  • K Kiro
  • S Snow
  • Nanobot Nanobot
  • OpenClaw OpenClaw

Beyond the in-house nomi agent, every agent above is supplied models by NomiFun — one provider config, used everywhere.

Interactive sessions + PTY terminal

Open an interactive session and chat back and forth with the agent, or spin up a real PTY terminal directly. The terminal ships with handy presets so you land in a familiar workflow.

Terminal presets ShellClaude CodeCodexGemini
Interactive session PTY terminal

$ nomi

ready · interactive session + pty

$ nomi run --stream

Creation · from conversation to artifact

Sessions, terminals, infinite canvas, and mini apps — on one local workstation

NomiFun goes beyond text tasks. Interactive Agent sessions and real PTYs handle execution, Creative Workshop arranges image, video, audio, and generation nodes on an infinite canvas, and mini apps turn a session artifact into a local tool you can keep iterating.

Interactive Agent sessions

Multi-model, multi-agent collaboration, execution graphs, previews, and working directories stay connected from discussion through delivery.

Multi-agentCollaborationFile workspace
Read the guide

AI terminal sessions

A real in-app PTY for Shell, Claude Code, Codex, Gemini, and other workflows, with the same knowledge and local capabilities available inside.

PTYClaude · CodexShared capabilities
Read the guide

Infinite-canvas workshop

Arrange images, text, video, generators, and speech nodes on an infinite canvas for nonlinear visual, audio, and video creation.

ImagesVideoAudio / TTS
Read the guide

Agent Desktop mini apps

Create a single-file mini app from a normal session, then materialize a working copy from the library to iterate, import, and publish instead of losing it as a one-off answer.

Normal sessionWorking copyLocal publish
Read the guide
Delivered product innovation · 2025 — 2026

From internal production use to innovation shipped in product

This is not a future-feature wish list. The 2025 capabilities were built in-house and put into real internal use; the early-2026 innovations have shipped. Open-source scope, public entry points, and internal deployment can differ, while unreleased confidential work is explicitly identified.

2025

Built and in internal production use

Built / shipped

Turning Agents from isolated tools into a system that keeps working

These six capabilities were implemented in 2025 and used in real projects and daily internal work. They are delivered systems, not forward-looking concepts awaiting implementation.

  • Computer Use and Browser Use for XiaozhiAI
  • Automated requirement-management platform: Loop for Claude and Codex Agent
  • A three-party Agent system separating decisions from implementation, with intelligent decision failover
  • Hardware multimodal companion integration
  • A knowledge base for Agent CoT work
  • Self-evolving and portable companion memory, Skills, presets, and architecture

Early 2026

Product innovations shipped

Built / shipped

Desktop, mobile, clusters, and services evolving together

By early 2026, NomiFun had expanded beyond a standalone workstation into mini apps, direct mobile access, Agent clusters, customer service, and an IM Channel gateway. These entries describe shipped capabilities, not a gradual future rollout.

  • Agent Desktop mini apps
  • A secure customer-service cluster system
  • Mobile prefers a direct Desktop connection and can use a user-deployed NomiRelay across networks, without a NomiFun-hosted cloud application backend
  • Original Agent-cluster interaction
  • Super desktop companion Agent IM Channel gateway
  • Additional capabilities remain confidential and unreleased; details are intentionally not disclosed

Why is the project only public now?

NomiFun began as an experimental tool for our own work and a few content-creator friends. We opened the source after the 2026 UI rebuild. Bandwidth is still limited, and the project remains both experimental and public-interest oriented, so we would rather explain the code, boundaries, and real progress than push hard marketing.

See how to contribute
Build it together

Build NomiFun with us

NomiFun is built part-time and is in its pre-1.0 growth phase. Whether you write code, run communities, or love to share — there is a place for you here.

Right now we really need these roles to grow the project

  • Contribute code

    Open PRs, fix bugs, sharpen capabilities. Every merge counts toward your contribution score and keeps your name in the project.

    contributions
  • Community ops

    Answer questions, organize discussions, curate docs and best practices — turning scattered enthusiasm into a sustainable community.

    community ops
  • Evangelist

    Write posts, give talks, record videos — introduce NomiFun to the people who need it and help good work get seen.

    evangelist

A note on commercial use

Individuals and enterprises alike are free to modify and commercialize NomiFun, free of charge — that is your right under Apache-2.0, no permission needed from us.

If you do ship it commercially, we would love a quick note. Not for licensing — just that, as a developer, a word of recognition from real-world use means the world. A little positive feedback goes a long way.

Any legal risk from modification or commercial use is borne by the user.

Need help using NomiFun?

Feedback welcome

If installation, model-provider configuration, WebUI, or MCP usage is getting in your way, reach out through GitHub or email. We prefer turning reusable answers into issues, docs, and community guidance.

Note: NomiFun is still growing. Complex deployments, third-party service integration, and compliance risk need to be assessed by the user.

Contact us