trestle
Enables AI assistants to scan source code for secrets like API keys and passwords locally without network requests.
README
<p align="left"> <picture> <source media="(prefers-color-scheme: dark)" srcset="assets/logo-dark.svg"> <img src="assets/logo-light.svg" alt="Trestle logo" height="18"> </picture> </p>
A local secret scanner for source code. Trestle finds API keys, access tokens, passwords, private keys, and certificates before commiting them by mistake, and keeps them from leaving your machine.
This is the Community edition. Open source under Apache-2.0, and a mirror of the version distributed at trestlescan.com.
What Trestle does
- Detection. Hundreds of credential patterns from real services (OpenAI, Anthropic, Stripe, AWS, GitHub, Google, Slack, Sentry, and more), plus unfamiliar keys spotted by entropy, variable names, and surrounding code.
- Code-aware. Trestle parses your files instead of running plain regular expressions, so it can tell an environment variable from a build argument, a header, a parameter, or a constant in source.
- Runs everywhere you work. Command line scanner, file watcher, pre-commit hook, language server for LSP-aware editors (Neovim, Helix, Zed, JetBrains), MCP server for AI assistants (Claude Code, Cursor, Copilot, Codex), and a native VS Code extension.
- Local only. Runs entirely on your machine. No network, no telemetry, no account, no signup.
- One static binary. No runtime to install, multi-threaded, and honors
.gitignoreand your own skip rules.
Building from source
A recent stable Rust toolchain is the only prerequisite.
cargo build --release
This builds two binaries: trestle, which does not make network requests, and
trestle-net, which can check whether found secrets are still live.
Quick start
In any project directory:
trestle install # adds a pre-commit hook and AI instructions
trestle scan # scans the current directory
Other commands:
trestle watchkeeps scanning as files change.trestle lspstarts the language server.trestle mcpstarts the MCP server.trestle uninstallremoves the integration from a project.
Checking whether a secret is live
The default trestle binary does not make network requests. The separate
trestle-net binary adds an optional check that contacts each detected
secret's provider to confirm whether the credential is still valid:
trestle-net scan --validate
Each finding is then labeled (active), (inactive), or (could not verify). This check runs only in trestle-net, so the trestle binary
remains fully offline.
The full documentation is available at trestlescan.com/documentation.
GitHub Action
Use the official GitHub Action to scan every push and pull request:
name: Secret scan
on:
push:
pull_request:
jobs:
trestle:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: toro-guapo/trestle-action@v1
See toro-guapo/trestle-action for inputs, outputs, SARIF upload to the GitHub Security tab, and supported runners.
Community and Pro
Trestle is open core.
- Community (this repository) handles detection. Every finding is reported with its location and the rule that flagged it. Apache-2.0 licensed.
- Pro adds remediation guidance: for each finding, the steps to remove the
secret from source, what to keep in your local
.env, and per-platform rotation guides for AWS, GitHub Actions, Vercel, Netlify, Kubernetes, Doppler, and other targets. Distributed under a commercial license.
Pro is available at trestlescan.com.
About this repository
This is a read-only mirror, refreshed on every Community release. Development happens in a private repository.
Issues and discussion are welcome on GitHub. Pull requests are not accepted through this mirror. If you have a fix or an idea, please open an issue.
License
Apache License 2.0. See LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.