Install SnapCode
Install SnapCode as a Claude Code plugin. No repository to clone, no container, and no GitHub account required.
Prerequisites
Install these tools on your machine before you install SnapCode:
| Tool | Why | Check command |
|---|---|---|
| Claude Code CLI v2.1.195 or later | Runs the plugin | claude --version |
| Python 3.8+ | Runs the plugin's bootstrap and auth helper |
macOS / Linux: Windows: |
| uv | Installs the slpy CLI. If not already installed, refer to
Install uv. |
uv --version |
Set your SnapLogic credentials
SnapCode supports the following sign-in methods. If you set a password and also sign in through the browser, the password takes priority. Therefore, it is recommended to use any one of them, not both:
- Username and password: Set four environment variables before starting Claude Code.
- Browser sign-in (SSO): Set one environment variable, then sign in from inside Claude Code.
Username and password
Set the following variables in your shell environment:
| Variable | What it is |
|---|---|
SNAPLOGIC_API_USER |
Your SnapLogic platform login email. Also authenticates the SnapLogic MCP server. |
SNAPLOGIC_API_PASS |
Your SnapLogic platform password. Also authenticates the SnapLogic MCP server. |
SNAPLOGIC_BASE_URL |
Your control plane URL. Use one of:
https://elastic.snaplogic.com (US),
https://elastic2.snaplogic.com (US-East), or
https://emea.snaplogic.com (EU). Write it exactly as shown:
lowercase, no trailing /. Other forms are rejected at the start of
the session in both sign-in methods. |
SNAPLOGIC_ORG_NAME |
Your SnapLogic organization name. Required to install the
slpy CLI. If you're unsure, ask your SnapLogic admin. |
macOS / Linux
Add these lines to your shell profile (~/.zshrc on macOS, or
~/.bashrc on most Linux) so they persist across terminals:
export SNAPLOGIC_API_USER='[email protected]'
export SNAPLOGIC_API_PASS='your-password'
export SNAPLOGIC_BASE_URL='https://elastic.snaplogic.com'
export SNAPLOGIC_ORG_NAME='your-org-name'
'pa'\''ss'
for pa'ss.After saving, run source ~/.zshrc (or open a new terminal) to load the
values. Restart Claude Code or your editor if it was already open.
Windows (PowerShell)
Run these commands to set the variables at the user level so they persist across new terminals:
[Environment]::SetEnvironmentVariable('SNAPLOGIC_API_USER', '[email protected]', 'User')
[Environment]::SetEnvironmentVariable('SNAPLOGIC_API_PASS', 'your-password', 'User')
[Environment]::SetEnvironmentVariable('SNAPLOGIC_BASE_URL', 'https://elastic.snaplogic.com', 'User')
[Environment]::SetEnvironmentVariable('SNAPLOGIC_ORG_NAME', 'your-org-name', 'User')
'pa''ss'
for pa'ss. After running SetEnvironmentVariable, open a
new terminal and restart Claude Code or your editor for the values to take effect.To confirm the new terminal can see the variable, run:
$env:SNAPLOGIC_BASE_URL
If it prints your SnapLogic environment URL, the variable is visible to the current terminal. If it returns an empty value, open another new terminal and try again.
Browser sign-in (SSO)
Set only SNAPLOGIC_BASE_URL. Use one of the values listed in the table
above, written exactly as shown: lowercase, no trailing /. Leave
SNAPLOGIC_API_USER and SNAPLOGIC_API_PASS unset. If you
set them for username and password before, remove both, because sign-in refuses while either
is set.
SNAPLOGIC_ORG_NAME is optional. Without it, you pick the organization
when you sign in. Set it to skip the prompt.
SNAPLOGIC_API_USER and SNAPLOGIC_API_PASS before signing
in so the browser sign-in path is used. On the first MFA login, the browser callback may not
complete automatically. If it does not, sign in again or copy the callback URL from the
terminal and open it in your browser manually.macOS / Linux
Add this line to your shell profile (~/.zshrc or
~/.bashrc), then run source ~/.zshrc or open a new
terminal:
export SNAPLOGIC_BASE_URL='https://elastic.snaplogic.com'
Windows (PowerShell)
Run this command, then open a new terminal:
[Environment]::SetEnvironmentVariable('SNAPLOGIC_BASE_URL', 'https://elastic.snaplogic.com', 'User')
Install the plugin
Run these two commands to install SnapCode:
claude plugin marketplace add Snap-Developers/SnapCode-CC-Plugin
claude plugin install snapcode@snapcode
First run
Start Claude Code from any directory where your credentials are set:
claude
Every session opens with a startup checklist: one line per component shows
[ok] (ready) or [x] (needs attention) for the
snaplogic CLI, slpy, sign-in, MCP server, and skills.
For username and password users, every line shows [ok] on the first
session. For SSO users, the first session shows [x] for Sign-in,
slpy, and the MCP server. This behavior is expected.
If you signed in using browser sign-in (SSO), complete the following steps:
-
The checklist shows
[x]for Sign-in and includes the sign-in command. Run it in the Claude Code session:! snaplogic auth loginYou pick the organization when you sign in, or set
SNAPLOGIC_ORG_NAMEto skip the question. Approve Authorize SnapLogic CLI in the browser, then run/mcpto reconnect the SnapLogic MCP server. -
Start a new Claude Code session. Every checklist line now shows
[ok].
!
snaplogic auth status to see both the limits. You can be signed in to one control
plane at a time. To switch, run ! snaplogic auth logout, exit Claude Code,
update SNAPLOGIC_BASE_URL to the new control plane, start Claude Code
again, and sign in.Perform the following checks to confirm that SnapCode is correctly installed:
-
Type
/mcpand press Enter. Theplugin:snapcode:snaplogicserver should be listed and show Connected. -
Type
/snaplogicand press Enter. Confirm thatsnaplogic-slpy-gen,snaplogic-deploy,agent-pipelines, andmcp-server-pipelinesare listed. -
Run these commands directly in your Claude Code session to verify the
slpyCLI is installed:! which slpy ! slpy --helpwhich slpyshould point inside the SnapCode plugin cache, andslpy --helpshould print the CLI usage instead of command not found.
Generate a pipeline that reads from a csv and writes to json.Update SnapCode
Auto-update is off by default. To enable it, use one of the following methods:
- Terminal: Run
/pluginin the Claude Code terminal, navigate to Marketplaces > snapcode, and select Enable auto-update. - Settings file: Add
"autoUpdate": trueunderextraKnownMarketplaces.snapcodein~/.claude/settings.json(macOS/Linux) or%USERPROFILE%\.claude\settings.json(Windows):{ "extraKnownMarketplaces": { "snapcode": { "source": { "source": "github", "repo": "Snap-Developers/SnapCode-CC-Plugin" }, "autoUpdate": true } } }
To update manually, run:
claude plugin marketplace update snapcode
claude plugin update snapcode@snapcode
Then run /reload-plugins in an open session, or restart Claude Code, to
use the new version. Without this step, an open session keeps running the old version.
slpy and snaplogic CLIs update independently of
the plugin. At session start, the plugin checks for a newer slpy version
no more than once every 24 hours and installs it automatically. The
snaplogic CLI also updates itself when a newer version is out.Uninstall SnapCode
If you signed in through the browser (SSO), sign out first from inside Claude Code while the plugin is still installed:
! snaplogic auth logout
Then run these two commands to remove the plugin:
claude plugin uninstall snapcode@snapcode
claude plugin marketplace remove snapcode
To also remove files written outside the plugin directory (safe to delete, regenerated on reinstall), run the following cleanup commands:
macOS / Linux:
rm -rf ~/.claude/plugins/cache/snapcode
rm -rf ~/.claude/plugins/data/snapcode-snapcode
rm -rf ~/.claude/snapcode
Windows (PowerShell):
Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\plugins\cache\snapcode"
Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\plugins\data\snapcode-snapcode"
Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\snapcode"
Troubleshooting
Refer to Troubleshoot SnapCode for help
with downloading the CLI, sign-in, slpy installation, and MCP connection
issues.