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

# Quickstart: clone, install, and run the Zorid desktop app

> Clone the Zorid monorepo, install dependencies with pnpm, launch the Electron desktop app, and create your first typed note with an embedded view.

Zorid is a pnpm monorepo with Electron (desktop) and Capacitor (mobile) shells over a set of shared Vue 3 + TypeScript packages. In v0, the focus is the desktop experience.

## Prerequisites

* **Node.js** 20+
* **pnpm** 9+
* **Git**
* A local folder to use as your **vault** (any directory of Markdown files)

## Clone and install

<Steps>
  <Step title="Clone the repository">
    ```bash theme={null}
    git clone https://github.com/zorid-app/Zorid.git
    cd Zorid
    ```
  </Step>

  <Step title="Install dependencies">
    ```bash theme={null}
    pnpm install
    ```
  </Step>

  <Step title="Run the desktop app">
    ```bash theme={null}
    pnpm --filter @zorid/desktop dev
    ```

    The Electron window opens and prompts you to select a folder to use as your vault.
  </Step>

  <Step title="Run tests (optional)">
    ```bash theme={null}
    pnpm test
    ```
  </Step>
</Steps>

## Your first typed note

Once the app is running and a vault is open, create a Type and a typed note.

<Steps>
  <Step title="Define a Type">
    Create `.zorid/types/task.ztype` in your vault:

    ```yaml theme={null}
    schemaVersion: 1
    id: task
    name: Task

    fields:
      status:
        type: select
        options: [todo, doing, done]
        default: todo
      priority:
        type: select
        options: [low, medium, high]
        default: medium
      due:
        type: date
    ```
  </Step>

  <Step title="Create a typed note">
    Create `Tasks/Fix sync conflict UI.md`:

    ```md theme={null}
    ---
    zorid:
      type: task
    status: todo
    priority: high
    due: 2026-06-01
    ---
    # Fix sync conflict UI
    ```

    Zorid renders the `Task` field group above the note body.
  </Step>

  <Step title="Embed a view">
    Create `.zorid/views/tasks.zbase`:

    ```yaml theme={null}
    schemaVersion: 1
    id: tasks
    name: Tasks

    views:
      - type: table
        name: Table
        filters:
          and:
            - zorid.type == "task"
            - status != "done"
        sort:
          - property: due
            direction: ASC
    ```

    Embed it from any Markdown note:

    ```md theme={null}
    ![[.zorid/views/tasks.zbase]]
    ```
  </Step>
</Steps>

## Next steps

<CardGroup cols={2}>
  <Card title="Storage model" icon="folder-tree" href="/architecture/storage-model">
    Where Markdown, `.zbase`, `.ztype`, and the SQLite index live.
  </Card>

  <Card title="Fields and Types" icon="table-list" href="/architecture/fields-and-types">
    How frontmatter fields and `.ztype` schemas work together.
  </Card>

  <Card title="`.zbase` schema" icon="filter" href="/architecture/zbase-schema">
    View schema and the v0 filter grammar.
  </Card>

  <Card title="Core plugins" icon="puzzle-piece" href="/core-plugins/contract">
    What ships in the box for v0.
  </Card>
</CardGroup>
