Skip to content

Build On Top

Lyuben Kikov edited this page Mar 17, 2026 · 3 revisions

📖 README | 🏠 Home

🏗️ Build On Top

Aperio is a foundation. The source is fully open — fork it and extend it.

📖 Personal Memory — Extend Aperio for Your needs

  • Custom memory types — add columns, new types, per-project namespacing
  • New MCP tools — calendar, email, git, deploy — one function per tool
  • Swap embeddings — OpenAI, Cohere, local nomic-embed via Ollama
  • Replace the UI — VS Code extension, Raycast plugin, mobile app, CLI
  • Memory analytics — query your own brain, visualize growth over time
  • Multi-agent sharing — research agent, coding agent, writing agent — one brain

🏢 Team Shared Memory — Extend Aperio for Your Team

Aperio is personal by default — but since you own the database, it can become a shared team brain with minimal changes.

Every agent, every teammate, every tool — all drawing from the same memory pool.

Right now Aperio stores your context. But the same architecture works for a team:

  • Shared decisions — "We chose Fly.io over Railway in Q3 2024 because..."
  • Project knowledge — "Project Atlas uses Next.js, PlanetScale, and Stripe. PM is Sara."
  • People context — "John handles DevOps, prefers async communication, timezone UTC+2"
  • Onboarding — "New devs should read X, set up Y, ask Z about access"
  • Runbooks — "When the DB goes down: check pgvector index first, then..."

Any agent connected to the MCP server reads all of this automatically.

How to set it up

1. Update prompts/system_prompt.md

Change the identity line to reflect a team context:

You are a helpful team assistant with access to Aperio — a shared memory system
that stores context about your team, projects, and decisions across conversations.

2. Seed team memories in db/migrations/001_init.sql

Add your team's baseline context as seed data:

INSERT INTO memories (type, title, content, tags, importance, source) VALUES
  ('project', 'Project Atlas', 'Next.js frontend, PlanetScale DB, Stripe payments. Repo: github.com/team/atlas. PM: Sara. Lead dev: John.', ARRAY['atlas','nextjs','stripe'], 5, 'manual'),
  ('project', 'Project Beacon', 'Internal analytics dashboard. React + FastAPI + ClickHouse. Owned by data team.', ARRAY['beacon','analytics','clickhouse'], 4, 'manual'),
  ('person', 'Sara — Product Manager', 'PM for Atlas and Beacon. Handles roadmap, stakeholder comms. Prefers Slack over email.', ARRAY['sara','pm','atlas'], 4, 'manual'),
  ('person', 'John — DevOps Lead', 'Manages infra on Fly.io. Primary contact for deployment issues. UTC+2.', ARRAY['john','devops','infra'], 4, 'manual'),
  ('decision', 'Chose Fly.io over Railway', 'Decided Q3 2024. Better pricing for always-on workloads, easier multi-region. Revisit if team grows past 10.', ARRAY['infra','flyio','railway'], 5, 'manual'),
  ('fact', 'Stack conventions', 'TypeScript everywhere. Tabs not spaces. All PRs require one review. Deploys on merge to main.', ARRAY['conventions','typescript','git'], 5, 'manual'),
  ('solution', 'pgvector HNSW index fix', 'Drop and recreate index after bulk insert. Run: DROP INDEX memories_embedding_idx; then recreate.', ARRAY['postgres','pgvector','fix'], 4, 'manual');

3. Connect your team to the same MCP server

Point everyone's Cursor / Windsurf / Claude at the same mcp/index.js:

{
  "mcpServers": {
    "aperio-team": {
      "command": "node",
      "args": ["/shared/path/to/aperio/mcp/index.js"],
      "env": {
        "DATABASE_URL": "postgresql://aperio:secret@your-db-host:5432/aperio"
      }
    }
  }
}

Everyone reads and writes to the same brain.

What this unlocks

Use case Example
Onboarding "What do I need to know to start contributing to Atlas?"
Project context "What's the current stack for Beacon?"
Decision history "Why did we choose Fly.io?"
People finder "Who owns the analytics pipeline?"
Runbooks "What do we do when the DB goes down?"
Cross-project search "Which projects use Stripe?"

What's coming

  • Per-user memory spaces — personal context alongside shared team context
  • Memory ownership — tag memories by who created them
  • Access control — read-only vs read-write roles
  • Audit log — see who saved or changed what and when

💡 Tip: The database is yours. The memory is yours. Scale it however you need.

[Back to top ↑]


Clone this wiki locally