- Updated: March 21, 2026
- 7 min read
Atomic Project: A Modern Personal Knowledge‑Base Tool Revolutionizes Note‑Taking
Skip to content You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert kenforthewin / atomic Public Notifications You must be signed in to change notification settings Fork 0 Star 7 Code Issues 0 Pull requests 0 Actions Projects Security 0 Insights Additional navigation options Code Issues Pull requests Actions Projects Security Insights mainBranchesTagsGo to fileCodeOpen more actions menuFolders and filesNameNameLast commit messageLast commit dateLatest commit History203 Commits203 Commits.cargo.cargo .github/workflows.github/workflows atomic_syncatomic_sync cratescrates dockerdocker docsdocs extensionextension iosios publicpublic scriptsscripts src-taurisrc-tauri srcsrc .dockerignore.dockerignore .gitignore.gitignore AGENTS.mdAGENTS.md CLAUDE.mdCLAUDE.md Cargo.lockCargo.lock Cargo.tomlCargo.toml DockerfileDockerfile LICENSELICENSE README.mdREADME.md ROADMAP.mdROADMAP.md docker-compose.ymldocker-compose.yml fly.toml.examplefly.toml.example index.htmlindex.html package-lock.jsonpackage-lock.json package.jsonpackage.json tsconfig.jsontsconfig.json tsconfig.node.jsontsconfig.node.json vite.config.tsvite.config.ts View all filesRepository files navigationREADMEMIT licenseAtomic A personal knowledge base that turns markdown notes into a semantically-connected, AI-augmented knowledge graph. Atomic stores knowledge as atoms — markdown notes that are automatically chunked, embedded, tagged, and linked by semantic similarity.Your atoms can be synthesized into wiki articles, explored on a spatial canvas, and queried through an agentic chat interface.Features Atoms — Markdown notes with hierarchical tagging, source URLs, and automatic chunking Semantic Search — Vector search over your knowledge base using sqlite-vec Canvas — Force-directed spatial visualization where semantic similarity determines layout Wiki Synthesis — LLM-generated articles with inline citations, built from your notes Chat — Agentic RAG interface that searches your knowledge base during conversation Auto-Tagging — LLM-powered tag extraction organized into hierarchical categories Multiple AI Providers — OpenRouter (cloud) or Ollama (local) for embeddings and LLMs RSS Feeds — Subscribe to feeds and automatically sync new articles as atoms Browser Extension — Capture web content directly into Atomic MCP Server — Expose your knowledge base to Claude and other AI tools Multi-Database — Multiple knowledge bases with a shared registry iOS App — Native SwiftUI client for reading and writing atoms on mobile Getting Started Atomic runs as a desktop app (Tauri), a headless server (Docker/Fly.io), or both. Desktop App Download the latest release for your platform from GitHub Releases (macOS, Linux, Windows). On first launch, the setup wizard walks you through AI provider configuration. Self-Host with Docker Compose git clone https://github.com/kenforthewin/atomic.git cd atomic docker compose up -d This starts the API server and web frontend. Open http://localhost and claim your instance through the setup wizard. Deploy to Fly.io cp fly.toml.example fly.toml fly launch –copy-config –no-deploy fly volumes create atomic_data –region –size 1 fly deploy Open https://your-app.fly.dev and claim your instance. The public URL for OAuth/MCP is auto-detected from the Fly app name. Standalone Server cargo run -p atomic-server — –data-dir ./data serve –port 8080 On first run, create an API token: cargo run -p atomic-server — –data-dir ./data token create –name default AI Provider Setup Atomic needs an AI provider for embeddings, tagging, wiki generation, and chat. OpenRouter (cloud) — Get an API key from openrouter.ai. Supports separate model selection for embedding, tagging, wiki, and chat. Ollama (local) — Install Ollama and pull models (e.g., ollama pull nomic-embed-text). Atomic auto-discovers available models. Configure via the setup wizard on first launch, or later in Settings.Browser Extension The Atomic Web Clipper captures web content as atoms: Open Chrome/Edge/Brave and navigate to chrome://extensions Enable “Developer mode” Click “Load unpacked” and select the extension/ directory Configure your server URL and API token in the extension options Captures are queued offline and synced when the server is available. MCP Server Atomic exposes an MCP endpoint for Claude and other AI tools to search and create atoms. The endpoint runs at /mcp on your server (e.g., http://localhost:8080/mcp). Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json): { “mcpServers”: { “atomic”: { “url”: “http://localhost:44380/mcp” } } } Available tools: semantic_search, read_atom, create_atom Architecture All business logic lives in atomic-core, a standalone Rust crate with no framework dependencies.Every client is a thin wrapper adapting it to a transport: +——————+ | atomic-core | | (all logic) | +——–+———+ +————–+————–+ v v v +———–+ +————–+ +———-+ | src-tauri | |atomic-server | |atomic-mcp| | (desktop) | | (REST + WS) | | (stdio) | +—–+—–+ +——+——-+ +———-+ | | +—–v—–+ +——v——-+ | React UI | | HTTP clients | | | | (iOS, web) | +————+ +————–+ Project Structure Cargo.toml # Workspace root crates/atomic-core/ # All business logic crates/atomic-server/ # REST + WebSocket + MCP server crates/atomic-mcp/ # Standalone MCP server (stdio) crates/mcp-bridge/ # HTTP-to-stdio MCP bridge src-tauri/ # Tauri desktop app src/ # React frontend (TypeScript) ios/ # Native iOS app (SwiftUI) extension/ # Chromium browser extension scripts/ # Import and utility scripts Development Prerequisites Node.js 22+ Rust toolchain (rustup) For the desktop app: platform-specific Tauri v2 dependencies Commands npm install # Install frontend dependencies # Desktop app npm run tauri dev # Dev with hot reload npm run tauri build # Production build # Server only cargo run -p atomic-server — serve –port 8080 # Frontend only npm run dev # Vite dev server # Checks cargo check # All workspace crates cargo test # All tests npx tsc –noEmit # Frontend type check Tech Stack Layer Technology Core Rust, SQLite + sqlite-vec, tokio Desktop Tauri v2 Server actix-web Frontend React 18, TypeScript, Vite 6, Tailwind CSS v4, Zustand 5 Editor CodeMirror 6 Canvas d3-force, react-zoom-pan-pinch iOS SwiftUI, XcodeGen AI OpenRouter or Ollama (pluggable) License MIT About No description, website, or topics provided. Resources Readme License MIT license Uh oh! There was an error while loading. Please reload this page. Activity Stars 7 stars Watchers 0 watching Forks 0 forks Report repository Releases 24 Atomic v1.0.2 Latest Mar 21, 2026 + 23 releases Packages 0 Uh oh! There was an error while loading. Please reload this page. Contributors 2 kenforthewin Kenneth Bergquist redoswald Languages Rust 48.7% TypeScript 39.5% JavaScript 6.4% Swift 4.2% CSS 0.6% Dockerfile 0.3% Other 0.3% You can’t perform that action at this time. [{“Name”:”.cargo”,”Last commit message”:””,”Last commit date”:””},{“Name”:”.github/workflows”,”Last commit message”:””,”Last commit date”:””},{“Name”:”atomic_sync”,”Last commit message”:””,”Last commit date”:””},{“Name”:”crates”,”Last commit message”:””,”Last commit date”:””},{“Name”:”docker”,”Last commit message”:””,”Last commit date”:””},{“Name”:”docs”,”Last commit message”:””,”Last commit date”:””},{“Name”:”extension”,”Last commit message”:””,”Last commit date”:””},{“Name”:”ios”,”Last commit message”:””,”Last commit date”:””},{“Name”:”public”,”Last commit message”:””,”Last commit date”:””},{“Name”:”scripts”,”Last commit message”:””,”Last commit date”:””},{“Name”:”src-tauri”,”Last commit message”:””,”Last commit date”:””},{“Name”:”src”,”Last commit message”:””,”Last commit date”:””},{“Name”:”.dockerignore”,”Last commit message”:””,”Last commit date”:””},{“Name”:”.gitignore”,”Last commit message”:””,”Last commit date”:””},{“Name”:”AGENTS.md”,”Last commit message”:””,”Last commit date”:””},{“Name”:”CLAUDE.md”,”Last commit message”:””,”Last commit date”:””},{“Name”:”Cargo.lock”,”Last commit message”:””,”Last commit date”:””},{“Name”:”Cargo.toml”,”Last commit message”:””,”Last commit date”:””},{“Name”:”Dockerfile”,”Last commit message”:””,”Last commit date”:””},{“Name”:”LICENSE”,”Last commit message”:””,”Last commit date”:””},{“Name”:”README.md”,”Last commit message”:””,”Last commit date”:””},{“Name”:”ROADMAP.md”,”Last commit message”:””,”Last commit date”:””},{“Name”:”docker-compose.yml”,”Last commit message”:””,”Last commit date”:””},{“Name”:”fly.toml.example”,”Last commit message”:””,”Last commit date”:””},{“Name”:”index.html”,”Last commit message”:””,”Last commit date”:””},{“Name”:”package-lock.json”,”Last commit message”:””,”Last commit date”:””},{“Name”:”package.json”,”Last commit message”:””,”Last commit date”:””},{“Name”:”tsconfig.json”,”Last commit message”:””,”Last commit date”:””},{“Name”:”tsconfig.node.json”,”Last commit message”:””,”Last commit date”:””},{“Name”:”vite.config.ts”,”Last commit message”:””,”Last commit date”:””},{}]
Read the original repository on GitHub for more details.
Explore related topics on our site: