> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zeroset.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> The memory layer that gives AI applications structured, long-term memory

<img src="https://mintcdn.com/nebula-2c744250/oSOY3l_rWTiulEiD/images/hero.png?fit=max&auto=format&n=oSOY3l_rWTiulEiD&q=85&s=1439f74d76a98952fce8e401edfa1a4a" alt="Nebula Hero" width="1974" height="886" data-path="images/hero.png" />

# Welcome to Nebula

Nebula is the memory layer for AI applications. It ingests documents, conversations, files, and connected sources, then builds a vector graph your AI can search and reason over. Retrieval returns structured semantics, procedures, and episodes instead of flat text chunks, with source text available on demand.

## Quick Example

<CodeGroup>
  ```python Python theme={null}
  from nebula import Nebula

  nebula = Nebula()

  # Create a collection
  collection = nebula.collections.create(name="engineering_team").results

  # Store a memory
  nebula.memories.create(
      collection_id=collection.id,
      raw_text="Sarah led the migration from PostgreSQL to Aurora last quarter. The project reduced our p99 latency from 200ms to 45ms.",
      metadata={"source": "standup_notes"},
  )

  # Search
  results = nebula.memories.search(
      query="What has Sarah worked on?",
      collection_ids=[collection.id],
  ).results
  ```

  ```javascript JavaScript theme={null}
  import Nebula from '@nebula-ai/sdk';

  const client = new Nebula({ apiKey: process.env.NEBULA_API_KEY });

  async function example() {
    // Create a collection
    const { results: collection } = await client.collections.create({
      name: 'engineering_team',
    });

    // Store a memory
    await client.memories.create({
      collection_id: collection.id,
      raw_text: 'Sarah led the migration from PostgreSQL to Aurora last quarter. The project reduced our p99 latency from 200ms to 45ms.',
      metadata: { source: 'standup_notes' },
    });

    // Search
    const { results } = await client.memories.search({
      query: 'What has Sarah worked on?',
      collection_ids: [collection.id],
    });
  }
  ```

  ```bash cURL theme={null}
  # Create a collection
  curl -X POST "https://api.zeroset.com/v1/collections" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -d '{"name": "engineering_team"}'

  # Store a memory
  curl -X POST "https://api.zeroset.com/v1/memories" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -d '{
      "collection_id": "COLLECTION_ID",
      "kind": "document",
      "raw_text": "Sarah led the migration from PostgreSQL to Aurora last quarter. The project reduced our p99 latency from 200ms to 45ms.",
      "metadata": {"source": "standup_notes"}
    }'

  # Search
  curl -X POST "https://api.zeroset.com/v1/memories/search" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -d '{
      "query": "What has Sarah worked on?",
      "collection_ids": ["COLLECTION_ID"]
    }'
  ```
</CodeGroup>

[Get your API key and start building →](/quickstart)

## How It Works

<Steps>
  <Step title="Ingest">
    Store documents, conversations, or files. Connect external sources like Google Drive, Gmail, Notion, and Slack. Nebula parses 40+ file formats including PDFs, images, and audio.
  </Step>

  <Step title="Extract">
    Nebula automatically builds a vector graph from your content, linking entities and relationships with temporal awareness and fact corroboration across sources.
  </Step>

  <Step title="Recall">
    Search returns structured memory: **semantics** (facts and inferences), **procedures** (preferences and habits), and **episodes** (temporal event clusters), with original source text available on demand.
  </Step>
</Steps>

## Key Features

* **Vector Graph** - Automatic entity and relationship extraction from raw content
* **Hierarchical Retrieval** - Semantics, procedures, episodes, and optional sources
* **Multimodal Ingestion** - 40+ file formats including PDFs, images, audio, and code
* **Connectors** - Sync from Google Drive, Gmail, Notion, and Slack via OAuth
* **Conversation Memory** - Multi-turn context with speaker identity tracking
* **Multi-Language SDKs** - Python, JavaScript/TypeScript, REST API, and MCP

## Core Concepts

<CardGroup cols={3}>
  <Card title="Memory Operations" href="/guides/memory-operations" icon="brain">
    Store, retrieve, and manage documents, conversations, and files
  </Card>

  <Card title="Collections" href="/guides/collections" icon="folder-tree">
    Group related memories with scoped access control
  </Card>

  <Card title="Search" href="/guides/search" icon="magnifying-glass">
    Vector graph traversal with effort levels and collection scoping
  </Card>
</CardGroup>

<CardGroup cols={3}>
  <Card title="Conversations" href="/guides/conversations" icon="messages">
    Build multi-turn chat applications with persistent context
  </Card>

  <Card title="Connectors" href="/guides/connectors" icon="plug">
    OAuth-based sync for Google Drive, Gmail, Notion, and Slack
  </Card>

  <Card title="Architecture" href="/guides/concepts" icon="book">
    Memories, sources, and the vector graph
  </Card>
</CardGroup>

## Client Libraries

<CardGroup cols={3}>
  <Card title="Python SDK" href="/clients/python" icon="python">
    Sync and async client for Python 3.10+
  </Card>

  <Card title="JavaScript SDK" href="/clients/nodejs" icon="js">
    TypeScript SDK with full type definitions
  </Card>

  <Card title="MCP Integration" href="/mcp-integration" icon="robot">
    Connect AI assistants via Model Context Protocol
  </Card>
</CardGroup>

## Support

Need help? Join our [Slack community](https://zeroset.com/slack) or reach out to [support@zeroset.com](mailto:support@zeroset.com)
