Getting Started

Install Pulsar and run your first check

Installation

Download the latest binary from GitHub Releases.

Linux x86_64:

curl -L https://github.com/CarlosEduJs/pulsar/releases/latest/download/pulsar-cli-x86_64-unknown-linux-gnu.tar.xz | tar xJ
sudo mv pulsar /usr/local/bin/

macOS (Apple Silicon):

curl -L https://github.com/CarlosEduJs/pulsar/releases/latest/download/pulsar-cli-aarch64-apple-darwin.tar.xz | tar xJ
sudo mv pulsar /usr/local/bin/

macOS (Intel):

curl -L https://github.com/CarlosEduJs/pulsar/releases/latest/download/pulsar-cli-x86_64-apple-darwin.tar.xz | tar xJ
sudo mv pulsar /usr/local/bin/

Windows:

Download the .zip from GitHub Releases and add the extracted pulsar.exe to your PATH.

After installing, make sure the binary is in your PATH. Run pulsar --help to verify.

Create a sample file

Create a file called test.ts to see Pulsar in action:

test.ts
import { db } from "./db";
import { users, posts } from "./schema";

// This triggers no-select-star (implicit SELECT *)
const users = db.select().from(users);

// This triggers no-missing-limit (no LIMIT clause)
const posts = await db.select({ id: posts.id }).from(posts);

Initialize a config

pulsar init

This creates a pulsar.toml file with all rules enabled and commented-out options you can tweak later.

Run your first check

pulsar check test.ts

Output:

test.ts:4:20  error  no-select-star  Avoid implicit SELECT *. Specify columns explicitly.

  const users = db.select().from(users);
                     ^^^^^^^^^^^^^^^^^^

test.ts:7:20  warning  no-missing-limit  Query is missing a LIMIT clause.

  const posts = await db.select({ id: posts.id }).from(posts);
                                           ^^^^^^^^^^^^^^^^^^

Each diagnostic shows the file, line:column, rule ID, and a message with the relevant source code highlighted.

Learn about a rule

pulsar explain no-select-star

Prints the rule's documentation directly in your terminal.

Next steps

Last updated on

On this page