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: python3 --version

Windows: python --version

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'
Tip: If your password contains a single quote, use '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')
Tip: If your password contains a single quote, use '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.

Note: MFA is also supported through browser sign-in. Clear the values of 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:

  1. The checklist shows [x] for Sign-in and includes the sign-in command. Run it in the Claude Code session:

    ! snaplogic auth login

    You pick the organization when you sign in, or set SNAPLOGIC_ORG_NAME to skip the question. Approve Authorize SnapLogic CLI in the browser, then run /mcp to reconnect the SnapLogic MCP server.

  2. Start a new Claude Code session. Every checklist line now shows [ok].

Note: The sign-in renews itself while you use it. Sign in again when it has gone unused for a while, reaches its maximum lifetime, or after you sign out of SnapLogic. Run ! 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:

  1. Type /mcp and press Enter. The plugin:snapcode:snaplogic server should be listed and show Connected.

  2. Type /snaplogic and press Enter. Confirm that snaplogic-slpy-gen, snaplogic-deploy, agent-pipelines, and mcp-server-pipelines are listed.

  3. Run these commands directly in your Claude Code session to verify the slpy CLI is installed:

    ! which slpy
    ! slpy --help

    which slpy should point inside the SnapCode plugin cache, and slpy --help should print the CLI usage instead of command not found.

You're now ready to send your first prompt, such as:
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 /plugin in the Claude Code terminal, navigate to Marketplaces > snapcode, and select Enable auto-update.
  • Settings file: Add "autoUpdate": true under extraKnownMarketplaces.snapcode in ~/.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.

Note: When a newer version is out, the first thing each session shows is how to update.
Note: The 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.