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. Earlier versions do not support the ${CLAUDE_PLUGIN_ROOT} placeholder required for MCP authentication, so the SnapLogic MCP Server will not connect. claude --version
Python 3.8+ Runs the plugin's bootstrap and auth helper

macOS / Linux: python3 --version

Windows: python --version

Set your SnapLogic credentials

SnapCode authenticates to the SnapLogic cloud using your existing SnapLogic credentials. 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 pod URL — the same host you use for the SnapLogic UI.
SNAPLOGIC_ORG_NAME Your SnapLogic organization name. Required to install the slpy CLI. If you are unsure of the exact name, 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://your-pod.snaplogic.com'
export SNAPLOGIC_ORG_NAME='your-org-name'
Note: 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://your-pod.snaplogic.com', 'User')
[Environment]::SetEnvironmentVariable('SNAPLOGIC_ORG_NAME', 'your-org-name', 'User')
Note: 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.

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 in any directory where your credentials from the previous step are set:

claude

After a few seconds, you see a welcome message confirming that SnapCode is set up:


Claude Code welcome screen showing SnapCode plugin loaded with skills and MCP server ready

On every session the plugin loads the SnapCode skills, connects to the SnapLogic MCP server using your credentials, and makes the slpy CLI ready.

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.


    /mcp output showing plugin:snapcode:snaplogic connected with 29 tools

  2. Type /snaplogic and press Enter. Confirm that both snaplogic-slpy-gen and snaplogic-deploy skills are listed.


    /snaplogic command showing snaplogic-deploy and snaplogic-slpy-gen skills

  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.


    which slpy output showing the path inside the SnapCode plugin cache


    slpy --help output showing CLI subcommands: translate, visualize, validate-expression, execute, eval-expr

You are now ready to send your first prompt:


Example SnapCode prompt: Generate a pipeline that reads from a csv and write to json

Update SnapCode

The plugin is a snapshot cloned locally and does not update automatically. New plugin versions ship with SnapLogic's monthly platform release. To pull the latest version, run:

claude plugin marketplace update snapcode
claude plugin update snapcode@snapcode
Note: The plugin marketplace sub-commands use the short name (snapcode), while plugin install, plugin update, and plugin uninstall use the full plugin identifier (snapcode@snapcode). Both refer to the same plugin.
Note: The slpy CLI is separate. The plugin refreshes it automatically with a daily check against the private index, so you do not need to update it manually.

Uninstall SnapCode

Run these two commands to remove SnapCode:

claude plugin uninstall snapcode@snapcode
claude plugin marketplace remove snapcode

To remove files written outside the plugin directory (safe to delete), run the following cleanup commands:

macOS / Linux:

rm -rf ~/.claude/plugins/cache/snapcode

Windows (PowerShell):

Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\plugins\cache\snapcode"

Migrating from the previous installation

If you previously used the Docker-based SnapCode distribution (cloned the repository, ran the Docker image, and installed slpy or the MCP server globally), remove those components first as they may conflict with the plugin.

Remove the old user-scope SnapLogic MCP and the old slpy shim from PATH:

macOS / Linux:

claude mcp remove snaplogic
rm ~/.local/bin/slpy

Windows (PowerShell):

claude mcp remove snaplogic
Remove-Item "$env:USERPROFILE\.local\bin\slpy*"
Note: If you skip this step, two SnapLogic MCPs are registered, the old snaplogic and the plugin's snapcode:snaplogic. They do not share a name, but keeping both is redundant and might cause confusion. The which slpy command might also resolve to the old symlink instead of the plugin's version.

After removing both old components, install the plugin as described in Install the plugin.

Troubleshooting

Symptom Cause and fix
MCP shows "not authenticated" or a 401 error Credentials are missing or incorrect, or they are set in a different shell than the one running Claude Code. Verify the credentials step and restart Claude Code.
MCP shows a 404 or OAuth error

No Authorization header reached the server, so it fell back to OAuth discovery (which returns 404 here). The header comes from the auth helper (bin/mcp_headers.py). Confirm your credentials are set in the current environment, then run the helper by hand in the same shell:

macOS / Linux / Git Bash: python3 ~/.claude/plugins/cache/snapcode/*/*/bin/mcp_headers.py

Windows PowerShell: python (Get-ChildItem "$env:USERPROFILE\.claude\plugins\cache\snapcode\*\*\bin\mcp_headers.py").FullName

If it prints {"Authorization": "Basic ..."}, your credentials are read correctly. If it prints {}, the SNAPLOGIC_API_USER or SNAPLOGIC_API_PASS variables are not set in this shell.

Installer unreachable, org lookup fails, or "credentials missing" error Check that the variable is spelled exactly SNAPLOGIC_ORG_NAME. A misspelled variable name is silently ignored, so the Org cannot be resolved and the slpy install fails. Fix the name, open a new terminal, and restart.
slpy not found or not installed The bootstrap installs slpy on the first session. If it is still missing, start a fresh session. If your environment is behind a proxy or firewall, the installer must be able to reach the SLServer endpoint on your pod.
ENOENT: Bun could not find a file on plugin marketplace add or install

Usually caused by a stale CLAUDE_CONFIG_DIR pointing at a directory that no longer exists. Check and clear it, then retry:

macOS / Linux: echo $CLAUDE_CONFIG_DIR then unset CLAUDE_CONFIG_DIR

Windows PowerShell: $env:CLAUDE_CONFIG_DIR then Remove-Item Env:\CLAUDE_CONFIG_DIR

Two SnapLogic MCPs registered after migrating from the old installation The old distribution registered a user-scope MCP named snaplogic. The plugin adds its own (plugin:snapcode:snaplogic). Remove the old one: claude mcp remove snaplogic. Run claude mcp list to view what is registered.