the developer ad network

Reach developers where they work.

Relevant developer tools, shown in the shell at the moment they can help. Developers stay in control—and earn 70% of what their attention makes.

✓ no daemon · no source code · no command history · no silent execution

aunto — zsh — 96×28
70%
of developer earnings goes to the person seeing the ad
20
impressions per machine per day, enforced server-side
0
commands run without a deliberate developer keypress
1 hook
covers the shell instead of waiting for every CLI to integrate
01 / one short loop

From problem to product, without leaving the prompt.

Web advertising sends a developer through a funnel. termads starts at the point where a developer can actually use the product.

01

Something happens

A deploy finishes, a dependency lands, or a connection fails. The client classifies the moment locally.

signal: error / conn-refused
02

A useful tool appears

The server chooses approved inventory for that coarse context. The shell renders it with a permanent sponsored label.

slot: between-command
03

The developer decides

Open the link, explicitly run the visible action, block the advertiser—or ignore it and keep working.

developer owns the final action
02 / local control

The ceiling is the product.

Developers choose the moments, surfaces and frequency during setup. Those gates run before a network request can leave the machine.

termads configure · local settings
situations
[✓] error
[✓] deploy
[✓] dependency added
[ ] session start
[✓] browse
surfaces
[✓] between commands
[ ] prompt line
[✓] long run
[ ] tmux status
[✓] catalogue
daily frequency8 / 20 max
20 minute cooldown · at least 25 commands between ads
NO_ADS means no request

The global opt-out is checked before the network, not after a server has already learned something.

CI is always off limits

Automated environments are refused. A build log never becomes ad inventory.

Change it whenever you want

Run termads configure, pause for an hour, block a category, or turn it off completely.

03 / both sides win

Attention with an accountable buyer and owner.

Advertisers fund approved campaigns. Developers opt into the network and receive the majority share.

for developers

Your terminal. Your limits. Your earnings.

Install once, choose where sponsorships may appear, and see exactly what was sent after every impression.

  • Interactive setup—no config file editing
  • Local frequency, surface and situation controls
  • Block any advertiser or category
  • Live impression and earnings dashboard
Install the client
for advertisers

Meet developers at the moment of need.

Create campaigns for real development contexts, fund in cents, and see server-counted impressions, clicks and actions.

  • Static, clickable, card and actionable formats
  • Target language, framework, platform and situation
  • Human review before an exact creative can serve
  • One-at-a-time attribution for clicks and actions
Launch a campaign
04 / native formats

Made of terminal primitives.

No banners squeezed into text. Each format has a shape, a purpose and a surface where it honestly fits.

static F0
─ sponsored ─
Fast previews for every pull request.
clickable F2
─ sponsored ─
Trace the deploy before users do.
termads.dev ↗
card F3
┌─ sponsored ─────────────┐
│ Review this change with AI │
│ before it reaches main. │
└───────────────────────────┘
actionable F4
┌─ sponsored ─────────────┐
│ Inspect the live cluster. │
│ [k] kubectl get pods │
└───────────────────────────┘
05 / a narrow data boundary

Context, without surveillance.

Targeting is a closed list of coarse signals. The command, repository, source code, paths, prompts and environment never belong in the request.

what an eligible request may contain
{
  "lang": "node",
  "framework": "next",
  "error": "conn-refused",
  "os": "linux"
}
NEVER SENT

Your command

The shell classifies a closed signal locally.

NEVER SENT

Your code

No source, diffs, prompts or file contents.

NEVER SENT

Your paths

No repository names or working directories.

NEVER AUTOMATIC

An action

The complete command is shown before a keypress.

community channel

Found friction? Send it straight to the people building termads.

Join our Discord to report an issue, share feedback, suggest a feature, or show us how termads feels inside your real workflow.

Join our Discord feedback · bugs · ideas · setup help
termads_ community● online
$ termads feedback
→ opening the community channel…
[feedback] tell us what felt good—or intrusive
[issues] include your shell, terminal, and slot
[ideas] help shape what ships next
✓ maintainers are listening
start on one machine

Put your attention back to work.

$ curl -fsSL https://api.termads.dev/install.sh | sh