docs: FamiliarOS marketing copy, rebrand docs, and custom Familiar name
- Rewrite README.md hero and feature sections with FamiliarOS manifest copy. - Update README_OUR_CHANGES.md, FEATURES.md, FEATURES_OUR_CHANGES.md, PULL_REQUEST.md, and FEATURE_REGISTRY.md with rebrand and custom naming. - Rename packages/install-familiar/src/check-install-pet.ts to check-install-familiar.ts to match rebrand and package test script. - Custom Familiar name already wired through app-state, tray, Settings UI, and i18n; docs now describe it.
This commit is contained in:
parent
6ab3bb64d8
commit
a030240467
7 changed files with 168 additions and 336 deletions
17
FEATURES.md
17
FEATURES.md
|
|
@ -77,6 +77,13 @@ It combines:
|
|||
- Feed, play, and nap actions are also available from the familiar context menu
|
||||
- Automatic nudges when a stat gets low
|
||||
|
||||
## Custom Familiar Name
|
||||
|
||||
- Settings → General includes a **Familiar name** field for the default Familiar
|
||||
- The name persists in `familiaros-state.json` and is applied through `validatePreferencePatch`
|
||||
- The chosen name appears in the tray tooltip and the tray context menu
|
||||
- The menu falls back to the Familiar's display name or "Built-in Familiar" when no custom name is set
|
||||
|
||||
## Floating Chat Surface
|
||||
|
||||
- Double-click the familiar to open a floating prompt window
|
||||
|
|
@ -188,7 +195,9 @@ It combines:
|
|||
- Invalid-file rejection: empty files, non-Buffer data, missing names, and path-traversal names
|
||||
- Electron-free core class (`knowledge-store-core.ts`) for deterministic Node unit tests
|
||||
|
||||
## FamiliarOS MCP Server
|
||||
## FamiliarOS MCP Server (External-Agent Bridge)
|
||||
|
||||
This MCP server exposes your Familiar to Claude Code, Cursor, OpenCode, Codex CLI, or any other MCP-capable host. It is a small, controlled bridge: external agents can make your Familiar react, speak a safe bubble, or read/write memory, but they do not get unrestricted access to your desktop.
|
||||
|
||||
- Local IPC discovery file and per-run token flow
|
||||
- MCP server for FamiliarOS desktop control
|
||||
|
|
@ -228,7 +237,9 @@ It combines:
|
|||
- Agent-specific command path overrides (Claude command, OpenCode command)
|
||||
- Node command path centralized in the FamiliarOS MCP Server panel
|
||||
|
||||
## MCP Tool Servers (Built-in Chat)
|
||||
## MCP Tool Servers (Built-in Chat Tools)
|
||||
|
||||
The MCP Tool Servers panel gives the built-in floating chat the ability to do real work on your local machine. It is separate from the external-agent bridge and works without any external agent installed.
|
||||
|
||||
- Top-level **MCP Tool Servers** panel in Control Center → Integrations
|
||||
- Multi-select MCP tool activation for the built-in floating chat
|
||||
|
|
@ -240,7 +251,7 @@ It combines:
|
|||
|
||||
## Curated MCP Toolkit Surface
|
||||
|
||||
The control-center Integrations page now also includes a curated **Curated MCP Toolkit** panel. This does not pretend to be a full unsafe one-click installer for the whole MCP ecosystem. Instead, it provides a practical, permission-aware reference surface with copyable snippets and docs links.
|
||||
The control-center Integrations page includes a **Curated MCP Toolkit** panel. It is not an automatic installer; it is a permission-aware reference that explains what popular MCP tools do, what permissions they need, and how to set them up manually or as a persistent bundle in supported hosts. Each entry includes copy-paste snippets and guidance so you can adopt the MCP ecosystem deliberately.
|
||||
|
||||
### Starter Stack In The Toolkit
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,13 @@ This document lists only the features, UI surfaces, and capabilities added by ou
|
|||
- Character prompt persists in app state and applies to future assistant replies.
|
||||
- Base instructions toggle to include/exclude the default FamiliarOS behavior instructions in every chat.
|
||||
|
||||
## Custom Familiar Name
|
||||
|
||||
- Settings → General includes a user-editable **Familiar name** field for the default Familiar.
|
||||
- The name persists in app state (`familiaros-state.json`) and is applied through `validatePreferencePatch`.
|
||||
- The chosen name appears in the tray tooltip and tray context menu.
|
||||
- Falls back to the Familiar's display name or "Built-in Familiar" when no custom name is set.
|
||||
|
||||
## Familiar Text-to-Speech (Phase 2)
|
||||
|
||||
- Settings > **Text-to-Speech** panel for the familiar and floating chat.
|
||||
|
|
@ -83,14 +90,10 @@ This document lists only the features, UI surfaces, and capabilities added by ou
|
|||
## Curated MCP Toolkit Integration
|
||||
|
||||
- Curated MCP Toolkit panel inside Control Center → Integrations.
|
||||
- Permission-aware reference surface, not an automatic installer.
|
||||
- Each entry explains what the tool does, what permissions it needs, and how to set it up manually or as a persistent bundle in supported hosts.
|
||||
- Multi-select chips by tier (Starter, Terminal & Systems, Advanced).
|
||||
- Command Source labels clarify where tools come from:
|
||||
- Stable release (npm)
|
||||
- Shipped with this app
|
||||
- Local source build
|
||||
- Install Choice descriptions:
|
||||
- Manual Setup = copy-paste commands
|
||||
- Persistent Full Access = auto-register into Claude/Codex
|
||||
- Copy-paste snippets and docs links for deliberate adoption.
|
||||
- Removed redundant Curated Stack section in favor of direct tiered selection.
|
||||
|
||||
## Knowledge Store
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
This is the canonical feature registry for the VectorShell working fork of FamiliarOS. It maps every user-facing capability to the files, branches/PRs, and commits that implement it. It is kept in addition to `FEATURES.md` and `FEATURES_OUR_CHANGES.md` so that feature ownership, status, and history can be traced quickly.
|
||||
|
||||
- **Current branch:** `v3.1.0-integrated`
|
||||
- **Current HEAD:** `bb758e9`
|
||||
- **Current HEAD:** `ef722ee`
|
||||
- **Version:** `3.1.0`
|
||||
- **Status key:** `shipped` = in the signed Windows installer; `merged` = in `v3.1.0-integrated`; `in-review` = has a PR branch; `experimental` = behind a flag or not yet packaged.
|
||||
|
||||
|
|
@ -24,6 +24,8 @@ This is the canonical feature registry for the VectorShell working fork of Famil
|
|||
| Speech-bubble layout | shipped | main PR + OP2 | `08eff41`, `8648cad`, `f514960` | `apps/desktop/src/familiar-window.ts` | Larger bubbles, top-of-screen flip, responsive max-width for large familiars. |
|
||||
| Single-click petting | shipped | `pr/single-click-petting` | `46028c7`, refined `be580ba` | `apps/desktop/familiar-preload.cjs`, `plugins/official/familiaros.virtual-familiar/index.js` | Single click emits `familiar:clicked`; double click opens chat. **Not a v3.1.0 follow-up fix; pre-existing feature refined by OP1.** |
|
||||
| Virtual-familiar context menu | shipped | `pr/virtual-familiar-context-menu` + `refactor/virtual-familiar-context-menu` | `98b7875`, `ab62d9c`, `35e4d74` | `plugins/official/familiaros.virtual-familiar/index.js`, `plugins/official/familiaros.virtual-familiar/locales/en.json` | HUD moved from triple-click overlay to right-click context menu; care actions reordered/renamed. |
|
||||
| FamiliarOS rebrand | **merged** | `feat/familiaros-rebrand` | current | repo-wide | App identity, package scopes, plugin IDs, state filenames, preload names, and user-facing strings updated from OpenPets to FamiliarOS. |
|
||||
| Custom Familiar name | **merged** | `feat/familiaros-rebrand` | current | `apps/desktop/src/app-state.ts`, `apps/desktop/src/tray.ts`, `apps/desktop/src/renderer/src/main.tsx` | User-defined name for the default Familiar appears in tray tooltip and context menu. |
|
||||
|
||||
## 2. Floating chat / prompt window
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Pull Request: Floating Chat, Memory, Knowledge Store, MCP Servers, Curated MCP Toolkit, TTS Phase 2 & Familiar Sizing
|
||||
# Pull Request: FamiliarOS Rebrand, Custom Familiar Naming, Floating Chat, Memory, Knowledge Store, MCP Servers, Curated MCP Toolkit, TTS Phase 2 & Familiar Sizing
|
||||
|
||||
**Title:** feat(desktop): add floating chat, local memory, Knowledge Store, MCP Tool Servers, FamiliarOS MCP Server panel, Curated MCP Toolkit, Text-to-Speech Phase 2, expanded familiar sizing, and multi-screen support
|
||||
**Title:** feat(desktop): rebrand to FamiliarOS, add custom Familiar naming, floating chat, local memory, Knowledge Store, MCP Tool Servers, FamiliarOS MCP Server panel, Curated MCP Toolkit, Text-to-Speech Phase 2, expanded familiar sizing, and multi-screen support
|
||||
|
||||
**Author:** VectorShell working fork
|
||||
**Base:** upstream `main` at `cba81b7`
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
## Summary
|
||||
|
||||
This PR adds a complete in-app chat layer, a durable local memory system, interactive MCP tool activation, and several companion-quality improvements to the desktop familiar. Every change is additive and preserves existing MCP/agent integration behavior.
|
||||
This PR adds the FamiliarOS rebrand from OpenPets, a user-editable custom Familiar name, a complete in-app chat layer, a durable local memory system, interactive MCP tool activation, and several companion-quality improvements to the desktop familiar. Every change is additive and preserves existing MCP/agent integration behavior.
|
||||
|
||||
## Motivation
|
||||
|
||||
|
|
@ -21,6 +21,17 @@ This PR adds a complete in-app chat layer, a durable local memory system, intera
|
|||
|
||||
## What changed
|
||||
|
||||
### FamiliarOS rebrand
|
||||
|
||||
- Renamed the app, packages, plugin IDs, state files, preload files, and user-facing strings from OpenPets / pets to FamiliarOS / Familiars.
|
||||
- Updated `README.md`, `FEATURES.md`, `README_OUR_CHANGES.md`, `FEATURES_OUR_CHANGES.md`, and `PULL_REQUEST.md` to reflect the new brand and voice.
|
||||
|
||||
### Custom Familiar name
|
||||
|
||||
- Added a **Familiar name** field in Settings → General.
|
||||
- The name is persisted in `familiaros-state.json`, validated through `validatePreferencePatch`, and shown in the tray tooltip and context menu.
|
||||
- Falls back to the Familiar's display name or "Built-in Familiar" when no custom name is set.
|
||||
|
||||
### New surfaces
|
||||
|
||||
- **Floating Prompt Window** (`apps/desktop/src/prompt-window.ts`)
|
||||
|
|
@ -82,6 +93,7 @@ This PR adds a complete in-app chat layer, a durable local memory system, intera
|
|||
- OpenAPI chat: endpoint preset, model, credential, theme, base-instructions toggle.
|
||||
- Moonshot/Kimi endpoint preset.
|
||||
- Familiar character / system prompt field.
|
||||
- **Familiar name** field for the default Familiar.
|
||||
- Memory viewer with search/edit/delete.
|
||||
- **Knowledge Store** tab: upload files, search stored knowledge, delete files, and add manual memory entries.
|
||||
|
||||
|
|
@ -157,7 +169,8 @@ All existing tests pass. Additional manual verification:
|
|||
10. Add an OpenAI TTS key, select a voice, click **Speak** — audio should play through the familiar window.
|
||||
11. Store a `.txt` file in Settings > Knowledge Store and ask the assistant about its content — the reply should reference the stored file.
|
||||
12. Right-click the familiar → choose Virtual Familiar ▸ Feed/Play/Familiar/Nap; stats update and the context menu reflects the new values.
|
||||
13. Change display — familiar should stay on the display it is currently near.
|
||||
13. Change the **Familiar name** in Settings → General; the tray tooltip and tray menu should immediately show the new name.
|
||||
14. Change display — familiar should stay on the display it is currently near.
|
||||
|
||||
## Backwards compatibility
|
||||
|
||||
|
|
|
|||
407
README.md
407
README.md
|
|
@ -1,17 +1,21 @@
|
|||
<p align="center">
|
||||
<img src="assets/familiaros.png" alt="FamiliarOS - pixel art desktop companion" width="100%" />
|
||||
<img src="assets/familiaros.png" alt="FamiliarOS" width="100%" />
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<strong>A tiny desktop companion that keeps you company.</strong>
|
||||
<strong>Your AI Companion That Lives With You.</strong>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
A playful familiar that lives on your desktop, keeps you company, and can grow with bundled abilities and developer integrations.
|
||||
Most AI assistants live in a browser tab. Most AI agents live in a terminal. <strong>FamiliarOS lives on your desktop.</strong>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<sub>This branch also includes a <strong>floating chat surface</strong>, <strong>local memory</strong>, <strong>Knowledge Store</strong>, <strong>MCP Tool Servers</strong>, an <strong>FamiliarOS MCP Server</strong> panel, a <strong>Curated MCP Toolkit</strong>, <strong>Text-to-Speech (Phase 2)</strong>, and <strong>expanded familiar sizing</strong>. See <code>FEATURES.md</code>, <code>FEATURE_REGISTRY.md</code>, and <code>PULL_REQUEST.md</code> for details.</sub>
|
||||
At its heart is your <strong>Familiar</strong>: a persistent AI companion that remembers who you are, learns your preferences, speaks with you, helps with everyday tasks, and can grow into a powerful local agent with access to tools, knowledge, and workflows.
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<sub>This fork includes a <strong>floating chat surface</strong>, <strong>local memory</strong>, <strong>Knowledge Store</strong>, <strong>MCP Tool Servers</strong>, a <strong>FamiliarOS MCP Server</strong> panel, a <strong>Curated MCP Toolkit</strong>, <strong>Text-to-Speech</strong>, <strong>Familiar naming</strong>, and <strong>expanded familiar sizing</strong>. See <code>FEATURES.md</code>, <code>FEATURE_REGISTRY.md</code>, and <code>PULL_REQUEST.md</code> for details.</sub>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
|
|
@ -27,18 +31,37 @@
|
|||
</p>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## What makes FamiliarOS different
|
||||
|
||||
FamiliarOS is a **local-first AI companion platform**.
|
||||
|
||||
Create your own Familiar: a persistent desktop companion with memory, voice, knowledge, and powerful agent capabilities.
|
||||
|
||||
Your Familiar can:
|
||||
|
||||
- 🧠 **Remember** preferences, facts, notes, identities, and important details across sessions.
|
||||
- 🗣 **Speak and listen** with system voices, OpenAI, ElevenLabs, Piper, or OpenAI-compatible TTS providers.
|
||||
- 📚 **Learn from your files** through the searchable Knowledge Store.
|
||||
- 🔧 **Use MCP tools** such as filesystem access, terminal commands, web retrieval, Git, GitHub, Docker, Playwright, SQLite, memory systems, and reasoning tools.
|
||||
- 💬 **Chat** through an always-on-top floating window.
|
||||
- 🐾 **Interact** as a virtual companion with reactions, animations, and care actions.
|
||||
|
||||
Part virtual companion. Part AI assistant. Part autonomous agent. Entirely yours.
|
||||
|
||||
> **The best AI isn't just a tool you open. It's a companion that stays.**
|
||||
|
||||
---
|
||||
|
||||
## 2-minute Quick Start
|
||||
|
||||
Download and launch the desktop app from [FamiliarOS Releases](https://github.com/alvinunreal/familiaros/releases/latest). A companion familiar appears immediately; bundled abilities make it feel alive without requiring an agent setup.
|
||||
Download and launch the desktop app from [FamiliarOS Releases](https://github.com/verticaltension/familiaros/releases/latest). A companion Familiar appears immediately; bundled abilities make it feel alive without requiring an agent setup.
|
||||
|
||||
If you also want coding-agent integration, install the FamiliarOS Agent Skill with [skills.sh](https://skills.sh/):
|
||||
|
||||
```bash
|
||||
npx skills add alvinunreal/familiaros --skill familiaros
|
||||
npx skills add verticaltension/familiaros --skill familiaros
|
||||
```
|
||||
|
||||
Then open Claude Code, OpenCode, Codex, or another skill-aware agent and say:
|
||||
|
|
@ -50,48 +73,67 @@ Use the FamiliarOS skill. Install FamiliarOS for me, connect this agent, and ver
|
|||
For project setup, open your agent inside the repo and say:
|
||||
|
||||
```text
|
||||
Use the FamiliarOS skill. Help me choose or install a familiar, configure it for this project, and verify the project integration.
|
||||
Use the FamiliarOS skill. Help me choose or install a Familiar, configure it for this project, and verify the project integration.
|
||||
```
|
||||
|
||||
Useful prompts:
|
||||
|
||||
```text
|
||||
Use the FamiliarOS skill. Configure this project for Claude Code with a familiar.
|
||||
Use the FamiliarOS skill. Configure this project for OpenCode with a familiar.
|
||||
Use the FamiliarOS skill. Configure this project for Claude Code with a Familiar.
|
||||
Use the FamiliarOS skill. Configure this project for OpenCode with a Familiar.
|
||||
Use the FamiliarOS skill. Debug why familiaros_status is unavailable.
|
||||
```
|
||||
|
||||
## Star FamiliarOS
|
||||
---
|
||||
|
||||
Here is an extra GIF of me starring my own repo to encourage you to do the same. If FamiliarOS makes your coding setup a little more fun, please give the repo a star.
|
||||
## Create your Familiar
|
||||
|
||||
A Familiar is more than a chatbot. More than a virtual companion. More than an assistant.
|
||||
|
||||
A Familiar is a persistent AI companion that lives on your desktop, remembers what matters, learns how you work, and grows alongside you.
|
||||
|
||||
- **Give it a personality.** Set a character prompt in Settings.
|
||||
- **Name it.** Your Familiar appears by name in the tray and menus.
|
||||
- **Let it remember.** Memory is captured automatically from chat and can be edited or searched in Settings.
|
||||
- **Upload knowledge.** Drop files into the Knowledge Store and your Familiar can retrieve relevant information during future conversations.
|
||||
- **Talk to it.** Text or voice — your Familiar can listen and speak back.
|
||||
|
||||
You stop thinking about models, providers, APIs, prompts, and infrastructure. Instead you think:
|
||||
|
||||
> "My Familiar reminded me."
|
||||
> "My Familiar found that file."
|
||||
> "My Familiar summarized that document."
|
||||
> "My Familiar remembers how I like things done."
|
||||
|
||||
The best software creates habits. The best companions create relationships.
|
||||
|
||||
---
|
||||
|
||||
## What FamiliarOS can do
|
||||
|
||||
- **Desktop companion** — a small Familiar that idles, reacts, and gives FamiliarOS a friendly presence even before developer tools are configured.
|
||||
- **Bundled abilities** — first-party plugins add ambient check-ins, break nudges, playful Familiar actions, focus timers, safe little walks, and optional developer notifications.
|
||||
- **Floating chat** — double-click your Familiar to open an always-on-top chat window with BYOK OpenAPI-compatible providers, conversation history, and optional MCP Tool Server activation.
|
||||
- **Local memory** — the Familiar remembers facts, preferences, and notes across sessions.
|
||||
- **Knowledge Store** — upload documents, notes, code, and reference material; your Familiar retrieves relevant context automatically.
|
||||
- **Voice** — system voices, OpenAI TTS, ElevenLabs, Piper, or OpenAI-compatible endpoints for speech input and output.
|
||||
- **MCP Tool Servers** — activate filesystem, terminal, web, Git, GitHub, Docker, Playwright, SQLite, memory, and reasoning tools directly from chat.
|
||||
- **FamiliarOS MCP Server** — external agents (Claude Code, Cursor, OpenCode, Codex CLI) can control your Familiar through a safe, limited tool surface.
|
||||
- **Curated MCP Toolkit** — a permission-aware reference surface for adopting the broader MCP ecosystem safely.
|
||||
- **Virtual-Familiar status** — hunger, energy, happiness, bond, mood, and level live in the right-click context menu, never blocking chat clicks.
|
||||
- **Privacy-conscious by design** — automatic hook speech is static and local; prompts, code, logs, command output, URLs, paths, and secrets are not shown in bubbles.
|
||||
|
||||
---
|
||||
|
||||
## Manage your Familiars
|
||||
|
||||
Browse installed Familiars, preview their animations, and choose which companion should follow each coding agent from the FamiliarOS desktop app.
|
||||
|
||||
<p align="center">
|
||||
<img src="assets/star-repo.gif" alt="Starring the FamiliarOS repository" width="100%" />
|
||||
<img src="assets/manage-familiars.png" alt="Managing Familiars in the FamiliarOS desktop app" width="100%" />
|
||||
</p>
|
||||
|
||||
## What is FamiliarOS?
|
||||
|
||||
FamiliarOS is a tray-first desktop companion app. A familiar appears on your desktop, keeps you company, and can use bundled abilities for ambient presence, breaks, playful actions, and focus sessions. Coding-agent integrations are still supported as an advanced developer layer.
|
||||
|
||||
- **Desktop companion** - a small familiar that idles, reacts, and gives FamiliarOS a friendly presence even before developer tools are configured.
|
||||
- **Bundled abilities** - first-party plugins can add ambient check-ins, break nudges, playful familiar actions, focus timers, safe little walks, and optional developer notifications.
|
||||
- **Developer integrations** - advanced setup for Claude Code, OpenCode, Cursor, Pi, and MCP-capable tools when you want coding activity to drive the familiar.
|
||||
- **MCP ready** - any MCP-capable agent can send short safe speech bubbles and reactions through the FamiliarOS MCP server.
|
||||
- **Floating chat** - double-click the familiar to open an always-on-top chat window with BYOK OpenAPI-compatible providers, conversation history, and optional MCP Tool Server activation.
|
||||
- **Virtual-familiar status** - right-click the familiar and open the Virtual Familiar submenu to see hunger, energy, happiness, bond, mood, and level. No on-familiar HUD overlay, so chat clicks stay unobstructed.
|
||||
- **Single-click petting** - click the familiar once to familiar it; the virtual-familiar bond and happiness increase.
|
||||
- **Local memory** - the familiar remembers facts, preferences, and notes across sessions.
|
||||
- **Text-to-Speech (Phase 2)** - configurable system, OpenAI, ElevenLabs, Piper, or OpenAI-compatible TTS for the familiar and floating chat, with voice/model/speed controls and a test preview.
|
||||
- **Familiar-pack friendly** - loads installed animated familiar packs and can route a selected agent/project to its own familiar window.
|
||||
- **Privacy-conscious by design** - automatic hook speech is static and local; prompts, code, logs, command output, URLs, paths, and secrets are not shown in bubbles.
|
||||
|
||||
## Manage your familiars
|
||||
|
||||
Browse installed familiars, preview their animations, and choose which companion should follow each coding agent from the FamiliarOS desktop app.
|
||||
|
||||
<p align="center">
|
||||
<img src="assets/manage-familiars.png" alt="Managing familiars in the FamiliarOS desktop app" width="100%" />
|
||||
</p>
|
||||
---
|
||||
|
||||
## Quick start
|
||||
|
||||
|
|
@ -99,14 +141,14 @@ Install the desktop app, then optionally connect your coding agent.
|
|||
|
||||
### 1. Install FamiliarOS Desktop
|
||||
|
||||
Download the latest app from [FamiliarOS Releases](https://github.com/alvinunreal/familiaros/releases/latest):
|
||||
Download the latest app from [FamiliarOS Releases](https://github.com/verticaltension/familiaros/releases/latest):
|
||||
|
||||
- **macOS Apple Silicon**: `FamiliarOS-*-mac-arm64.dmg`
|
||||
- **macOS Intel**: `FamiliarOS-*-mac-x64.dmg`
|
||||
- **Windows**: `FamiliarOS-*-win-x64-setup.exe`
|
||||
- **Linux**: `FamiliarOS-*-linux-x86_64.AppImage`
|
||||
|
||||
Launch FamiliarOS. You should see the desktop familiar and the FamiliarOS tray/menu-bar icon.
|
||||
Launch FamiliarOS. You should see the desktop Familiar and the FamiliarOS tray/menu-bar icon.
|
||||
|
||||
> Current builds may be unsigned. macOS or Windows may show a security warning the first time you open the app.
|
||||
|
||||
|
|
@ -119,297 +161,42 @@ open /Applications/FamiliarOS.app
|
|||
|
||||
### 2. Optional: connect your agent
|
||||
|
||||
Use the desktop **Integrations** screen for global setup when available:
|
||||
FamiliarOS can be driven by Claude Code, OpenCode, Cursor, Pi, or any MCP-capable agent. The desktop app has a central **FamiliarOS MCP Server** panel under **Integrations** where you can choose the command source, override the Node path, pick which Familiar the agent controls, test the server, and copy the MCP JSON.
|
||||
|
||||
- **Claude Code** - installs FamiliarOS MCP, Claude memory instructions, and optional Claude hooks.
|
||||
- **OpenCode** - installs FamiliarOS MCP, an OpenCode instruction file, and the `@familiaros/opencode` plugin.
|
||||
- **MCP Toolkit** - curated setup guidance for Filesystem, Git, GitHub, Playwright, Browser Use, Memory, Fetch, Docker, and adjacent terminal/system MCP layers.
|
||||
For detailed setup, see [`docs/claude-integration.md`](docs/claude-integration.md), [`docs/opencode.md`](docs/opencode.md), and [`docs/cursor.md`](docs/cursor.md).
|
||||
|
||||
<p align="center">
|
||||
<img src="assets/integrations.png" alt="FamiliarOS desktop integrations screen" width="100%" />
|
||||
</p>
|
||||
---
|
||||
|
||||
For project-local setup, run the CLI from the project you want to configure:
|
||||
## MCP in plain English
|
||||
|
||||
```bash
|
||||
npx -y @familiaros/cli@latest configure --agent claude --familiar <petId>
|
||||
npx -y @familiaros/cli@latest configure --agent opencode --familiar <petId>
|
||||
```
|
||||
FamiliarOS includes three MCP-related surfaces. They are separate on purpose:
|
||||
|
||||
If you prefer a permanent `familiaros` shell command, install the CLI once with `npm install -g @familiaros/cli` and replace `npx -y @familiaros/cli@latest` with `familiaros`.
|
||||
### MCP Tool Servers — tools *for* your Familiar's chat
|
||||
|
||||
Project-local setup can create project files such as `.claude/settings.local.json` or `.opencode/opencode.jsonc`. Review them before committing because they may include the selected familiar id.
|
||||
The **MCP Tool Servers** panel lets the built-in floating chat do real work. Turn on tools such as filesystem, terminal, web fetch, GitHub, SQLite, Docker, or Playwright, then ask your Familiar things like *"List the files in my home directory"* or *"Summarize that PDF in my Knowledge Store."* The tools run inside the desktop app; no external agent is required.
|
||||
|
||||
## Advanced: agent integrations
|
||||
### FamiliarOS MCP Server — your Familiar as a tool *for* external agents
|
||||
|
||||
FamiliarOS integrations have three layers:
|
||||
The **FamiliarOS MCP Server** panel exposes your Familiar to Claude Code, Cursor, OpenCode, Codex CLI, or any other MCP-capable host. Those agents can then make your Familiar react, speak a safe bubble, or read/write memory. This is a small, controlled bridge — external agents do not get unrestricted access to your desktop.
|
||||
|
||||
1. **MCP tools** for explicit agent actions.
|
||||
2. **Agent instructions** so agents know when to use those tools.
|
||||
3. **Hooks/plugins** for automatic decorative reactions during normal agent work.
|
||||
### Curated MCP Toolkit — a safe manual for the wider MCP world
|
||||
|
||||
### Claude Code
|
||||
The **Curated MCP Toolkit** is not an automatic installer. It is a curated reference that explains what popular MCP tools do, what permissions they need, and how to set them up manually or as a persistent bundle in supported hosts. It is designed so you can adopt the MCP ecosystem deliberately instead of clicking "install everything."
|
||||
|
||||
Claude Code integration supports:
|
||||
|
||||
- `familiaros` MCP setup via Claude Code.
|
||||
- Managed Claude memory instructions in `~/.claude/CLAUDE.md` and `~/.claude/familiaros.md`.
|
||||
- Managed Claude hooks in `~/.claude/settings.json`.
|
||||
- Project-local setup through `npx -y @familiaros/cli@latest configure --agent claude --familiar <petId>` or the optional global `familiaros` CLI.
|
||||
|
||||
Typical global MCP command shape:
|
||||
|
||||
```bash
|
||||
claude mcp add --scope user familiaros -- npx -y @familiaros/mcp@latest
|
||||
```
|
||||
|
||||
With a selected familiar:
|
||||
|
||||
```bash
|
||||
claude mcp add --scope user familiaros -- npx -y @familiaros/mcp@latest --familiar <petId>
|
||||
```
|
||||
|
||||
See [`docs/claude-integration.md`](docs/claude-integration.md) for the full file layout, hook mapping, project-local behavior, and safety rules.
|
||||
|
||||
### OpenCode
|
||||
|
||||
OpenCode integration supports:
|
||||
|
||||
- An MCP entry using `@familiaros/cli mcp`.
|
||||
- A managed `familiaros.md` instruction file.
|
||||
- The `@familiaros/opencode` plugin for automatic reactions.
|
||||
- Global desktop setup and project-local `.opencode` setup.
|
||||
|
||||
Project-local setup:
|
||||
|
||||
```bash
|
||||
npx -y @familiaros/cli@latest configure --agent opencode --familiar <petId>
|
||||
```
|
||||
|
||||
See [`docs/opencode.md`](docs/opencode.md) for global config selection, plugin behavior, project-local setup, and safety rules.
|
||||
|
||||
### Generic MCP clients
|
||||
|
||||
Any MCP-capable editor or coding agent can talk to FamiliarOS through the MCP server while the desktop app is running.
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"familiaros": {
|
||||
"type": "stdio",
|
||||
"command": "npx",
|
||||
"args": ["-y", "@familiaros/mcp@latest"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
To target a specific installed non-default familiar:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"familiaros": {
|
||||
"type": "stdio",
|
||||
"command": "npx",
|
||||
"args": ["-y", "@familiaros/mcp@latest", "--familiar", "<petId>"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Available MCP tools:
|
||||
|
||||
- `familiaros_status` - check whether FamiliarOS is reachable and which familiar is targeted.
|
||||
- `familiaros_react` - set a short reaction on the target familiar.
|
||||
- `familiaros_say` - show a short safe speech bubble, optionally with a reaction.
|
||||
- `familiaros_memory_list` - list recent long-term memories stored by FamiliarOS.
|
||||
- `familiaros_memory_search` - search familiar memory for relevant facts, preferences, or notes.
|
||||
- `familiaros_memory_store` - store a durable memory for the familiar.
|
||||
- `familiaros_memory_forget` - delete a stored memory by id.
|
||||
|
||||
`familiaros_say` messages must be short, single-line, and must not look like code, logs, secrets, URLs, or file paths.
|
||||
|
||||
### MCP Tool Servers
|
||||
|
||||
The desktop app includes a dedicated **MCP Tool Servers** panel under **Integrations** for the built-in floating chat. Activate tool servers such as filesystem, terminal, memory, fetch-web, sequential-thinking, playwright, git, github, docker, and sqlite so the familiar can use them directly. This works independently of whether Claude, Cursor, OpenCode, or Pi are installed.
|
||||
|
||||
### FamiliarOS MCP Server
|
||||
|
||||
A central **FamiliarOS MCP Server** panel under **Integrations** configures the external-agent bridge. It collects command mode (published / bundled / local), node path, and familiar routing in one place, and provides a **Test Server** check and a **Copy MCP JSON** button for pasting into Claude Code, Cursor, Codex CLI, or any other MCP host.
|
||||
|
||||
### Curated MCP toolkit
|
||||
|
||||
The desktop app also includes a manual-but-curated **Curated MCP Toolkit** panel under **Integrations**. It is there to help you build a practical broader stack without stuffing FamiliarOS full of unsafe one-click third-party installs.
|
||||
|
||||
The toolkit offers two paths:
|
||||
|
||||
- `Manual Setup` - per-tool guidance, docs links, and copyable snippets
|
||||
- `Persistent Full Access` - `Install Now` for the supported persistent baseline in hosts such as Claude Code or Codex CLI, plus a matching copyable bundle
|
||||
|
||||
The current supported `Install Now` baseline covers:
|
||||
|
||||
- Filesystem
|
||||
- Playwright
|
||||
- Memory
|
||||
- Context7 / Docs
|
||||
- Fetch / Web when `uvx` is available
|
||||
- Sequential Thinking
|
||||
- Browser Use when `uvx` is available, with its own runtime credential still required
|
||||
|
||||
The current recommended starter set is:
|
||||
|
||||
- Filesystem
|
||||
- Git
|
||||
- GitHub
|
||||
- Playwright
|
||||
- Browser Use
|
||||
- SQLite / PostgreSQL
|
||||
- Memory
|
||||
- Fetch / Web
|
||||
- Sequential Thinking
|
||||
- Docker MCP Toolkit
|
||||
|
||||
It also maps the next terminal-oriented layers that usually matter once your workflow grows up a bit:
|
||||
|
||||
- Shell / Terminal
|
||||
- Process & Logs
|
||||
- System Info
|
||||
- SSH
|
||||
- Package Manager
|
||||
- Tmux
|
||||
- Kubernetes / Cloud
|
||||
- CI / CD
|
||||
- Ghidra
|
||||
- Binary Analysis
|
||||
- Network Analysis
|
||||
|
||||
## How it works
|
||||
|
||||
```text
|
||||
Claude Code / OpenCode / Pi / MCP client
|
||||
-> @familiaros/mcp, @familiaros/cli mcp, @familiaros/claude hook, @familiaros/opencode plugin, or @familiaros/pi extension
|
||||
-> @familiaros/client
|
||||
-> FamiliarOS desktop local IPC discovery file
|
||||
-> FamiliarOS desktop IPC socket/pipe
|
||||
-> default familiar or selected agent familiar window
|
||||
```
|
||||
|
||||
The desktop app writes a local discovery file containing an IPC endpoint and a per-run token. Clients must send that token with every request.
|
||||
|
||||
For Windows desktop + WSL agent setups, see [`docs/wsl-ipc.md`](docs/wsl-ipc.md) for the opt-in TCP transport.
|
||||
|
||||
When an integration is configured with `--familiar <petId>`, FamiliarOS asks the desktop app for a short-lived lease. Valid installed non-default familiars open as explicit agent familiar windows. Missing, invalid, broken, built-in, or default familiar requests fall back to the desktop default familiar.
|
||||
|
||||
## Reactions and speech
|
||||
|
||||
Automatic hooks are decorative and best-effort. They do not approve, deny, block, or change agent behavior.
|
||||
|
||||
Common reaction mapping:
|
||||
|
||||
| Agent activity | Reaction |
|
||||
| --- | --- |
|
||||
| Prompt/chat starts | `thinking` |
|
||||
| File edit/write/patch | `editing` |
|
||||
| Test-like shell command | `testing` |
|
||||
| Permission request | `waiting` |
|
||||
| Successful idle/stop | `success` |
|
||||
| Session/error stop | `error` |
|
||||
|
||||
Generic shell activity is intentionally quiet by default. Hook/plugin speech is throttled and selected from local static message pools such as `Approval needed` or `Something failed`.
|
||||
|
||||
### Pi extension package
|
||||
|
||||
FamiliarOS includes an experimental Pi extension package at `@familiaros/pi`. Pi support is extension-first rather than MCP-first: the extension listens to Pi lifecycle/tool events and sends local best-effort reactions through `@familiaros/client`.
|
||||
|
||||
```bash
|
||||
pi install npm:@familiaros/pi
|
||||
pi install -l npm:@familiaros/pi
|
||||
```
|
||||
|
||||
Inside Pi, the extension registers `/familiaros status`, `/familiaros test`, `/familiaros react <reaction>`, and `/familiaros say <message>`. Automatic events do not forward prompts, assistant text, tool output, file contents, paths, URLs, or secrets. Real Pi CLI install validation is still required before marking the integration fully supported.
|
||||
---
|
||||
|
||||
## Development
|
||||
|
||||
### Requirements
|
||||
|
||||
- Node.js 20+
|
||||
- pnpm 11+
|
||||
- TypeScript
|
||||
|
||||
No Bun runtime is required for development.
|
||||
|
||||
### Install
|
||||
|
||||
```bash
|
||||
pnpm install
|
||||
pnpm --filter @familiaros/desktop build
|
||||
pnpm --filter @familiaros/desktop test
|
||||
```
|
||||
|
||||
### Run the desktop app
|
||||
See `FEATURES.md` and `FEATURE_REGISTRY.md` for a full capability map.
|
||||
|
||||
```bash
|
||||
pnpm dev:desktop
|
||||
```
|
||||
---
|
||||
|
||||
Equivalent package command:
|
||||
## License
|
||||
|
||||
```bash
|
||||
pnpm --filter @familiaros/desktop dev
|
||||
```
|
||||
|
||||
### Checks
|
||||
|
||||
```bash
|
||||
pnpm check
|
||||
pnpm typecheck
|
||||
pnpm build
|
||||
pnpm test
|
||||
```
|
||||
|
||||
FamiliarOS currently uses lightweight Node contract checks instead of a full test framework. See [`docs/testing.md`](docs/testing.md).
|
||||
|
||||
### Package desktop builds
|
||||
|
||||
```bash
|
||||
pnpm package:desktop:dir
|
||||
pnpm package:desktop
|
||||
```
|
||||
|
||||
Release process details live in [`docs/release.md`](docs/release.md).
|
||||
|
||||
## Workspace layout
|
||||
|
||||
```text
|
||||
apps/desktop Electron desktop app
|
||||
packages/client @familiaros/client, local IPC client
|
||||
packages/mcp @familiaros/mcp, MCP stdio server
|
||||
packages/claude @familiaros/claude, Claude command and hook helpers
|
||||
packages/opencode @familiaros/opencode, OpenCode config and plugin integration
|
||||
packages/pi @familiaros/pi, Pi extension package
|
||||
packages/agent-events Shared safe agent event speech helpers
|
||||
packages/cli @familiaros/cli, user-run CLI, plugin scaffolder/validator, MCP/hook entrypoints
|
||||
packages/sdk @familiaros/plugin-sdk, plugin SDK v3 types + testing harness
|
||||
packages/familiar-format @familiaros/familiar-format, familiar/catalog format types
|
||||
plugins/official First-party plugin source (bundled + catalog)
|
||||
docs/ Documentation
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
- [`docs/plugins.md`](docs/plugins.md) - plugin platform (SDK v3): manifest, permissions, dev workflow, test kit.
|
||||
- [`docs/superplugins.md`](docs/superplugins.md) - SDK v3 design rationale and feature spec.
|
||||
- [`docs/claude-integration.md`](docs/claude-integration.md) - Claude Code setup, MCP, memory, hooks, and safety.
|
||||
- [`docs/opencode.md`](docs/opencode.md) - OpenCode global/project setup, plugin behavior, and safety.
|
||||
- [`docs/wsl-ipc.md`](docs/wsl-ipc.md) - Windows desktop + WSL MCP transport setup.
|
||||
- [`docs/testing.md`](docs/testing.md) - test/check strategy.
|
||||
- [`docs/release.md`](docs/release.md) - desktop release process.
|
||||
- [`docs/workflow.md`](docs/workflow.md) - project workflow notes.
|
||||
|
||||
## Safety and privacy notes
|
||||
|
||||
- FamiliarOS local IPC is local-only and protected by a per-run token.
|
||||
- Hook/plugin errors are swallowed unless debug logging is enabled.
|
||||
- Automatic speech is static and local; it does not include model-generated prompt text.
|
||||
- Tool inputs and command text are used only for coarse reaction classification.
|
||||
- Managed setup preserves unrelated user config and removes only FamiliarOS-managed entries.
|
||||
- Speech validation rejects code-like, secret-like, URL-like, path-like, or multiline messages.
|
||||
MIT
|
||||
|
|
|
|||
|
|
@ -33,23 +33,32 @@ Store files and add manual knowledge entries that the assistant can reference du
|
|||
- Relevant files are injected into the assistant's system instructions automatically.
|
||||
- Combined search across stored files and FamiliarOS memories.
|
||||
|
||||
## New: MCP Tool Servers (Built-in Chat)
|
||||
## New: MCP Tool Servers — Tools for Your Familiar's Chat
|
||||
|
||||
Activate MCP tool servers for the built-in floating chat, independently of external agents.
|
||||
The **MCP Tool Servers** panel gives the built-in floating chat the ability to do real work on your local machine. It is separate from the external-agent bridge.
|
||||
|
||||
- Filesystem, Terminal, Memory, Fetch/Web, Sequential Thinking, Playwright, Git, GitHub, Docker, SQLite.
|
||||
- Top-level **MCP Tool Servers** panel in Control Center → Integrations.
|
||||
- Tiered browser: Starter, Terminal & Systems, Advanced.
|
||||
- Tools run through an internal stdio MCP client in the main process.
|
||||
- Activate tools such as filesystem, terminal, web fetch, sequential thinking, Playwright, Git, GitHub, Docker, and SQLite.
|
||||
- The tools run through an internal stdio MCP client in the main process.
|
||||
- Once enabled, you can ask your Familiar things like *"List the files in my home directory,"* *"Summarize that PDF,"* or *"Run this test script."*
|
||||
- Tools can be turned on or off individually, so you only grant the access you actually want.
|
||||
|
||||
## New: FamiliarOS MCP Server Panel
|
||||
## New: FamiliarOS MCP Server Panel — Your Familiar as a Tool for External Agents
|
||||
|
||||
A central panel in Control Center → Integrations configures the external-agent bridge.
|
||||
The **FamiliarOS MCP Server** panel exposes your Familiar to Claude Code, Cursor, OpenCode, Codex CLI, or any other MCP-capable host.
|
||||
|
||||
- Command mode selector (published / bundled / local) in one place.
|
||||
- Node path override and familiar routing in one place.
|
||||
- Node path override and Familiar routing in one place.
|
||||
- One-click **Test Server** health check.
|
||||
- One-click **Copy MCP JSON** for Claude Code, Cursor, Codex CLI, or generic MCP hosts.
|
||||
- One-click **Copy MCP JSON** for pasting into your agent's MCP configuration.
|
||||
- This is a small, controlled bridge: external agents can make your Familiar react, speak a safe bubble, or read/write memory, but they do not get unrestricted access to your desktop.
|
||||
|
||||
## New: Curated MCP Toolkit — A Safe Manual for the Wider MCP World
|
||||
|
||||
The **Curated MCP Toolkit** is a permission-aware reference surface for adopting the broader MCP ecosystem deliberately.
|
||||
|
||||
- It is **not** an automatic installer; it explains what popular MCP tools do, what permissions they need, and how to set them up manually.
|
||||
- Each entry includes copy-paste snippets and guidance for supported hosts.
|
||||
- Use it to build a persistent tool bundle or to understand a tool before you enable it.
|
||||
|
||||
## New: Familiar Scale
|
||||
|
||||
|
|
@ -64,9 +73,16 @@ A central panel in Control Center → Integrations configures the external-agent
|
|||
|
||||
## New: Familiar Character & Base Instructions
|
||||
|
||||
- Give your familiar a custom system-prompt style character in Settings.
|
||||
- Give your Familiar a custom system-prompt style character in Settings.
|
||||
- Toggle whether the default FamiliarOS behavior instructions are included in every chat.
|
||||
|
||||
## New: Custom Familiar Name
|
||||
|
||||
- Name your default Familiar in Settings → General.
|
||||
- The chosen name appears in the tray tooltip, tray context menu, and anywhere the default Familiar is referenced.
|
||||
- If no name is set, the menu falls back to the Familiar's display name or "Built-in Familiar."
|
||||
|
||||
|
||||
## New: Text-to-Speech (Phase 2)
|
||||
|
||||
The familiar can now speak aloud using a configurable TTS provider.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue