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 pluserrorOnUnmatchedPattern - Returns:
LintResult[]
async function lint(patterns: string[], options?: LintOptions): Promise<LintResult[]>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) - ThefilePathoption determines which validators run - Returns:
LintResult[]
async function lintText(code: string, options?: LintTextOptions): Promise<LintResult[]>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.
- Parameters:
filePath(string) - Path to resolve config for;options(ConfigOptions, optional) - Returns:
ClaudeLintConfig
async function resolveConfig(filePath: string, options?: ConfigOptions): Promise<ClaudeLintConfig>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
async function formatResults(
results: LintResult[],
formatterName?: string,
options?: FormatterOptions
): Promise<string>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'); // SARIFgetFileInfo()
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
async function getFileInfo(filePath: string, options?: FileInfoOptions): Promise<FileInfo>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
async function loadFormatter(
nameOrPath: string,
options?: { cwd?: string }
): Promise<Formatter>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.
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