owletto

agent
Security Audit
Warn
Health Pass
  • License — License: NOASSERTION
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 10 GitHub stars
Code Warn
  • fs module — File system access in .github/workflows/publish-sdk.yml
  • network request — Outbound network request in connectors/github.ts
Permissions Pass
  • Permissions — No dangerous permissions requested
Purpose
This tool provides persistent, structured organizational memory for AI agents, allowing them to save, recall, and manage context across different conversations and sessions.

Security Assessment
Overall Risk: Medium. The application runs a local server on your machine and stores data locally. There are no hardcoded secrets, and it does not request overtly dangerous system permissions or execute raw shell commands. However, it does make outbound network requests, specifically within its GitHub connector feature, which is expected for fetching external data. File system access is also present in its automated publishing workflows. You should be mindful of the data you allow the agents to store and recall, especially if you connect it to external or public URLs rather than keeping it strictly local.

Quality Assessment
The project is highly active, with its most recent code push happening just today. It has a solid foundation for a new tool with 10 GitHub stars, indicating early but existing community validation. The main downside is that its license is marked as "NOASSERTION." This means the author has not clearly defined the terms under which the code can be used, modified, or distributed, which is a notable drawback for enterprise or commercial integration.

Verdict
Use with caution—while the tool is active and functionally safe for local use, the missing license makes it a potential legal gray area for broader adoption.
SUMMARY

Entity-based organizational memory for your agents.

README.md

Owletto

Live organizational memory for AI agents. Owletto gives MCP-capable agents structured memory, external data connectors, scheduled watchers, and a web UI to manage what they know.

Works with Claude Code, ChatGPT, Cursor, Gemini, OpenClaw, Codex, and other MCP clients.

Quick Start

Requires Node.js 20+.

  1. Start Owletto locally:
npx owletto start

This starts the local runtime on http://localhost:8787 using embedded Postgres. No Docker or external Postgres is required.

  1. Connect your agents:
npx owletto init

The wizard detects supported agents, lets you choose an MCP endpoint, and configures local clients directly when possible.
You can point agents at the local runtime, Owletto Cloud, or any custom Owletto MCP URL.

Open http://localhost:8787 to create your account. Local data is stored in ~/.owletto/data/ by default.

Local URLs (localhost and 127.0.0.1) are only reachable from your machine. Use a tunnel or public URL if your agents run remotely.

How It Works

Most AI agents lose memory between sessions. Owletto gives them persistent, structured memory that survives across conversations, agents, and teams.

Structured Memory

Instead of storing a flat pile of embeddings, Owletto stores knowledge in entity types you define, backed by JSON Schema.

Organization
  └─ Entity Types
      └─ Entities
          ├─ Content
          ├─ Connections
          └─ Watchers

Agents save facts with a kind such as preference, decision, fact, or observation. New facts can supersede older ones, so memory stays current without losing history.

Recall And Capture

  • Plugin-capable agents such as OpenClaw can recall relevant memory before each prompt and capture new observations after each response automatically.
  • Agents without plugin hooks such as Claude Code, Codex, Cursor, and ChatGPT call Owletto directly to search and save memory during the conversation.
  • Recall is structured: Owletto uses the user message to identify likely entities, then retrieves related facts, observations, and connected context for those entities instead of relying on raw vector matches alone.
  • That recalled memory is injected before prompt construction, so the agent sees relevant context before it starts reasoning about the turn.
  • The web UI closes the loop: users can review recalled memory, correct facts, edit metadata, manage sources, and control watcher schedules, and those changes affect future recall immediately.

OpenClaw Plugin Loop

The OpenClaw plugin (packages/openclaw-plugin) closes the memory loop in three stages:

  1. Before each prompt, it uses the user's message to find relevant entities, retrieves related memory for those entities, and injects the result into prompt context.
  2. It also injects workspace instructions such as entity schemas, available tools, and organization structure so the agent understands the domain it is operating in.
  3. During the conversation, the agent can use Owletto to save knowledge, manage entities, connect sources, and control watchers.
  4. After the turn, it saves the exchange as an observation so future prompts can recall it.

That gives OpenClaw automatic recall, explicit memory writes, and continuous capture in one loop.

flowchart TD
    A["User message"] --> B["Find likely entities from the prompt"]
    B --> C["Retrieve related facts, observations, and connected context"]
    C --> D["Inject memory and workspace instructions before prompt construction"]
    D --> E["Agent responds and can use Owletto during the turn"]
    E --> F["Save new observations after the turn"]
    F --> G["Web UI review and correction"]
    G --> C

Hybrid Search

Owletto blends three signals for recall:

  1. Entity name matching
  2. Full-text search
  3. Semantic vector search

This makes recall more reliable than vector-only lookup, especially when agents use different wording from the original source.

Connectors And Watchers

Owletto can ingest external content from Reddit, GitHub, app stores, review sites, Google Maps, Hacker News, YouTube, RSS, LinkedIn, and more.

Watchers analyze that content on a schedule, extract structured data through JSON Schema, track trends over time, and can write classifications back to the source content.

Why Not Just A Vector Database?

Vector DB Owletto
Schema None Custom entity types with JSON Schema validation
Updates Duplicate or overwrite Superseding with history
Scope Flat namespace Organization > Entity Type > Entity > Content
Search Vector-only Hybrid recall
Sources Manual ingestion Built-in connectors with scheduled sync
Analysis None Watchers with structured extraction

Runtime

  • Windows: Watchers persist bounded time ranges as durable analysis windows with structured extracted_data.
  • Classifications: Watcher output can classify cited source content while preserving the link between summary and evidence.
  • Continuous processing: Feeds resume from checkpoints, and watchers analyze only the next time window instead of reprocessing everything.
  • Database: PostgreSQL 17 + pgvector
  • Runtime: Node.js + Hono
  • Embeddings: HuggingFace transformers, self-hosted
  • Worker: Playwright-based connector execution
  • Protocol: Model Context Protocol over HTTP

Connector Model

  • Connectors support OAuth, API keys or env credentials, or persisted browser sessions.
  • Each connector declares a ConnectorDefinition with auth, feeds, and actions, then implements a ConnectorRuntime.
  • sync() ingests normalized events with checkpoints, and execute() performs write actions with approval when needed.

Development

# Prerequisites: Node.js 20+, pnpm 9+, Docker
pnpm install
pnpm dev:all
pnpm dev:all:down
pnpm test
pnpm typecheck

To run from source instead of npx:

git clone https://github.com/lobu-ai/owletto.git
cd owletto
pnpm install
pnpm owletto start

From a repo checkout, local data is stored at ./data/.

Connectors

Built-in connectors include:

reddit, github, trustpilot, gmaps, ios_appstore, google_play, hackernews, youtube, x, producthunt, capterra, g2, glassdoor, rss, linkedin, website

Owletto Cloud

Owletto Cloud adds managed features on top of the open-source core:

  • Always-on agents via lobu.ai
  • Multi-organization workspaces with RBAC and SSO
  • Delivery to Slack, Telegram, and WhatsApp
  • Managed hosting

Reviews (0)

No results found