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

# Quickstart

> Create a project and start building in minutes

## 1. Create a project

Head to the [Lark dashboard](https://dashboard.lark.sh) and sign in with Google. Click **New Project** and give it a name. This generates a project ID you'll use to connect.

In your project's **Settings** page, note your **Project ID**. You'll need it in the next step.

<Tip>Enable **Auto Create** in your project settings so databases are created automatically when a client connects. This is the fastest way to get started.</Tip>

## 2. Pick your SDK

<CardGroup cols={2}>
  <Card title="Lark JS SDK" icon="bolt" href="/lark-sdk/quickstart">
    The native TypeScript SDK. Lightweight (\~20KB), WebTransport support, volatile paths, modern API.
  </Card>

  <Card title="Firebase SDKs" icon="fire" href="/firebase/overview">
    Already using Firebase? Change one URL and your existing code works with Lark. Supports JS, Android, iOS, Flutter, C++, and Unity.
  </Card>
</CardGroup>

## 3. A quick example with the Lark SDK

If you're starting fresh, here's what it looks like end-to-end:

### Install

```bash theme={null}
npm install @lark-sh/client
```

### Connect and write data

```typescript theme={null}
import { LarkDatabase } from '@lark-sh/client';

// Connect to your project and database
const db = new LarkDatabase('your-project-id/my-first-database', {
  anonymous: true
});

// Write some data
await db.ref('players/alice').set({
  name: 'Alice',
  score: 0
});
```

The `anonymous: true` option connects without authentication, which is useful for getting started quickly. You'll add proper auth later.

### Read data

```typescript theme={null}
const snapshot = await db.ref('players/alice').once('value');
console.log(snapshot.val()); // { name: 'Alice', score: 0 }
```

### Subscribe to real-time updates

Subscribe to a path and your callback fires every time the data changes, from any connected client.

```typescript theme={null}
const unsubscribe = db.ref('players').on('value', (snapshot) => {
  console.log('Players:', snapshot.val());
});

// Update a score — every subscriber sees it instantly
await db.ref('players/alice/score').set(42);

// When you're done listening
unsubscribe();
```

### Clean up

```typescript theme={null}
await db.disconnect();
```

## Developer tools

### Lark CLI

The [Lark CLI](/cli/overview) lets you manage projects, databases, data, and security rules from the terminal:

```bash theme={null}
npm install -g @lark-sh/cli
lark login
lark config set-project your-project-id
```

Once set up, you can read and write data, export and import databases, deploy security rules, and monitor your project, all without leaving the terminal. See the [CLI overview](/cli/overview) for common workflows.

### Claude Code plugin

If you use [Claude Code](https://docs.anthropic.com/en/docs/claude-code), install the Lark plugin so Claude has full context on the Lark platform:

```bash theme={null}
/plugin marketplace add lark-sh/lark-skill
/plugin install lark@lark-tools
```

Use `/lark` in any conversation to activate it, or Claude will load it automatically when you're working with Lark. See the [Claude Code plugin](/cli/claude-code) page for details.

## What's next?

<CardGroup cols={2}>
  <Card title="Data structure" icon="sitemap" href="/platform/data-structure">
    Understand how Lark organizes data as a JSON tree.
  </Card>

  <Card title="Security rules" icon="shield-halved" href="/platform/security-rules">
    Lock down who can read and write your data.
  </Card>

  <Card title="Subscriptions" icon="bolt" href="/platform/subscriptions">
    Learn about real-time event types and how delta updates work.
  </Card>

  <Card title="Dashboard" icon="grid-2" href="/dashboard/overview">
    Explore your project's databases, metrics, and settings.
  </Card>
</CardGroup>
