The Micro Network
A personal app platform that provides services without ads, algorithms, or tracking.
- PWA - Progressive web app for desktop and mobile
- API - Authenticated API for programmatic access
- Home - One place to catchup with everything
- Agent - AI assistant that does things for you
- Apps - Build and share micro apps with AI
- Blog - Microblogging and community sharing
- Chat - AI assistant with contextual discussions
- Mail - Private messaging and email inbox
- News - Curated RSS feeds and market data
- Video - YouTube search and Ad-free viewing
Mu runs as a single Go binary on your own server or use the hosted version at mu.xyz.
Starting with:
- API - Basic API
- App - Basic PWA
- Home - Overview
- Agent - AI assistant
- Apps - Micro app builder
- Blog - Micro blogging
- Chat - LLM chat UI
- News - RSS news feed
- Video - YouTube search
- Mail - Private messaging
- Wallet - Credits for usage
- Utilities - QR code scanner, etc
- Services - Marketplace of services
Mu includes an AI-powered micro app builder. Users can create single-page web apps from natural language prompts.
- Generate Apps - Describe what you want, AI builds it
- Iterate - Refine with follow-up instructions
- Persist Data - Apps can store user data via the Mu SDK
- Share - Make apps public for others to use
Apps have access to the Mu SDK (window.mu):
// Persistent storage (per-user, per-app)
await mu.db.get('key');
await mu.db.set('key', value);
await mu.db.delete('key');
await mu.db.list();
// User context
mu.user.id // User ID or null
mu.user.name // Display name or null
mu.user.loggedIn // Boolean
// App context
mu.app.id // App's unique ID
mu.app.name // App's name- /apps/todo - Task management
- /apps/timer - Focus/pomodoro timer
- /apps/expenses - Expense tracking
See /apps/docs for full SDK reference.
Basic concepts. The app contains cards displayed on the home screen. These are a sort of summary or overview. Each card links to a micro app or an external website. For example the latest Video "more" links to the /video page with videos by channel and search, whereas the markets card redirects to an external app.
Mu is free to use at mu.xyz. Create an account and start using it immediately - no credit card required.
Contact [email protected] or file an issue to discuss managed hosting.
Ensure you have Go installed
Set your Go bin
export PATH=$HOME/go/bin:$PATH
Download and install Mu
git clone https://github.com/asim/mu
cd mu && go install
To reconfigure prompts, topics, cards, etc you can adjust the following json files.
Note: The binary will need to be recompiled as they are embedded at build time.
Set the chat prompts in chat/prompts.json
Set the home cards in home/cards.json
Set the RSS news feeds in news/feeds.json
Set the YouTube video channels in video/channels.json
We need API keys for the following
export YOUTUBE_API_KEY=xxx
Ollama (Default)
By default, Mu uses Ollama for LLM queries. Install and run Ollama locally:
# Install Ollama from https://ollama.ai/
# Pull a model (e.g., llama3.2)
ollama pull llama3.2
# Ollama runs on http://localhost:11434 by default
Optional environment variables:
export MODEL_NAME=llama3.2 # Default model
export MODEL_API_URL=http://localhost:11434 # Ollama API URL
Fanar (Optional)
Alternatively, use Fanar by setting the API key:
export FANAR_API_KEY=xxx
export FANAR_API_URL=https://api.fanar.qa # Optional, this is the default
When FANAR_API_KEY is set, Mu will use Fanar instead of Ollama.
Note: Fanar has a rate limit of 10 requests per minute. Mu enforces this limit automatically.
Anthropic Claude (Optional)
You can also use Anthropic's Claude API:
export ANTHROPIC_API_KEY=xxx
export ANTHROPIC_MODEL=claude-haiku-4.5-20250311 # Optional, this is the default
Priority order: Anthropic > Fanar > Ollama
For vector search see this doc
By default, Mu stores search index and embeddings in JSON files loaded into memory. For production use with large datasets, enable SQLite storage to reduce memory usage:
export MU_USE_SQLITE=1
This stores the search index and embeddings in SQLite (~/.mu/data/index.db) instead of RAM. Migration from JSON happens automatically on first startup.
Then run the app
mu --serve
Go to localhost:8081
Additional documentation is available in the docs folder:
- Design Documentation - Architecture and design decisions
- Messaging System - Complete messaging and mail setup guide
- Environment Variables - All configuration options
- Contextual Discussions - Chat context and discussion features
- Vector Search - Setting up vector embeddings for semantic search
- Screenshots - Application screenshots
Install git hooks to run tests before commits:
./scripts/install-hooks.shThis will prevent commits if tests fail, helping catch regressions early. See scripts/README.md for more details.
Join Discord if you'd like to work on this.
You can sponsor the project using GitHub Sponsors or via Patreon to support ongoing development and hosting costs. Patreon members get access to premium features like Mail, early access to new features, and vote on the project roadmap. Most features remain free for all users.
Mu is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
This means you are free to use, modify, and distribute this software, but if you run a modified version on a server and let others interact with it, you must make your modified source code available under the same license.