Skip to content

API Reference

claudelint provides a programmatic API for integrating validation into your tools and scripts. Everything is available from the claude-code-lint package.

Quick Start

typescript
import { lint, formatResults } from 'claude-code-lint';

const results = await lint(['**/*.md']);
const output = await formatResults(results);
console.log(output);

Choosing an API Style

claudelint offers two API styles. Both provide the same core linting functionality.

Functional API

Stateless, one-call convenience functions. Each call creates a fresh ClaudeLint instance internally.

typescript
import { lint, lintText, formatResults } from 'claude-code-lint';

const results = await lint(['**/*.md']);
const output = await formatResults(results);

Best for: build scripts, pre-commit hooks, CI pipelines, quick validation checks.

ClaudeLint Class

Stateful instance you configure once and reuse across multiple operations.

typescript
import { ClaudeLint } from 'claude-code-lint';

const linter = new ClaudeLint({
  fix: true,
  onProgress: (file, i, total) => console.log(`[${i + 1}/${total}] ${file}`),
});

const results = await linter.lintFiles(['**/*.md']);
const formatter = await linter.loadFormatter('stylish');
console.log(formatter.format(results));

Best for: IDE integrations, watch mode, custom progress tracking, selective auto-fix, reusing configuration across multiple operations.

At a Glance

CapabilityFunctional APIClaudeLint Class
Lint fileslint(patterns)linter.lintFiles(patterns)
Lint textlintText(code)linter.lintText(code)
Format resultsformatResults(results)linter.loadFormatter(name)
Resolve configresolveConfig(path)linter.calculateConfigForFile(path)
File infogetFileInfo(path)linter.isPathIgnored(path)
Progress callbacksYes (via LintOptions)Yes
Fix predicatesNoYes
Shared configurationNo (new instance per call)Yes
Static utilitiesN/AoutputFixes, getErrorResults, etc.

API Sections