🦞 Give OpenClaw superpowered memory with one command
Install Skill

Understanding the Onelist Data Model

Discover how Onelist's "everything is an entry" philosophy creates a flexible, powerful system that adapts to how you think.

The Core Philosophy: Everything is an Entry

Most apps force you to think in their terms. Your notes go in one app, tasks in another, contacts somewhere else. When you want to connect a meeting note to a project and the people who attended? Good luck.

Onelist takes a radically different approach: everything you store is an "entry" - just with different types. A note, a task, a contact, a web clip, an AI conversation - they're all entries that can connect to each other naturally.

Think of it like a box of LEGO bricks

Every LEGO brick connects the same way, regardless of its shape or color. You can snap a tiny 1x1 brick onto a massive baseplate. Onelist works the same way - any entry can connect to any other entry, creating structures that match how your mind actually works.

Traditional Apps
  • Notes app for notes
  • Task app for tasks
  • Calendar app for events
  • Contact app for people
  • Bookmark manager for links
5 apps that don't talk to each other
Onelist
  • Note entry
  • Task entry
  • Event entry
  • Person entry
  • Bookmark entry
1 system where everything connects

Why This Matters to You

Search Everything at Once

Looking for something you saved last month? Search once, find it - whether it was a note, a saved article, a task, or a conversation.

Natural Connections

Link your meeting notes to the project they belong to, the tasks that came out of them, and the people who attended. Everything stays connected.

Future-Proof

New type of content you want to track? It fits right in. No need to wait for us to build a special feature - the system adapts to you.

AI That Understands Context

When you ask an AI assistant about your data, it can see the full picture - not just isolated pieces scattered across different apps.

Anatomy of an Entry

Every entry in Onelist has the same basic structure. Think of it as a universal container that can hold anything:

{
  "id": "abc123",           // Unique identifier
  "entry_type": "note",     // What kind of entry
  "title": "My Ideas",       // Human-readable name
  "created_at": "2026-02-01",
  "metadata": {              // Type-specific details
    // Whatever extra info this type needs
  }
}
entry_type
Defines behavior

Tells Onelist how to display it, what actions are available, and what metadata to expect.

title
Human name

The name you see in lists, search results, and links. You control this.

metadata
Flexible details

A "bag" for type-specific info: due dates for tasks, locations for events, etc.

Entry Types: Notes & Memories

📝 Notes

The classic entry type. Use notes for your thoughts, meeting notes, ideas, journal entries - anything you write yourself.

Example: Meeting Notes
Type: note
Title: Q1 Planning Meeting
Content: We discussed the roadmap for Q1...

Key trait: Notes are mutable - you can edit them anytime. They're living documents that grow with your thinking.

💾 Memories

Captured content from the outside world. When you save a web article, screenshot something, or import from another app - that becomes a memory.

Example: Saved Article
Type: memory
Title: The Future of AI Assistants
Source: https://example.com/article
Captured: 2026-02-01

Key trait: Memories are immutable - they preserve exactly what you captured. You can add notes to them, but the original stays unchanged.

Note vs Memory: When to use which?

Writing your own thoughts? Use a note. Saving something from elsewhere? It's a memory. This distinction helps you know what you can trust as a historical record vs. what's your evolving thinking.

Entry Types: Tasks & Projects

Tasks

Actionable items with a clear done/not-done state. Tasks support GTD-style organization with buckets, contexts, and due dates.

Example: A typical task
Type: task
Title: Review authentication code
Status: open
Bucket: next_actions
Context: @computer
Due: 2026-02-05

Task Buckets (GTD-style)

inbox

New tasks that need processing

next_actions

Ready to do - your active list

waiting_for

Blocked on someone else

someday_maybe

Ideas for the future

Contexts

Contexts help you filter tasks by what you need to do them:

@computer @phone @home @errands @energy:high @focus:deep

📁 Projects

A project is a collection of related work toward an outcome. Projects contain tasks, notes, memories, and anything else related to achieving a goal.

Example: A development project
Type: project
Title: Auth System Refactor
Status: active
Outcome: Modern, secure auth with OAuth support
Domain: business:acme

Key insight: Projects are just entries - which means you can link them to other entries. A project can reference a person (the client), link to relevant memories (research articles), and contain tasks (the work to be done).

🎯 Decisions

Recorded decisions with their context, alternatives considered, and rationale. Perfect for documenting why you chose a particular approach.

Example: A technology decision
Type: decision
Title: Use PostgreSQL for primary database
Alternatives: MySQL, MongoDB, SQLite
Rationale: Best combination of reliability and vector support
Reversibility: low

Entry Types: People & Contacts

👤 Person

People are entries too. This includes humans you know, AI assistants you work with, and even different "instances" of the same AI.

Human Contact
Type: person
Title: Sarah Chen
Person Type: human
Email: sarah@example.com
Roles: collaborator, reviewer
AI Agent
Type: person
Title: Claude Code
Person Type: artificial
Agent Level: type
Capabilities: coding, debugging

Why are AI agents "people"?

When an AI creates a task or note for you, you want to know who made it. By treating AI agents as "persons," you can track: "Claude Code created this task" just like "Sarah assigned this to me." Same system, consistent tracking.

Entry Types: Conversations

💬 Conversation

Chat sessions and dialogues are entries. When you talk to River (our AI assistant) or have a discussion thread, that's a conversation entry containing the back-and-forth.

Example: AI Chat Session
Type: conversation
Title: Auth refactor discussion
Channel: river
Participants: [you, river]
Messages: 42

Power move: Because conversations are entries, you can link them to projects, reference them from notes, and search across all your AI chats alongside your other content.

Entry Types: Events & Calendar

📅 Event

Calendar events with start times, end times, locations, and attendees. Events can link to the people attending and the projects they relate to.

Example: A meeting
Type: event
Title: Q1 Planning Meeting
Start: 2026-02-15 14:00
End: 2026-02-15 15:30
Location: Conference Room A
Attendees: [Sarah, Mike, You]

The connection power

After the meeting, create a note with your meeting notes and link it to the event. Create tasks for follow-ups and link those too. Now you have a complete record: when the meeting happened, what was discussed, and what actions came out of it.

Entry Types: System Types

Some entry types are used internally by Onelist to store configuration and track activity. You usually won't create these directly, but they're useful to understand.

⚙️

config

Settings and preferences. Your River AI personality, filing rules, and display preferences are all stored as config entries.

📋

log_event

Activity and audit records. When something happens (entry created, task completed), it's logged as a log_event entry.

job

Background task tracking. When you import a large archive or process files, the progress is tracked in job entries.

📦

group

Manual collections of entries. Create groups to organize entries into notebooks, albums, or any other collection structure.

Advanced: Representations

One entry can have multiple representations - different views or formats of the same content. Think of it like having the same document in Markdown, PDF, and HTML formats.

Example: A note with multiple representations

📝
Entry: "My Research Notes"
entry_type: note
markdown
Editable source
plaintext
For search indexing
public_html
For public sharing

Common representation types include:

  • markdown - Editable Markdown text
  • plaintext - Plain text for search
  • original_url - Source URL for web clips
  • webarchive - Archived copy of web page
  • transcription_text - Text from audio/video
  • image_jpeg - Image attachments

Advanced: Metadata Flexibility

The metadata field is where each entry type stores its unique information. It's a flexible "bag" that can hold any structured data.

// Task metadata
{
  "bucket": "next_actions",
  "context": "@computer",
  "due_date": "2026-02-05",
  "effort_estimate": "m"
}

// Event metadata
{
  "start_time": "2026-02-15T14:00:00Z",
  "end_time": "2026-02-15T15:30:00Z",
  "location": "Conference Room A",
  "attendees": ["person-1", "person-2"]
}

// Memory (web clip) metadata
{
  "source_url": "https://example.com/article",
  "captured_at": "2026-02-02T10:00:00Z",
  "reading_time_minutes": 8
}

This flexibility means Onelist can support new use cases without changing the core database schema. Your custom fields fit right in.

Advanced: AI Agent Attribution

When AI assistants create or modify entries, Onelist tracks who did what. This lets you distinguish between your own content and AI-generated content.

// Entry created by Claude Code
{
  "entry_type": "task",
  "title": "Fix authentication bug",
  "metadata": {
    "agent_id": "claude-code",
    "agent_version": "1.0.0",
    "source_context": {
      "conversation_id": "abc123",
      "working_directory": "/projects/myapp"
    }
  }
}

Why this matters

  • Know which AI created content
  • Filter searches by agent
  • Audit AI activity
  • Track derivation chains

Prevents loops

If AI-A creates something, and AI-B processes it, then AI-A sees it again... we track "derivation depth" to prevent infinite loops.

Reference: All Entry Types

Type Purpose Editable?
Content Types
note User-written content Yes
memory Captured/imported content No (immutable)
article Long-form published content Yes
photo Images No
video Videos No
Work Types
task Actionable items Yes
project Collections of related work Yes
decision Recorded decisions Yes
habit Recurring behaviors Yes
People & Communication
person Human or AI identity Yes
conversation Chat/dialogue sessions No (append only)
email Email messages No
Organization
group Manual collections Yes
event Calendar events Yes
bookmark Web bookmarks Yes
pin Visual bookmarks Yes
System Types
config Settings/preferences Yes
log_event Activity/audit logs No
job Background tasks No

Ready to Experience Connected Knowledge?

Join the beta and see how a unified data model transforms the way you organize, search, and connect your information.