Would've blown up
in production.
Caught it in the PR.
On every PR, sf-chaos spins up a scratch org loaded with real-world entropy: recursive triggers, strict validation rules, 50,000 records. It deploys your code, runs your Apex tests, and drops a governor limit report right on the pull request.
sf plugins install sf-chaos
Simulated output. heavy-enterprise profile, 5 triggers · 12 validations · 50,000 records.
Every test passes in a clean scratch org.
Code that passes flawlessly in a fresh scratch org can easily shatter when it hits a messy, five-year-old production environment loaded with legacy triggers and strict validation rules. Suddenly, you are dealing with a SOQL 101 error on a Monday morning deployment. sf-chaos simulates this exact entropy right at the pull request stage, letting you catch governor limit breaches during code review rather than in a live incident.
sf chaos test run
Scratch org spins up
A clean, isolated, disposable org. Your real org is never touched.
$ sf org create scratch
Chaos profile is injected
Triggers, validation rules, and seed data are pushed to the org based on the profile you choose.
$ sf project deploy start
Your code is deployed
The metadata in your force-app directory is deployed into this chaotic environment.
$ sf project deploy start
Apex tests run
Debug logs are parsed and governor limit consumption is measured for every transaction.
$ sf apex run test
Report is generated
Breaking points, limit heat map, and actionable recommendations. Output in three formats.
terminal · json · markdown
How much chaos can your code handle?
Each profile simulates a different real-world org. clean is your baseline; trigger-hell is there to stress-test your limits.
You'll know it's breaking before it breaks.
Every run produces a governor limit heat map, a breaking-point risk score, and on the Team tier, error-to-fix suggestions. Here is what the PR comment looks like:
Query inside a loop
Under chaos conditions SOQL consumption hit 87/100. In production with additional triggers, exceeding the 100 limit is highly likely.
[SELECT … FROM Contact WHERE AccountId = :acc.Id] query outside the loop. Use the Map<Id, List<Contact>> pattern.
Start free. Upgrade when your org grows.
Free
- + clean + medium-enterprise profiles
- + Terminal · JSON · Markdown reports
- + Governor limit gauges
- + GitHub Actions, GitLab CI, Bitbucket
Pro
most popular- + Everything in Free, plus:
- + heavy-enterprise, governor-edge, trigger-hell
- + Detailed governor limit heat map
- + Priority support
Team
- + Everything in Pro, plus:
- + Actionable suggestions · error to fix
- + Custom profile builder
- + Slack · Teams notifications
- + Run history & historical trends
Payments via Lemon Squeezy. Tax included, license key delivered instantly. Cancel anytime.
Two lines in GitHub Actions.
npm install -g @salesforce/clisf plugins install sf-chaossf chaos test run --profile heavy-enterpriseclean and medium-enterprise ship bundled. No license key needed, works out of the box.
name: Salesforce Chaos Test on: pull_request: paths: ['force-app/**'] jobs: chaos-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: { node-version: '20' } - run: npm i -g @salesforce/cli && sf plugins install sf-chaos - run: sf chaos test run --profile heavy-enterprise --report markdown env: CHAOS_KEY: ${{ secrets.CHAOS_KEY }}
Built by Salesforce engineers,
for Salesforce engineers.
We have spent years building and shipping complex architectures on the Salesforce platform. We have debugged the 3 AM production outages caused by a recursive trigger chain nobody documented. We have watched perfectly green CI pipelines deploy code that instantly blew past governor limits in a real org.
sf-chaos exists because we got tired of learning about limit breaches from angry Slack messages. Every chaos profile in the tool is modeled after a real org we have worked in. The governor limit gauges, the breaking-point reports, the fix suggestions: all of it comes from patterns we have seen and fixed dozens of times in the field.
This is not a general-purpose testing tool. It does one thing: it tells you whether your code will survive a real Salesforce org before you push it to one.
The fine print.
Terms of Use
- User Responsibilities: sf-chaos is an independent tool designed to test your Salesforce orgs. The user is solely responsible for any intentional or unintentional test modifications made to their production orgs. Maintaining the confidentiality of license keys is the customer's responsibility.
- Account Termination: Service may be terminated without prior notice if license sharing, reverse engineering, or API abuse is detected.
- Limitation of Liability: sf-chaos simulates how your code behaves in a production environment but does not guarantee 100% error detection. We are not liable for commercial or data losses resulting from undetected errors.
Privacy Policy
- Data Collected: We only collect anonymous error logs, governor limit metrics, and test durations necessary for the analysis engine to function. Your Apex source code, business logic, or database contents are never transmitted to our servers.
- Cookies & Analytics: Our website uses standard cookies for anonymous traffic analysis to improve service quality.
- Data Retention: Generated test logs and limit metrics are stored in encrypted databases for 90 days to provide historical analysis for Team tier users.
Refund & Billing Policy
- Scope: Billing is managed via Lemon Squeezy (Merchant of Record). Your plan's test limits reset monthly and do not roll over.
- Cancellation & Renewal: Subscriptions auto-renew monthly. You can cancel anytime via your dashboard; your access will continue until the end of the current billing cycle.
- Refunds: Because we provide digital licenses, you may request a refund within 7 days of purchase only if the product has not been used. Once a test run is initiated, refunds are no longer available.