A command-line tool for code review and security scanning.
npm install -g codeant-cliFor installation, authentication, and self-hosted setup, see the CodeAnt CLI setup guide.
# Login to CodeAnt
codeant login
# Scan your changes for secrets
codeant secrets
# Review your changes
codeant reviewcodeant <command> [options]Authenticate with CodeAnt. Opens a browser window for login.
codeant loginLog out from CodeAnt.
codeant logoutScan your code for exposed secrets, API keys, and credentials.
codeant secrets [options]Options:
| Option | Description |
|---|---|
--all |
Scan committed (unpushed) + uncommitted changes, including untracked files (default) |
--committed |
Scan only unpushed commits |
--uncommitted |
Scan staged + unstaged + untracked changes |
--staged |
Scan only staged files |
--last-commit |
Scan files from the last commit |
--last-n-commits <n> |
Scan files from the last n commits (max 5) |
--base <branch> |
Scan committed + uncommitted + untracked changes since the merge-base with <branch> |
--base-commit <commit> |
Scan committed + uncommitted + untracked changes since <commit> |
--fail-on <level> |
Fail only on HIGH, MEDIUM, or all (default: HIGH) |
--include <patterns> |
Comma-separated glob patterns to include files |
--exclude <patterns> |
Comma-separated glob patterns to exclude files |
Examples:
# Scan all changed files (default)
codeant secrets
# Scan only staged files
codeant secrets --staged
# Scan last commit
codeant secrets --last-commit
# Only fail on HIGH confidence secrets (default)
codeant secrets --fail-on HIGH
# Fail on HIGH and MEDIUM confidence secrets
codeant secrets --fail-on MEDIUM
# Fail on all secrets (except false positives)
codeant secrets --fail-on all
# Filter files using glob patterns
codeant secrets --include '**/*.js' # Only JS files
codeant secrets --exclude 'node_modules/**,*.test.js' # Exclude patterns
codeant secrets --include 'src/**' --exclude '*.test.*' # Combine bothFile Filtering:
Use --include and --exclude with glob patterns to filter files:
*matches any characters except/**matches any characters including/*.{js,ts}matches multiple extensions- Comma-separated for multiple patterns:
--exclude 'test/**,dist/**'
Exit codes:
0- No blocking secrets found (or only false positives)1- Secrets detected that match the--fail-onthreshold
Confidence Levels:
HIGH- High confidence, likely a real secretMEDIUM- Medium confidence, may need reviewFALSE_POSITIVE- Detected but likely not a real secret (always ignored)
Run an AI code review on your local changes.
codeant review [options]Options:
| Option | Description |
|---|---|
--all |
Review committed (unpushed) + uncommitted changes, including untracked files (default) |
--committed |
Review only unpushed commits |
--uncommitted |
Review staged + unstaged + untracked changes |
--staged |
Review only staged files |
--last-commit |
Review the last commit |
--last-n-commits <n> |
Review the last n commits (max 5) |
--base <branch> |
Review committed + uncommitted + untracked changes since the merge-base with <branch> |
--base-commit <commit> |
Review committed + uncommitted + untracked changes since <commit> |
--fail-on <level> |
Fail on issues at or above BLOCKER, CRITICAL, MAJOR, MINOR, or INFO (default: CRITICAL) |
--include <patterns> |
Comma-separated glob patterns to include files |
--exclude <patterns> |
Comma-separated glob patterns to exclude files |
--headless |
Print JSON with no spinners (for agents and CI) |
--base and --base-commit take precedence over the other scope flags. They compare the base against your working tree, so staged, unstaged, and untracked files are reviewed along with commits. Files ignored by .gitignore are never reviewed. The same applies to secrets.
Examples:
# Review everything on your branch since it left main, including uncommitted and new files
codeant review --base main
# Review only uncommitted work
codeant review --uncommitted
# CI: fail on MAJOR or worse, JSON output
codeant review --base main --fail-on MAJOR --headlessSet a custom API base URL.
codeant set-base-url https://api.example.comShow the current API base URL and its source.
codeant get-base-urlQuery the same organization-wide prioritized findings shown in the CodeAnt Hotlist, or fetch one finding by its stable ID.
codeant hotlist list --org CodeAnt-AI --service github --severity critical,high
codeant hotlist get 0123456789abcdef0123456789abcdef --org CodeAnt-AI --service githubAccess repository, organization Hotlist, cloud-security, anti-pattern, and pentest findings through one command group.
codeant findings repos --org CodeAnt-AI
codeant findings repo --repo CodeAnt-AI/example --types sast,sca,iac,anti_patterns
codeant findings list --severity critical,high
codeant findings cloud history --provider all
codeant findings pentest historySee the CodeAnt findings documentation for the complete command and agent manual.
Call any CodeAnt application API using the saved bearer token. Only relative paths on the configured CodeAnt API host are accepted.
codeant api request GET /some/read/endpoint --org CodeAnt-AI --service github --query '{"page":1}'
codeant api request POST /some/app/endpoint --org CodeAnt-AI --service github --body '{"repo":"CodeAnt-AI/example"}'See the CodeAnt findings documentation for all finding commands, authentication, self-hosted provider, and agent/MCP details.
codeant --version # Show version
codeant --help # Show helpConfig is stored in ~/.codeant/config.json.
You can also use environment variables:
| Variable | Description |
|---|---|
CODEANT_API_URL |
API base URL (overrides config) |
CODEANT_API_TOKEN |
Authentication token (overrides config) |
Priority order:
- Environment variables (highest)
- Config file (
~/.codeant/config.json) - Default values
Use CodeAnt as a pre-commit hook to prevent secrets from being committed.
Create .git/hooks/pre-commit:
#!/bin/sh
codeant secretsMake it executable:
chmod +x .git/hooks/pre-commitnpx husky add .husky/pre-commit "codeant secrets"Add to lefthook.yml:
pre-commit:
commands:
secrets:
run: codeant secrets✗ 2 secret(s) found!
src/config.js
Line 5: AWS Access Key (HIGH)
Line 12: API Key (HIGH)
Remove secrets before committing.
⚠ 1 potential secret(s) found (ignored)
Ignored (false positives):
src/example.js
Line 10: Generic Secret (FALSE_POSITIVE)
✓ Commit allowed (only false positives found)
✓ No secrets found
# Run locally
node src/index.js secrets
# Run with npm
npm start secrets
# Test different scan types
node src/index.js secrets --last-commit
node src/index.js secrets --allThis package also ships an MCP (Model Context Protocol) server that exposes CodeAnt's scan, review, and PR data as tools to Claude and other MCP clients. The same source tree is packaged as a Desktop Extension (.mcpb) for one-click install in Claude Desktop.
See the CodeAnt MCP server documentation for the tools listing and installation paths. See the CodeAnt findings documentation for Hotlist and authenticated API usage.
Full policy: https://www.codeant.ai/privacy-policy
Summary of what this CLI / MCP server sends and stores:
- Data sent to CodeAnt servers. Authentication tokens, repository metadata (org, repo, branch, PR identifiers), and — for local review and secrets scanning — the code snippets and diffs you explicitly ask CodeAnt to scan. Nothing is sent on its own; every call is in response to a command you run or a tool Claude invokes.
- Where it is stored. On CodeAnt's infrastructure (https://api.codeant.ai or your self-hosted instance). Locally, the auth token is cached in
~/.codeant/config.jsonon your machine. - Third-party sharing. None beyond CodeAnt's own infrastructure. CodeAnt does not sell or share your data with third parties for marketing.
- Retention. Scan findings and PR data are retained per the CodeAnt account's retention policy (see the privacy URL above). Local config persists until you run
codeant logoutor delete~/.codeant/config.json. - Contact. support@codeant.ai
MIT