Kubeshark Installer
kubeshark/kubeshark
Installs and configures Kubeshark on a Kubernetes cluster, choosing between the quick CLI path and a Helm install with custom values.
A skill your agent uses when deploying the same protocol to multiple chains at the same address.
$ npx skills add ccashwell/evm-cortex --skill multichain-deployment -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ccashwell/evm-cortex multichain-deployment --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ccashwell/evm-cortex.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/multichain-deployment .claude/skills/multichain-deployment && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "multichain-deployment" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/multichain-deployment into .claude/skills/multichain-deployment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "multichain-deployment", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ccashwell/evm-cortex/tree/main/skills/multichain-deploymentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ccashwell/evm-cortex --skill multichain-deployment -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ccashwell/evm-cortex multichain-deployment --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ccashwell/evm-cortex.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/multichain-deployment .agents/skills/multichain-deployment && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "multichain-deployment" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/multichain-deployment into .agents/skills/multichain-deployment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "multichain-deployment", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ccashwell/evm-cortex --skill multichain-deployment -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ccashwell/evm-cortex multichain-deployment --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ccashwell/evm-cortex.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/multichain-deployment .cursor/skills/multichain-deployment && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "multichain-deployment" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/multichain-deployment into .cursor/skills/multichain-deployment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "multichain-deployment", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ccashwell/evm-cortex.git --path skills/multichain-deployment--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ccashwell/evm-cortex --skill multichain-deployment -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ccashwell/evm-cortex multichain-deployment --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ccashwell/evm-cortex.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/multichain-deployment .gemini/skills/multichain-deployment && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "multichain-deployment" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/multichain-deployment into .gemini/skills/multichain-deployment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "multichain-deployment", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ccashwell/evm-cortex multichain-deploymentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ccashwell/evm-cortex --skill multichain-deployment -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ccashwell/evm-cortex.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/multichain-deployment .github/skills/multichain-deployment && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "multichain-deployment" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/multichain-deployment into .github/skills/multichain-deployment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "multichain-deployment", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ccashwell/evm-cortex --skill multichain-deployment -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ccashwell/evm-cortex multichain-deployment --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ccashwell/evm-cortex.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/multichain-deployment .opencode/skills/multichain-deployment && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "multichain-deployment" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/multichain-deployment into .opencode/skills/multichain-deployment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "multichain-deployment", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
multichain-deploymentA skill your agent uses when deploying the same protocol to multiple chains at the same address.
Multichain Deployment is an agent skill from ccashwell/evm-cortex. Use when deploying the same protocol to multiple chains at the same address. Covers CREATE2 for deterministic addresses, deployment registries, chain-specific configuration, multi-chain testing, and canonical deployment patterns.
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in DevOps & Cloud, covering Deployment. The repository describes itself as: Ethereum protocol engineering squad for AI coding assistants. The licence is MIT.
Read from SKILL.md and the folder at commit f8f3301. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are solidity, bash and json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
DEPLOYER_PRIVATE_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Multichain Deployment loads about 1.9k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 166 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ccashwell/evm-cortex at commit f8f3301, republished under its MIT licence (© ccashwell). 166 words, ~1,911 tokens.
.claude/skills/multichain-deployment/SKILL.md (or your agent's skills folder).For protocol credibility and UX, deploy contracts at the same address on every chain. This requires deterministic deployment via CREATE2 and a consistent deployment flow.
Use a pre-deployed CREATE2 factory that exists at the same address on all EVM chains.
Arachnid's Deterministic Deployment Proxy (available on nearly all chains):
0x4e59b44847b379578588920cA78FbF26c0B4956C// Deploy via the keyless CREATE2 factory
function deployDeterministic(bytes memory creationCode, bytes32 salt)
external returns (address deployed)
{
address factory = 0x4e59b44847b379578588920cA78FbF26c0B4956C;
bytes memory payload = abi.encodePacked(salt, creationCode);
(bool ok, bytes memory result) = factory.call(payload);
require(ok, "Deploy failed");
deployed = address(uint160(uint256(keccak256(abi.encodePacked(
bytes1(0xff), factory, salt, keccak256(creationCode)
)))));
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {Script, console2} from "forge-std/Script.sol";
import {MyProtocol} from "../src/MyProtocol.sol";
contract MultiChainDeploy is Script {
address constant CREATE2_FACTORY = 0x4e59b44847b379578588920cA78FbF26c0B4956C;
bytes32 constant SALT = keccak256("myprotocol-v1.0.0");
struct ChainConfig {
string rpc;
uint256 chainId;
address admin;
address weth;
}
function configs() internal view returns (ChainConfig[] memory) {
ChainConfig[] memory c = new ChainConfig[](4);
address admin = vm.envAddress("ADMIN_ADDRESS");
c[0] = ChainConfig("mainnet", 1, admin, 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);
c[1] = ChainConfig("base", 8453, admin, 0x4200000000000000000000000000000000000006);
c[2] = ChainConfig("optimism", 10, admin, 0x4200000000000000000000000000000000000006);
c[3] = ChainConfig("arbitrum", 42161, admin, 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1);
return c;
}
function predictAddress() public view returns (address) {
bytes memory initCode = type(MyProtocol).creationCode;
return address(uint160(uint256(keccak256(abi.encodePacked(
bytes1(0xff), CREATE2_FACTORY, SALT, keccak256(initCode)
)))));
}
function run() external {
uint256 deployerKey = vm.envUint("DEPLOYER_PRIVATE_KEY");
ChainConfig[] memory chains = configs();
address predicted = predictAddress();
console2.log("Predicted address:", predicted);
for (uint256 i = 0; i < chains.length; i++) {
console2.log("\n--- Deploying to", chains[i].rpc, "---");
vm.createSelectFork(chains[i].rpc);
if (predicted.code.length > 0) {
console2.log(" Already deployed, skipping");
continue;
}
vm.startBroadcast(deployerKey);
bytes memory initCode = type(MyProtocol).creationCode;
bytes memory payload = abi.encodePacked(SALT, initCode);
(bool ok,) = CREATE2_FACTORY.call(payload);
require(ok, "Deploy failed");
require(predicted.code.length > 0, "Code not at predicted address");
console2.log(" Deployed at:", predicted);
// Chain-specific initialization
MyProtocol(predicted).initialize(chains[i].admin, chains[i].weth);
vm.stopBroadcast();
}
}
}forge script script/MultiChainDeploy.s.sol --broadcast --multi --verifyTrack deployments across chains:
{
"protocol": "MyProtocol",
"version": "1.0.0",
"salt": "0x...",
"deployments": {
"1": {
"address": "0xSameOnAllChains",
"txHash": "0x...",
"blockNumber": 18000000,
"deployer": "0x...",
"timestamp": "2025-06-01T00:00:00Z"
},
"8453": {
"address": "0xSameOnAllChains",
"txHash": "0x...",
"blockNumber": 5000000,
"deployer": "0x...",
"timestamp": "2025-06-01T00:05:00Z"
}
}
}Generate automatically in your deploy script:
function _writeDeployment(uint256 chainId, address deployed, bytes32 txHash) internal {
string memory key = vm.toString(chainId);
string memory json = vm.serializeAddress(key, "address", deployed);
json = vm.serializeBytes32(key, "txHash", txHash);
json = vm.serializeUint(key, "blockNumber", block.number);
vm.writeJson(json, "./deployments.json", string.concat(".", key));
}When contracts need different config per chain but the same address:
contract MyProtocol {
address public admin;
address public weth;
bool private _initialized;
function initialize(address admin_, address weth_) external {
require(!_initialized, "Already initialized");
_initialized = true;
admin = admin_;
weth = weth_;
}
}For CREATE3 (address independent of constructor args):
import {CREATE3} from "solady/utils/CREATE3.sol";
contract MultiChainFactory {
function deploy(bytes32 salt, bytes memory creationCode) external returns (address) {
return CREATE3.deploy(salt, creationCode, 0);
}
function predict(bytes32 salt) external view returns (address) {
return CREATE3.getDeployed(salt);
}
}contract MultiChainTest is Test {
uint256 mainnetFork;
uint256 baseFork;
uint256 opFork;
function setUp() public {
mainnetFork = vm.createFork("mainnet");
baseFork = vm.createFork("base");
opFork = vm.createFork("optimism");
}
function test_deploysSameAddress() public {
bytes32 salt = keccak256("test-v1");
bytes memory initCode = type(MyProtocol).creationCode;
vm.selectFork(mainnetFork);
address addrMainnet = _deployViaCreate2(salt, initCode);
vm.selectFork(baseFork);
address addrBase = _deployViaCreate2(salt, initCode);
vm.selectFork(opFork);
address addrOp = _deployViaCreate2(salt, initCode);
assertEq(addrMainnet, addrBase, "Mainnet != Base");
assertEq(addrBase, addrOp, "Base != Optimism");
}
}#!/bin/bash
# verify-all.sh
CHAINS=("mainnet" "base" "optimism" "arbitrum")
CONTRACT_ADDR="0xSameOnAllChains"
CONTRACT_PATH="src/MyProtocol.sol:MyProtocol"
for chain in "${CHAINS[@]}"; do
echo "Verifying on $chain..."
forge verify-contract "$CONTRACT_ADDR" "$CONTRACT_PATH" \
--chain "$chain" --watch
doneinitialize (not constructor)© ccashwell, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/multichain-deployment of ccashwell/evm-cortex.
Open the folder on GitHubat commit f8f3301
Multichain Deployment next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Multichain Deployment this skillccashwell/evm-cortex | 131 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Kubeshark Installerkubeshark/kubeshark | 12k | — | ~3.6k | Automated safety check: Notes | Apache-2.0 | |
| GreptimeDB Dev Docker ImageGreptimeTeam/greptimedb | 6.7k | — | ~4k | Automated safety check: Notes | Apache-2.0 | |
| KubeSphere ServiceMesh Managerkubesphere/kubesphere | 17k | — | ~2.4k | Automated safety check: Pass | Custom licence | |
| Vercelremotion-dev/remotion | 62k | — | ~1.2k | Automated safety check: Pass | Custom licence | |
| AWS Cdk Developmentzxkane/aws-skills | 367 | 2 repos | ~2.5k | Automated safety check: Pass | MIT |
kubeshark/kubeshark
Installs and configures Kubeshark on a Kubernetes cluster, choosing between the quick CLI path and a Helm install with custom values.
GreptimeTeam/greptimedb
Packages a locally built GreptimeDB debug binary into a development-only Docker image for local-cluster testing, with an optional push to a dev registry.
kubesphere/kubesphere
Installs, checks and troubleshoots the KubeSphere ServiceMesh extension (Istio, Kiali, Jaeger), including grayscale release, sidecar injection, topology and tracing issues.
remotion-dev/remotion
Set up a Codex monitor for Vercel deployments and preview URLs.
zxkane/aws-skills
AWS Cloud Development Kit (CDK) expert for building cloud infrastructure with TypeScript/Python.
maslennikov-ig/claude-code-orchestrator-kit
Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup…
ccashwell/evm-cortex
A skill your agent uses when preparing for a security audit, performing reconnaissance on a new codebase, or creating a protocol overview.
ccashwell/evm-cortex
A skill your agent uses when integrating with Aave V3 for lending, borrowing, flash loans, or building on top of Aave markets.
ccashwell/evm-cortex
Access control design patterns for Solidity protocols. An agent skill from ccashwell/evm-cortex.
ccashwell/evm-cortex
A skill your agent uses when running a local Ethereum node with Anvil.
ccashwell/evm-cortex
A skill your agent uses when performing systematic breadth-first review of all contracts during a security audit.
ccashwell/evm-cortex
A skill your agent uses when performing deep analysis of specific findings or high-risk areas during a security audit.
Categories
A skill your agent uses when deploying the same protocol to multiple chains at the same address. Multichain Deployment is an agent skill from ccashwell/evm-cortex. Use when deploying the same protocol to multiple chains at the same address.
Multichain Deployment fits situations like: deploying the same protocol to multiple chains at the same address; tasks that involve Deployment.
Run `npx skills add ccashwell/evm-cortex --skill multichain-deployment -a claude-code`. Or copy the skill folder (skills/multichain-deployment in ccashwell/evm-cortex) into .claude/skills/multichain-deployment in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ccashwell/evm-cortex --skill multichain-deployment -a codex`. Or copy the skill folder (skills/multichain-deployment in ccashwell/evm-cortex) into .agents/skills/multichain-deployment in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ccashwell/evm-cortex --skill multichain-deployment -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/multichain-deployment, .gemini/skills/multichain-deployment, .github/skills/multichain-deployment and .opencode/skills/multichain-deployment in your project.
Going by SKILL.md and its folder, Multichain Deployment needs credentials named DEPLOYER_PRIVATE_KEY. Our summary lists: A credential in DEPLOYER_PRIVATE_KEY.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Multichain Deployment is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Multichain Deployment: Kubeshark Installer (kubeshark/kubeshark, 12k stars), GreptimeDB Dev Docker Image (GreptimeTeam/greptimedb, 6.7k stars), KubeSphere ServiceMesh Manager (kubesphere/kubesphere, 17k stars) and Vercel (remotion-dev/remotion, 62k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ccashwell (a GitHub user) maintains it in ccashwell/evm-cortex, which has 131 GitHub stars. The repository holds 89 skills in this directory. The repository was last updated on September 30, 2026.
Source: ccashwell/evm-cortex on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.