CodeScene CLI tool¶
What You Can Do With The CLI¶
The CodeScene CLI helps you run CodeScene analyses where developers work: locally, in pre-commit/push hooks, and in CI.
What you can do with the CLI:
Review non-committed or staged changes before opening a PR.
Compare branches with delta analysis to see code health impact.
Use pre-commit and pre-push hooks to catch issues early.
Integrate with editors and CI/CD pipelines.
Run The CLI In A Git Pre-Commit Hook¶
Use this pre-commit hook as a deterministic quality gate that blocks commits which would lower Code Health or introduce new unhealthy code.
It complements the CodeScene MCP safeguard guidance. AI-assisted workflows are non-deterministic, so the hook adds a local, deterministic safety net before code is committed.
For manual coding workflows, it shortens the feedback loop by catching Code Health regressions so you don’t have to wait for Pull Request checks.
The script below prefers interactive mode when a TTY is available, and falls back to a non-interactive git-hook mode in editors that do not expose terminal input to hooks.
#!/bin/sh
# Skip the hook when the CodeScene CLI is not installed.
if command -v cs > /dev/null 2>&1; then
# Some editors run hooks without a TTY, so interactive prompts are not possible.
if (exec </dev/tty) > /dev/null 2>&1; then
# Reattach stdin to the terminal before starting interactive mode.
exec < /dev/tty
cs delta --interactive --staged
else
# Fall back to non-interactive hook mode when no terminal input is available.
cs delta --git-hook --staged
fi
fi
👉 Save the script as .git/hooks/pre-commit``repository and make it executable with ``chmod +x .git/hooks/pre-commit.
Command Guides And Reference¶
Here is a quick guide to the core workflows:
cs deltafor change-based analysis between working tree, commits, or branches.cs reviewandcs checkfor file-focused code health feedback.cs rules-configandcs check-rulesfor custom code health rule tuning.
Install The CLI¶
Installation¶
Linux, macOS and Windows (if WSL)¶
The install script will download the binary, move it to ~/.local/bin and make it executable. If ~/.local/bin is not in the user’s PATH, it will be added.
It works if your shell is one of: bash, zsh or fish
curl https://downloads.codescene.io/enterprise/cli/install-cs-tool.sh | sh
Windows (powershell)¶
The powershell script downloads the windows binary, moves it to $env:USERPROFILE\AppData\Local\Programs\CodeScene and makes it executable.
Invoke-WebRequest -Uri 'https://downloads.codescene.io/enterprise/cli/install-cs-tool.ps1' -OutFile install-cs-tool.ps1
.\install-cs-tool.ps1
Note, on non-server editions of Windows, the script execution policy is set to Restricted by default, and script execution is disabled. It can be enabled with:
Set-ExecutionPolicy RemoteSigned
This allows for the execution of trusted scripts downloaded from the internet, and all local scripts. In our case the script is considered a local file.
Manual installation¶
The binaries are also available for manual installation. Just download the binary for you platform and make it executable.
Platform specific notes¶
MacOS binaries are not signed, thus you have to manually move them out of quarantine using
xattr -dr com.apple.quarantine <binary>.Windows users might have to set the script execution policy manually as mentioned above:
Set-ExecutionPolicy RemoteSigned
Updating¶
To update the tool, just run the install script again or re-do the manual installation.
You can check the version of the installed tool via cs version, which will print out the build date and SHA for the installed version.
Authenticate The CLI¶
For interactive use, sign in with your CodeScene account. The command opens a browser for login and stores a refreshable session locally. The CLI refreshes the session automatically. Sign in again if the session expires, or revoke it from Manage OAuth2 CLI And IDE Sessions.
cs auth login
Use --no-browser when the CLI cannot open a browser, for example in an SSH session or on a headless machine. It prints a login URL that you can open in a browser on this or another computer:
cs auth login --no-browser
Check the stored session, or sign out:
cs auth status
cs auth logout
For CI or other non-interactive environments, use an access token. Ask your CodeScene administrator to set up a token on the projects configuration page, then set:
export CS_ACCESS_TOKEN=<your-access-token>
Or in Windows PowerShell:
$env:CS_ACCESS_TOKEN = '<your-access-token>'
Select A Cloud Account¶
Browser login does not require CS_ACCOUNT_ID. If you belong to more than one Cloud account, complete login once, then list the accounts you can use:
cs auth list-accounts
To sign in to a specific account, or to switch to another account, set CS_ACCOUNT_ID and run login again:
CS_ACCOUNT_ID=123 cs auth login
The signed-in user must be a member of the requested account. Sessions are stored separately for each account. CS_ACCOUNT_ID does not affect CS_ACCESS_TOKEN authentication.
Windows setup options¶
PowerShell:
$env:CS_ACCESS_TOKEN = '<your-access-token>'
Windows Command Prompt (temporary, current session):
SET CS_ACCESS_TOKEN=<your-access-token>
Windows Command Prompt (persistent):
SETX CS_ACCESS_TOKEN=<your-access-token>
Note: SETX changes take effect in newly opened terminals.
You can also set variables through System Properties:
Right-click “This PC” or “My Computer”
Click “Properties”
Click “Advanced system settings”
Click “Environment Variables”
Shortcut:
Press
Windows + RType
sysdm.cplGo to the “Advanced” tab
Click “Environment Variables”