Add TTS Engine to Voicebox
jamiepine/voicebox
Walks through adding a new text-to-speech engine to Voicebox end to end: dependency audit, backend, frontend wiring, PyInstaller bundling and frozen-build testing.
A skill your agent uses when setting up a Foundry project from scratch or configuring foundry.toml.
$ npx skills add ccashwell/evm-cortex --skill foundry-setup -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ccashwell/evm-cortex foundry-setup --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/foundry-setup .claude/skills/foundry-setup && 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 "foundry-setup" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/foundry-setup into .claude/skills/foundry-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "foundry-setup", 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/foundry-setupType 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 foundry-setup -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ccashwell/evm-cortex foundry-setup --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/foundry-setup .agents/skills/foundry-setup && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "foundry-setup" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/foundry-setup into .agents/skills/foundry-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "foundry-setup", 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 foundry-setup -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ccashwell/evm-cortex foundry-setup --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/foundry-setup .cursor/skills/foundry-setup && 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 "foundry-setup" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/foundry-setup into .cursor/skills/foundry-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "foundry-setup", 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/foundry-setup--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 foundry-setup -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ccashwell/evm-cortex foundry-setup --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/foundry-setup .gemini/skills/foundry-setup && 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 "foundry-setup" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/foundry-setup into .gemini/skills/foundry-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "foundry-setup", 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 foundry-setupInstalls 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 foundry-setup -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/foundry-setup .github/skills/foundry-setup && 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 "foundry-setup" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/foundry-setup into .github/skills/foundry-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "foundry-setup", 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 foundry-setup -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 foundry-setup --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/foundry-setup .opencode/skills/foundry-setup && 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 "foundry-setup" agent skill from https://github.com/ccashwell/evm-cortex/tree/main/skills/foundry-setup into .opencode/skills/foundry-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "foundry-setup", 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.
foundry-setupA skill your agent uses when setting up a Foundry project from scratch or configuring foundry.toml.
Foundry Setup is an agent skill from ccashwell/evm-cortex. Use when setting up a Foundry project from scratch or configuring foundry.toml. Covers forge init, solc configuration, optimizer settings, via-ir, remappings, directory structure, and dependency management.
Its SKILL.md is about 1.3k 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 Development, covering Dependency management. It works with Solidity. 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 bash, toml, json and gitignore).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.basescan.orgapi-optimistic.etherscan.ioapi.arbiscan.ioeth-mainnet.g.alchemy.cometh-sepolia.g.alchemy.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ETHERSCAN_API_KEYBASESCAN_API_KEYOPSCAN_API_KEYARBISCAN_API_KEYDEPLOYER_PRIVATE_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Foundry Setup loads about 1.3k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 88 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 noted patterns worth knowing about, such as sudo or a known installer.
.env# .env (never commit)source .envAutomated 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). 88 words, ~1,335 tokens.
.claude/skills/foundry-setup/SKILL.md (or your agent's skills folder).# New project
forge init my-protocol
cd my-protocol
# Or init in existing directory
forge init --force .
# Install dependencies
forge install OpenZeppelin/openzeppelin-contracts
forge install OpenZeppelin/openzeppelin-contracts-upgradeable
forge install foundry-rs/forge-stdmy-protocol/
├── foundry.toml # Project configuration
├── remappings.txt # Import remappings (auto-generated)
├── src/ # Contract source files
│ ├── MyContract.sol
│ └── interfaces/
├── test/ # Test files
│ ├── MyContract.t.sol
│ ├── invariants/ # Invariant/fuzz tests
│ └── mocks/
├── script/ # Deployment scripts
│ ├── Deploy.s.sol
│ └── Upgrade.s.sol
├── lib/ # Git submodule dependencies
│ ├── forge-std/
│ └── openzeppelin-contracts/
└── out/ # Build artifacts (gitignored)[profile.default]
src = "src"
out = "out"
libs = ["lib"]
test = "test"
script = "script"
# Solidity compiler
solc_version = "0.8.28"
evm_version = "cancun" # Latest EVM target
optimizer = true
optimizer_runs = 200 # Balance deploy vs runtime gas
via_ir = false # Enable for complex contracts / stack too deep
# Compilation
auto_detect_solc = false
build_info = true
extra_output = ["storageLayout"] # For upgrade safety checks
# Testing
ffi = false # Disable FFI by default (security)
verbosity = 2 # 0=minimal, 3=traces, 5=everything
fuzz = { runs = 256, seed = "0x1" }
invariant = { runs = 256, depth = 50 }
gas_reports = ["*"]
# Formatter
[fmt]
line_length = 100
tab_width = 4
bracket_spacing = false
int_types = "long" # uint256 not uint
multiline_func_header = "params_first"
number_underscore = "thousands"
single_line_statement_blocks = "preserve"
sort_imports = true
[rpc_endpoints]
mainnet = "${ETH_RPC_URL}"
sepolia = "${SEPOLIA_RPC_URL}"
base = "${BASE_RPC_URL}"
optimism = "${OPTIMISM_RPC_URL}"
arbitrum = "${ARBITRUM_RPC_URL}"
anvil = "http://127.0.0.1:8545"
[etherscan]
mainnet = { key = "${ETHERSCAN_API_KEY}" }
sepolia = { key = "${ETHERSCAN_API_KEY}" }
base = { key = "${BASESCAN_API_KEY}", url = "https://api.basescan.org/api" }
optimism = { key = "${OPSCAN_API_KEY}", url = "https://api-optimistic.etherscan.io/api" }
arbitrum = { key = "${ARBISCAN_API_KEY}", url = "https://api.arbiscan.io/api" }
# CI profile: more fuzz runs
[profile.ci]
fuzz = { runs = 10000 }
invariant = { runs = 1000, depth = 100 }Auto-generate remappings:
forge remappings > remappings.txtTypical remappings.txt:
@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/
@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/
forge-std/=lib/forge-std/src/For VS Code / Solidity extension, add to settings.json:
{
"solidity.remappings": [
"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
"forge-std/=lib/forge-std/src/"
]
}# Install a dependency (adds as git submodule)
forge install OpenZeppelin/openzeppelin-contracts
# Install specific version
forge install OpenZeppelin/openzeppelin-contracts@v5.1.0
# Update all dependencies
forge update
# Update specific dependency
forge update lib/openzeppelin-contracts
# Remove dependency
forge remove openzeppelin-contracts# Build
forge build
# Build with sizes
forge build --sizes
# Clean and rebuild
forge clean && forge build
# Inspect storage layout
forge inspect MyContract storageLayout
# Inspect ABI
forge inspect MyContract abi
# Check contract sizes (24KB limit)
forge build --sizes | grep -E "Contract|─"
# Generate gas snapshot
forge snapshotoptimizer_runs | Optimize for | Use case |
|---|---|---|
| 1 | Deployment cost | Rarely called contracts |
| 200 | Balanced (default) | Most contracts |
| 1000+ | Runtime cost | Frequently called (DEX, vaults) |
| 1000000 | Maximum runtime | Hot paths |
Enable via_ir = true when:
Tradeoff: significantly slower compilation (~5-10x).
# Per-profile override for complex contracts
[profile.via-ir]
via_ir = true
optimizer_runs = 200FOUNDRY_PROFILE=via-ir forge build# Foundry
out/
cache/
broadcast/*/31337/ # Local anvil broadcasts
broadcast/**/dry-run/
# Environment
.env
# Coverage
lcov.info
coverage/# .env (never commit)
ETH_RPC_URL=https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY
SEPOLIA_RPC_URL=https://eth-sepolia.g.alchemy.com/v2/YOUR_KEY
ETHERSCAN_API_KEY=YOUR_KEY
DEPLOYER_PRIVATE_KEY=0x...Load in scripts:
source .env
forge script script/Deploy.s.sol --rpc-url $ETH_RPC_URL --broadcast© 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/foundry-setup of ccashwell/evm-cortex.
Open the folder on GitHubat commit f8f3301
Foundry Setup 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 |
|---|---|---|---|---|---|---|
| Foundry Setup this skillccashwell/evm-cortex | 131 | — | ~1.3k | Automated safety check: Notes | MIT | |
| Add TTS Engine to Voiceboxjamiepine/voicebox | 57k | — | ~1.3k | Automated safety check: Pass | MIT | |
| Dep Updatestrufflesecurity/trufflehog | 28k | — | ~1.3k | Automated safety check: Pass | AGPL-3.0 | |
| Merge Dependabot PRsonyx-dot-app/onyx | 32k | 1 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Senior Architect Toolkitmaslennikov-ig/claude-code-orchestrator-kit | 260 | 8 repos | ~1.2k | Automated safety check: Notes | Custom licence | |
| Update .NET OS Packagesdotnet/core | 22k | — | ~2.3k | Automated safety check: Pass | MIT |
jamiepine/voicebox
Walks through adding a new text-to-speech engine to Voicebox end to end: dependency audit, backend, frontend wiring, PyInstaller bundling and frozen-build testing.
trufflesecurity/trufflehog
Plan and apply Go dependency updates, including advisory-driven bumps, Trivy/govulncheck validation, and supply-chain review.
onyx-dot-app/onyx
Triages and lands a batch of open Dependabot PRs in the Onyx repo, where main is gated exclusively by GitHub's merge queue: approves and enqueues green PRs, closes superseded duplicates, fixes…
maslennikov-ig/claude-code-orchestrator-kit
Comprehensive software architecture skill for designing scalable, maintainable systems using ReactJS, NextJS, NodeJS, Express, React Native, Swift, Kotlin…
dotnet/core
Audits and updates os-packages.json files listing the Linux packages each .NET release needs per distro, then regenerates the Markdown from the JSON.
teambit/bit
Work on the pnpm Rust engine (@pnpm/napi, the pacquet crates) that bit install runs through.
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.
Works with
Categories
A skill your agent uses when setting up a Foundry project from scratch or configuring foundry.toml. Foundry Setup is an agent skill from ccashwell/evm-cortex.toml.
Foundry Setup fits situations like: setting up a Foundry project from scratch; configuring foundry.toml.
Run `npx skills add ccashwell/evm-cortex --skill foundry-setup -a claude-code`. Or copy the skill folder (skills/foundry-setup in ccashwell/evm-cortex) into .claude/skills/foundry-setup in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ccashwell/evm-cortex --skill foundry-setup -a codex`. Or copy the skill folder (skills/foundry-setup in ccashwell/evm-cortex) into .agents/skills/foundry-setup 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 foundry-setup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/foundry-setup, .gemini/skills/foundry-setup, .github/skills/foundry-setup and .opencode/skills/foundry-setup in your project.
Going by SKILL.md and its folder, Foundry Setup needs credentials named ETHERSCAN_API_KEY, BASESCAN_API_KEY, OPSCAN_API_KEY and ARBISCAN_API_KEY. Our summary lists: A credential in ETHERSCAN_API_KEY; A credential in BASESCAN_API_KEY.
SKILL.md names 5 domains. In commands or code: api.basescan.org, api-optimistic.etherscan.io, api.arbiscan.io, eth-mainnet.g.alchemy.com and eth-sepolia.g.alchemy.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Foundry Setup 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.3k tokens (SKILL.md is roughly 5.3k 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 Foundry Setup: Add TTS Engine to Voicebox (jamiepine/voicebox, 57k stars), Dep Updates (trufflesecurity/trufflehog, 28k stars), Merge Dependabot PRs (onyx-dot-app/onyx, 32k stars) and Senior Architect Toolkit (maslennikov-ig/claude-code-orchestrator-kit, 260 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.