plugins/midnight-tooling/skills/midnight-setup/SKILL.md
Use when setting up Midnight development environment, installing Compact compiler and developer tools, configuring proof server, verifying prerequisites, or getting started with Midnight development.
npx skillsauth add aaronbassett/midnight-knowledgebase midnight-tooling:midnight-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
4 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Guide developers through setting up a complete Midnight development environment for building zero-knowledge smart contracts and dApps.
Before installing Midnight-specific tools, verify these prerequisites:
| Requirement | Minimum | Recommended | Check Command |
|------------|---------|-------------|---------------|
| Node.js | 18.x | 20.x LTS | node --version |
| npm | 9.x | Latest | npm --version |
| Docker | 20.x | Latest | docker --version |
| Git | 2.x | Latest | git --version |
| Chrome | Latest | Latest | Required for Lace wallet |
Run the prerequisite check script to verify:
bash ${CLAUDE_PLUGIN_ROOT}/skills/midnight-setup/scripts/check-prerequisites.sh
For detailed prerequisite verification:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/midnight-setup/scripts/check-prerequisites.py
Using nvm provides easy version management:
# Install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# Restart terminal or source profile
source ~/.zshrc # or ~/.bashrc
# Install Node.js 18 LTS
nvm install 18 --lts
nvm alias default 18
Important: After installing or switching Node versions, open a new terminal window. Simply sourcing the profile may leave stale references.
Download from docker.com/products/docker-desktop for your platform. After installation:
docker infoThe Compact developer tools manage compiler versions and provide the compact CLI:
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/midnightntwrk/compact/releases/latest/download/compact-installer.sh | sh
After installation, add the binary to your PATH. The installer will show the exact path, typically:
# Add to ~/.zshrc or ~/.bashrc
export PATH="$HOME/.compact/bin:$PATH"
Then restart your terminal or source the profile.
With the developer tools installed, download the compiler:
# Download latest compiler
compact update
# Verify installation
compact --version # Shows developer tools version
compact compile --version # Shows compiler version
The proof server generates zero-knowledge proofs locally:
docker pull midnightnetwork/proof-server:latest
To start the proof server (when needed for development):
docker run -p 6300:6300 midnightnetwork/proof-server -- midnight-proof-server --network testnet
The Midnight Compact VS Code extension provides syntax highlighting and IntelliSense:
.vsix file from the Compact releasesFor testing dApps with a wallet:
After completing setup, verify everything works:
# Check all tools
node --version # Should be 18+
docker info # Should show Docker running
compact --version # Should show developer tools version
compact compile --version # Should show compiler version
# Check proof server image
docker images | grep proof-server
Or run the environment check command: /midnight:check
| Command | Purpose |
|---------|---------|
| compact update | Download/update to latest compiler |
| compact update <version> | Switch to specific version |
| compact list | Show all available versions |
| compact list --installed | Show locally installed versions |
| compact check | Check for updates without downloading |
| compact compile <file> <outdir> | Compile a contract |
| compact compile +0.25.0 <file> <outdir> | Compile with specific version |
| compact self update | Update the developer tools themselves |
| compact help | Show help |
| Issue | Solution |
|-------|----------|
| compact: command not found | Add ~/.compact/bin to PATH, restart terminal |
| Node version wrong after install | Open a new terminal window |
| Docker daemon not running | Start Docker Desktop application |
| Proof server won't start | Check Docker is running, port 6300 is free |
references/installation-steps.md - Detailed platform-specific instructionsreferences/bun-setup.md - Alternative setup using Bun runtimeFor troubleshooting, use the /midnight:doctor command or consult the midnight-debugging skill.
tools
--- name: midnight-tooling:midnight-debugging description: Use when encountering Midnight errors like "compact: command not found", "ERR_UNSUPPORTED_DIR_IMPORT", version mismatches, proof server failures, "@midnight-ntwrk" package errors, or compilation failures. --- # Midnight Environment Debugging Expert knowledge for identifying and resolving common Midnight development toolchain issues. ## Diagnostic Approach When encountering Midnight-related errors, follow this systematic approach: 1.
tools
Use when checking Midnight version compatibility, understanding pragma language_version, verifying compiler and runtime version relationships, or troubleshooting version mismatch errors between Midnight components.
tools
Use when setting up CI/CD for Midnight projects, configuring GitHub Actions for Compact contract compilation, running TypeScript tests in CI, validating version consistency, or automating contract builds.
tools
Use when managing deployed contract lifecycles, inspecting contract state, backing up state before upgrades, planning contract migrations, implementing versioning strategies, or deprecating contracts gracefully.