Hunt the ghost processes
in your infrastructure.
Fernwake finds the cron jobs, scripts and third-party integrations nobody remembers setting up. Inventory them, attribute them to a human, and decommission the ones nobody needs anymore.
Ghost processes · 47 found · last scan 2m ago
Every team has a graveyard. Most teams just can't see it.
Over enough years, your infrastructure quietly accumulates cron jobs, scripts and third-party integrations whose original owner has long since left. They keep running. They keep costing money. And one day they break — and nobody knows what they did.
"Why is this running, and who put it here?"
The on-call engineer at 3am, staring at a Datadog alert for a process called fix-billing-temp.sh that nobody on the team has ever heard of. Git blame: three companies ago.
- Cron jobs running on production servers with no documentation
- AWS Lambdas firing every hour with no clear consumer
- Third-party integrations still posting webhooks years after the vendor was replaced
- Scripts run by ex-employees that nobody dares to turn off
# 03:14 — pager fired # 03:18 — found process eating 80% memory on app-03 # 03:22 — git log: "added by abdullah, 2019" # 03:25 — abdullah hasn't worked here since 2021 # 03:38 — chose to leave it running because nobody knows # what depends on it # # this is fine.
Every running process, accounted for.
Fernwake builds a continuously-updated inventory of everything running across your stack — and tags every process with a human owner, a justification, and a sunset date.
- Continuous discovery across servers, containers, cron, serverless
- Automatic owner attribution from git history and ticketing systems
- Decommission workflow with approvals and rollback
- Cost attribution and impact estimates for cleanup
$ fernwake doctor # Scanning 47 hosts, 3 cloud accounts... ✓ 2,184 processes inventoried ! 47 ghosts (no owner, no docs, >30d uptime) ! 12 orphaned (last owner off-boarded) ! 218 stale (no human touched in 90 days) # Run `fernwake adopt <id>` to claim ownership # Run `fernwake sunset <id>` to propose decommission
One console for everything you're afraid to touch.
Fernwake is read-only by default. Connect once, get a living inventory across every layer of your stack — without granting write access to anything.
Continuous discovery
An agent (or agentless poll) sweeps your hosts, container schedulers, cloud accounts, and CI runners every 60 seconds.
Owner attribution
Cross-references git blame, deploy logs, Jira/Linear, and your SSO directory to suggest the most likely human owner — even after they've left.
Ghost alerting
Get pinged the moment a new unowned process appears in production. Triage from Slack, Teams, or PagerDuty.
Cost attribution
Connects each process to the cloud line-item it generates. See exactly what your ghost graveyard is costing you each month.
Sunset workflow
Propose decommission with an approval chain. Run it dry, watch for downstream impact, then commit — with one-click rollback.
Read-only first
Fernwake never executes commands against your infra without explicit, audited approval. Connect over SSH or read-only IAM — that's it.
One command. Then start hunting.
Fernwake works in two modes: drop the agent on your hosts for live coverage, or run a read-only sweep from your laptop.
# Agentless sweep — start here $ curl -fsSL https://get.fernwakeconsole.com | sh $ fernwake login $ fernwake scan --since=30d # Or install the daemon for continuous discovery $ fernwake agent install --read-only
Full installation guide in the docs →