Skip to content

Functional API

Stateless convenience functions for simple, one-off linting operations. Each function creates a new ClaudeLint instance internally and returns the result.

For shared configuration, progress tracking, or multiple operations, use the ClaudeLint class instead. See the Overview for a comparison.

Functions

lint()

Lints files matching glob patterns.

  • Parameters: patterns (string[]) - Glob patterns to match files; options (ClaudeLintOptions, optional) - All constructor options plus errorOnUnmatchedPattern
  • Returns: LintResult[]
typescript
async function lint(patterns: string[], options?: LintOptions): Promise<LintResult[]>
typescript
import { lint } from 'claude-code-lint';

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

const hasErrors = results.some(r => r.errorCount > 0);
if (hasErrors) process.exit(1);

lintText()

Lints text content without a file on disk.

  • Parameters: code (string) - Text content to lint; options (LintTextOptions, optional) - The filePath option determines which validators run
  • Returns: LintResult[]
typescript
async function lintText(code: string, options?: LintTextOptions): Promise<LintResult[]>
typescript
import { lintText } from 'claude-code-lint';

const results = await lintText('# CLAUDE.md\n\nMy instructions', {
  filePath: 'CLAUDE.md',
});

console.log(`Errors: ${results[0].errorCount}`);

resolveConfig()

Resolves the effective configuration for a file, including overrides.

typescript
async function resolveConfig(filePath: string, options?: ConfigOptions): Promise<ClaudeLintConfig>
typescript
import { resolveConfig } from 'claude-code-lint';

const config = await resolveConfig('skills/test/SKILL.md');
console.log('Active rules:', config.rules);

formatResults()

Formats lint results using a built-in or custom formatter.

  • Parameters: results (LintResult[]) - Results to format; formatterName (string, optional) - stylish (default), json, compact, sarif, github, or path to custom formatter; options ({ cwd?: string }, optional)
  • Returns: string
typescript
async function formatResults(
  results: LintResult[],
  formatterName?: string,
  options?: FormatterOptions
): Promise<string>
typescript
import { lint, formatResults } from 'claude-code-lint';

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

const output = await formatResults(results);          // stylish (default)
const json = await formatResults(results, 'json');     // JSON
const sarif = await formatResults(results, 'sarif');   // SARIF

getFileInfo()

Gets information about a file without linting it.

  • Parameters: filePath (string) - Path to check; options (FileInfoOptions, optional)
  • Returns: FileInfo - Whether the file is ignored and which validators apply
typescript
async function getFileInfo(filePath: string, options?: FileInfoOptions): Promise<FileInfo>
typescript
import { getFileInfo } from 'claude-code-lint';

const info = await getFileInfo('CLAUDE.md');
if (!info.ignored) {
  console.log('Validators:', info.validators);
}

loadFormatter()

Loads a formatter by name or path. Standalone version of ClaudeLint.loadFormatter().

  • Parameters: nameOrPath (string) - Built-in name or path to custom formatter; options ({ cwd?: string }, optional)
  • Returns: Formatter
typescript
async function loadFormatter(
  nameOrPath: string,
  options?: { cwd?: string }
): Promise<Formatter>
typescript
import { loadFormatter } from 'claude-code-lint';

const formatter = await loadFormatter('json');
console.log(formatter.format(results));

Constants

BuiltinFormatterName

Type representing valid built-in formatter names. The BUILTIN_FORMATTERS array is also exported as a runtime value containing these same names.

typescript
type BuiltinFormatterName = 'stylish' | 'json' | 'compact' | 'sarif' | 'github';

See Also

  • ClaudeLint Class - Full class API for advanced use cases
  • Types - Complete TypeScript type reference
  • Formatters - Built-in and custom formatters
  • Recipes - Build scripts, CI/CD, pre-commit hooks, and more