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

# Quickstart

> Install LintKit and run your first scan in under a minute

## Install the plugin

<Steps>
  <Step title="Open Figma">
    Open the Figma desktop app or web app and open any design file.
  </Step>

  <Step title="Install LintKit">
    Go to **Plugins > Community**, search for **LintKit**, and click **Install**.

    Or open the [LintKit plugin listing](https://www.figma.com/community/search?resource_type=plugins\&q=LintKit) directly.
  </Step>

  <Step title="Run the plugin">
    Right-click the canvas, select **Plugins > LintKit**, or go to **Plugins > LintKit > Open LintKit** from the menu bar.
  </Step>
</Steps>

## First-run setup

The first time you open LintKit, a short setup wizard walks you through connecting your Figma account and detecting your libraries. You can skip everything and come back later — all 27 detection rules work without any setup.

<img src="https://mintcdn.com/lintkit/t_n-rB2UziSkeQnO/images/onboarding-welcome.png?fit=max&auto=format&n=t_n-rB2UziSkeQnO&q=85&s=2055117cf71f9768b6289ba40c78f9fa" alt="LintKit welcome screen showing the logo, tagline, three feature highlights, and a Get Started button" style={{ borderRadius: '8px', marginBottom: '16px', maxWidth: '360px' }} width="1098" height="1566" data-path="images/onboarding-welcome.png" />

Click **Get started** to begin.

### Connect your Figma token (Step 1 of 2)

<img src="https://mintcdn.com/lintkit/t_n-rB2UziSkeQnO/images/onboarding-token.png?fit=max&auto=format&n=t_n-rB2UziSkeQnO&q=85&s=19bc0b73e9b333c7c84df7d841a0d649" alt="Token setup screen showing benefits of connecting, a Personal Access Token input field, a help link, and a skip option" style={{ borderRadius: '8px', marginBottom: '16px', maxWidth: '360px' }} width="1098" height="1680" data-path="images/onboarding-token.png" />

LintKit asks for a **Figma Personal Access Token (PAT)**. The token is optional — skip it if you just want to try the plugin. But connecting one unlocks library-aware features:

* **Smart Replace** suggestions that match orphaned styles to your library
* **Component replacement** across libraries
* **Cross-library discovery** for deeper style matching
* **External library URLs** (paste a library file link to load it)

<Tip>You can always add or change your token later in **Settings**.</Tip>

#### How to create a token

Click **"How do I create a token?"** in the wizard to see step-by-step instructions. Here's what the LintKit helper and the Figma token screen look like side by side:

<div style={{ display: 'flex', gap: '16px', marginBottom: '16px' }}>
  <div style={{ flex: 1 }}>
    <img src="https://mintcdn.com/lintkit/t_n-rB2UziSkeQnO/images/onboarding-token-help.png?fit=max&auto=format&n=t_n-rB2UziSkeQnO&q=85&s=c3f0457b5e2e503853cf466965f8a912" alt="LintKit popover showing step-by-step instructions for creating a Figma Personal Access Token with the four required scopes listed" style={{ borderRadius: '8px', width: '100%' }} width="1098" height="1680" data-path="images/onboarding-token-help.png" />
  </div>

  <div style={{ flex: 1 }}>
    <img src="https://mintcdn.com/lintkit/t_n-rB2UziSkeQnO/images/figma-token-scopes.png?fit=max&auto=format&n=t_n-rB2UziSkeQnO&q=85&s=12c30bdc034218e2736b78fd5ff7f203" alt="Figma Generate New Token screen with the four required scopes checked: File content read, File metadata read, Library content read, and Library assets read" style={{ borderRadius: '8px', width: '100%' }} width="1509" height="2517" data-path="images/figma-token-scopes.png" />
  </div>
</div>

Your token needs these four scopes:

| Scope                  | Why LintKit needs it                                            |
| ---------------------- | --------------------------------------------------------------- |
| `file_content:read`    | Read layer data for style and component matching                |
| `file_metadata:read`   | Read file names and structure for library discovery             |
| `library_content:read` | Access published styles and components from team libraries      |
| `library_assets:read`  | Resolve style keys to file locations for cross-library features |

<Note>Figma doesn't allow editing scopes on an existing token. If you're missing a scope, you'll need to create a new token with all four.</Note>

Paste your token into the input field and click **Continue**.

### Your libraries (Step 2 of 2)

<img src="https://mintcdn.com/lintkit/t_n-rB2UziSkeQnO/images/onboarding-libraries.png?fit=max&auto=format&n=t_n-rB2UziSkeQnO&q=85&s=f810c7e11db73424f276062b04b271dc" alt="Library detection screen showing auto-detected libraries with names and style counts, a tip about opening library files, and an optional URL input for external libraries" style={{ borderRadius: '8px', marginBottom: '16px', maxWidth: '360px' }} width="1098" height="1932" data-path="images/onboarding-libraries.png" />

LintKit shows any libraries you've already registered. Libraries are not auto-detected from your file — you add them explicitly.

Two ways to add libraries:

1. **Open a library file in Figma and run LintKit there.** LintKit registers that library automatically for all your files — no token needed.
2. **Paste a library file URL.** Enter the URL in the input field and LintKit pulls in that library's styles and components. This requires a connected token (the input is disabled without one).

<Note>Using a component from a library in your working file is not enough to register that library. You must add it by URL or run LintKit inside the library file.</Note>

### Ready to scan

<img src="https://mintcdn.com/lintkit/t_n-rB2UziSkeQnO/images/onboarding-ready.png?fit=max&auto=format&n=t_n-rB2UziSkeQnO&q=85&s=32bd129fd779b1450ecb289dc59825b9" alt="Setup summary screen showing token connection status, detected library count, and a Run Your First Audit button" style={{ borderRadius: '8px', marginBottom: '16px', maxWidth: '360px' }} width="1020" height="1155" data-path="images/onboarding-ready.png" />

The final screen shows what you configured — token status and library count. Click **Run your first audit** to dismiss the wizard and start scanning your file.

## Understand the plugin layout

<img src="https://mintcdn.com/lintkit/x-2OxSQDRPShNqP0/images/plugin-overview-annotated.png?fit=max&auto=format&n=x-2OxSQDRPShNqP0&q=85&s=a6fd4b697dff9a64c5ed319f2fcd01f1" alt="LintKit plugin overview showing the four main areas" style={{ borderRadius: '8px', marginBottom: '16px' }} width="1187" height="887" data-path="images/plugin-overview-annotated.png" />

When LintKit opens, you see four main areas:

1. **Left Navigation Tabs** — categories like Styles, Values, Components, Structure, Naming, and Accessibility. Click a tab to see findings for that category only.
2. **Findings list** — each finding describes one inconsistency, grouped by rule. Click a finding to select the affected layers on the canvas.
3. **Settings and Docs** — access rule configuration and documentation from the bottom of the navigation rail.
4. **Inspector Panel** — when you click a finding, a detail panel opens on the right showing the finding summary, affected nodes, and available fixes.

<Tip>The plugin adapts to your window size. Resize it wider to see the full navigation rail, or keep it narrow for a compact view. See [Compact view](/features/compact-view) for details.</Tip>

## Run your first scan

LintKit scans the current page automatically when it opens. You don't need to click anything.

After the scan completes, you see:

<img src="https://mintcdn.com/lintkit/x-2OxSQDRPShNqP0/images/first-scan-results.png?fit=max&auto=format&n=x-2OxSQDRPShNqP0&q=85&s=255ff13269299751fef41da55c623be9" alt="LintKit scan results showing findings grouped by rule with severity badges" style={{ borderRadius: '8px', marginBottom: '16px' }} width="1194" height="887" data-path="images/first-scan-results.png" />

1. **Severity selector** — filter findings by error (red), warning (yellow), or info (blue)
2. **Rule violation row** — each finding describes one inconsistency, grouped by rule (e.g., "Fills without styles")
3. **Node count per finding** — shows how many layers are affected by each rule violation

<Info>LintKit scans the current page by default. Hidden and locked layers are skipped unless you enable them in [configuration](/configuration).</Info>

### Scanning a selection

To scan only specific layers instead of the whole page:

1. Select one or more layers on the canvas
2. LintKit automatically re-scans your selection
3. Findings update to show only what's relevant to the selected layers

<img src="https://mintcdn.com/lintkit/x-2OxSQDRPShNqP0/images/selection-scan.gif?s=c6076d19445c7c7e7f5ef8584c29bf8a" alt="Selecting different frames and watching findings update automatically" style={{ borderRadius: '8px', marginTop: '8px' }} width="800" height="780" data-path="images/selection-scan.gif" />

## Explore findings

Click any finding in the results list to:

1. **Select the affected layers** on the canvas — LintKit highlights them so you can see exactly where the problem is
2. **Open the inspector** — a detail panel showing the finding's summary, affected node count, and available fixes
3. **Navigate between nodes** — if the finding affects multiple layers, click individual nodes in the inspector to jump between them

<Tip>Use **Shift+click** to select multiple findings. This is useful for reviewing a group of related findings before deciding how to fix them.</Tip>

## Fix a finding

Once you've selected a finding, the inspector shows your fix options:

<img src="https://mintcdn.com/lintkit/MBIgPVuggX-xLZ57/images/fix-a-finding.gif?s=3e0a861e34b093e6d3bd958d8ce79b6f" alt="Clicking a finding, reviewing the suggestion, and applying a fix" style={{ borderRadius: '20px', marginBottom: '16px', boxShadow: '0 6px 15px -2px rgba(16,24,40,0.08), 0 6px 15px -2px rgba(16,24,40,0.08)' }} width="787" height="655" data-path="images/fix-a-finding.gif" />

<Steps>
  <Step title="Review the suggested fix">
    Most findings include a primary suggested fix. For example, an orphaned fill might suggest "Map to Primary/Blue" — the closest matching style in your file.

    Some findings offer multiple fix options. For example, an orphaned fill might let you map to a style, bind to a variable, or create a new style.
  </Step>

  <Step title="Choose the scope">
    Apply the fix to:

    * **This instance** — fix just the selected node
    * **All in this finding** — fix every node grouped under this finding
  </Step>

  <Step title="Apply the fix">
    Click the fix button. LintKit applies the change and removes the finding from the results.

    Every fix is a separate undo step in Figma. Press **Ctrl+Z** (or **Cmd+Z** on Mac) to undo immediately.
  </Step>
</Steps>

### Fix confidence

Not all findings can be auto-fixed with equal safety. LintKit shows a confidence level:

| Confidence                    | Meaning                                                        | Example                                           |
| ----------------------------- | -------------------------------------------------------------- | ------------------------------------------------- |
| **High** (auto-fixable)       | Safe to apply — changes a single property without side effects | Snapping padding from 7px to 8px in auto-layout   |
| **Medium** (review suggested) | Likely correct but could affect layout                         | Changing element width or height                  |
| **Low** (manual fix)          | LintKit can't auto-fix safely — provides instructions instead  | Adjusting gaps between layers in a freeform frame |

<img src="https://mintcdn.com/lintkit/x-2OxSQDRPShNqP0/images/fix-confidence-levels.png?fit=max&auto=format&n=x-2OxSQDRPShNqP0&q=85&s=cbc38e2732eea3cc90babdf4b95cf2ed" alt="Three findings showing different fix confidence levels: auto-fixable, review suggested, and manual fix" style={{ borderRadius: '8px', marginTop: '8px', marginBottom: '16px' }} width="491" height="507" data-path="images/fix-confidence-levels.png" />

### Ignoring findings

If a finding is intentional (for example, a one-off spacing exception), click **Ignore** to dismiss it. Ignored findings:

* Persist across scans
* Can be scoped to the file (everyone sees it ignored) or just you (personal), depending on your [configuration](/configuration)
* Can be shown as dimmed results if you enable **Show ignored in results** in settings

## Configure for your team

The default settings work well for general use. For tighter enforcement, configure LintKit to match your design system:

<Steps>
  <Step title="Open settings">
    Click the **Settings** tab in the plugin's navigation.

    <img src="https://mintcdn.com/lintkit/x-2OxSQDRPShNqP0/images/settings-panel-libraries.png?fit=max&auto=format&n=x-2OxSQDRPShNqP0&q=85&s=f3524eabeb0370beda856b89a04f40b3" alt="Settings panel showing library management and integration options" style={{ borderRadius: '8px', marginTop: '8px', marginBottom: '8px' }} width="1187" height="887" data-path="images/settings-panel-libraries.png" />

    1. **Settings tabs** — switch between rule configuration, integrations, and other options
    2. **External library manager** — manage which design libraries LintKit uses for color matching and style suggestions

    <Note>Library loading can take a minute for large libraries with many styles and components.</Note>
  </Step>

  <Step title="Set your spacing scale">
    If your team uses an 8px spacing grid, enter your allowed values (e.g., `0, 4, 8, 16, 24, 32, 48, 64`) and enable the **Spacing Scale** rule.
  </Step>

  <Step title="Set your corner radii">
    Enter the corner radius values your design system uses (e.g., `0, 4, 8, 16`) and enable the **Corner Radii** rule.
  </Step>

  <Step title="Connect your tokens (optional)">
    If your team uses Tokens Studio or stores tokens in GitHub, connect them in the **Integrations** section to auto-configure spacing, radii, and color rules. See [Tokens Studio](/integrations/tokens-studio) or [GitHub](/integrations/github) for setup.
  </Step>
</Steps>

See [Configuration](/configuration) for a full guide to every setting.

## Category navigation

<img src="https://mintcdn.com/lintkit/x-2OxSQDRPShNqP0/images/category-tabs.png?fit=max&auto=format&n=x-2OxSQDRPShNqP0&q=85&s=341a038f949a20c2da38a8f532efc504" alt="Navigation tabs showing Overview, Styles, Values, Components, Structure, Naming, and Accessibility categories" style={{ borderRadius: '8px', marginBottom: '8px' }} width="1125" height="257" data-path="images/category-tabs.png" />

Use the navigation tabs on the left to filter findings by category. Each tab shows findings from related rules — for example, the **Styles** tab shows orphaned fills, strokes, text, effects, and grids.

## Compact view

LintKit adapts to narrow plugin windows with a compact layout that works on smaller screens.

<img src="https://mintcdn.com/lintkit/x-2OxSQDRPShNqP0/images/minimal-view_large.png?fit=max&auto=format&n=x-2OxSQDRPShNqP0&q=85&s=62a635fee10d9cff4b5b1a8ff11da4a0" alt="LintKit in compact view showing the findings list and inspector panel side by side" style={{ borderRadius: '8px', marginBottom: '8px' }} width="1134" height="887" data-path="images/minimal-view_large.png" />

The left shows the compact findings list, and the right shows the inspector panel when you tap a finding. All fix capabilities remain available regardless of window size. See [Compact view](/features/compact-view) for details.

## What's next?

<CardGroup cols={2}>
  <Card title="Browse all rules" icon="list-check" href="/rules/overview">
    See all 24 rules, what they check, and how to fix their findings.
  </Card>

  <Card title="Configure rules" icon="gear" href="/configuration">
    Set up spacing scales, radii, color tolerances, and library governance.
  </Card>

  <Card title="Compliance dashboard" icon="chart-line" href="/features/dashboard">
    Understand your compliance score and handoff readiness.
  </Card>

  <Card title="Connect design tokens" icon="plug" href="/integrations/tokens-studio">
    Auto-configure rules from Tokens Studio or GitHub token files.
  </Card>
</CardGroup>
