Familiar is an AI-enabled workspace where you can take Notes, collaborate in wikis, chat with models, and create smart automations.
In arcane tradition, a familiar is a magical entity bound to a practitioner — it scouts, communicates, and serves as an extension of the caster's will.
Familiar has five major concepts - Chat, Notes, Wikis, scheduled actions, and shards.
A chat interface for your local AI model that is tied into all of your data - your notes, wikis, and automations. Supports imported skills and system skills like research mode for doing deep dives and searches.
Your personal notes, all indexed for easy access by familiar. Edit in rich text or directly in markdown. Share a note publicly if you want to, flattened into a read only page for external users.
Collaborate with other users just like you would expect in a simple mark-down enabled wiki. No bloat, just a simple way to share data with a team. Supports mermaid diagrams and images inline.
Schedule familiar to execute a task and deliver the output to you via Chat, Notes, Mobile Notifications, Slack or more. From cleaning up your notes every day and providing you a summary to scheduling searches for your current interests, or whatever else you can imagine.
Shards are basically data-driven agents. You define the scope of data an agent has access to, it's skills, and how you can access it. You can use an API to access data in your notes, talk to a shard on slack that can only read your recipes, or define a scope for a task runner and assign it via a scheduled action.
Familiar is built with security taken seriously. You can login however you want, as long as it is with a passkey.
Full instructions — prerequisites, Postgres, model backends, config, first-user passkey registration, systemd, and troubleshooting — are in ** DEPLOYMENT.md**.
The short version:
docker compose up -d
cd familiar-gateway && go build -o familiar-gateway ./cmd/gateway/ && cd ..
cd familiar-workspace && make build && cd ..
./familiar-gateway/familiar-gateway --http --config ~/.familiar/gateway.toml &
./familiar-workspace/familiar-workspace --config ~/.familiar/workspace.toml &
cd familiar-gateway
FAMILIAR_TEST_DSN="postgresql://familiar_test:familiar_test@localhost:5432/familiar_test?sslmode=disable" \
go test ./...
cd tests/e2e
npm install
FAMILIAR_TEST_DSN="postgresql://familiar_test:familiar_test@localhost:5432/familiar_test?sslmode=disable" \
npx playwright test
See tests/e2e/MAKE_TESTS.md
for the E2E harness details.
config.example.toml
documents every gateway block. System prompts live in
prompts/
as a tiered set (base.md
, tier_*.md
, tool_policy.md
); point
[system_prompt].dir
at it. The single config knobs you must set for a usable
instance: [adapter.http].listen_addr
, [memory].local_dsn
, at least one
[[models]]
chat model (with "tools"
in its capabilities), [system_prompt]
,
and the [admin]
WebAuthn relying-party (rp_id
/ rp_origins
).
— new-instance setup and updates.DEPLOYMENT.md— authoritative config reference.config.example.toml
MIT