Find people asking for an app like yours, fed up with a competitor, with the problem you solve, or already talking about your app.

marKit is a free agent skill for Claude Code and Codex. It searches Reddit, Hacker News, Bluesky, X and more for posts where your app is the answer, explains why each one fits, and drafts an honest reply. You read it, edit it, and post it yourself.

npx skills add notsocj/markit --skill '*' -g

Free and open source under MIT. Needs Node 20.12 or newer. Then run /markit-setup in your app's folder.

Reddit r/formula1 3h ago 100

First GP at Silverstone, how do you keep tickets, hotel and train times in one place?

Got 3-day GA tickets and a hotel in Northampton. I have PDFs, screenshots and emails everywhere. Is there an app that pulls it together and works without signal at the track?

Asks for an app that keeps a race weekend together offline, which is exactly what gridpeek does.

Draft reply

Get your tickets into Apple Wallet before you go, since signal at Silverstone drops once the crowds arrive. Full disclosure, I built gridpeek for exactly this: tickets, hotel, trains and the session schedule in one place, offline.

Reddit r/travel 1d ago 85

TripIt doesn't know anything about race weekends

TripIt handles my flights fine but has no idea about session times or which day I'm at the circuit. Anyone found something better for event trips?

Unhappy with TripIt for a race weekend and asking for alternatives.

Draft reply

TripIt is great for flights but doesn't know event schedules; adding sessions as manual plans works for a short weekend. I built gridpeek because of the same gap (I'm the dev): it puts F1 session times next to your bookings.

Bluesky 20h ago 65

Two weeks until Austin and my race weekend plan is 14 PDFs and a prayer.

Describes the scattered-documents problem before a Grand Prix, though not asking for a tool.

Draft reply

Ha, been there. Get the tickets into Wallet first and save the circuit map offline. If you want it all in one place, I made gridpeek for this (iPhone, works offline).

X 5h ago 70

Heading to Monza next month. Has anyone actually used gridpeek? Wondering if the offline mode holds up at the track.

Asks about gridpeek by name, so a direct answer from the developer helps.

Draft reply

I'm the developer, so I'm biased! Tickets, bookings and session times stay on your phone, so it works with no signal. Happy to answer anything about Monza.

Example for a fictional app, gridpeek. Posts are made up.

Four steps, one honest loop

marKit runs inside your coding agent. Small scripts do the searching and bookkeeping, your agent does the reading and writing, and you do the replying.

  1. 1 /markit-setup

    Describe your app once

    Run it in your app's folder. marKit reads your README and store listing and drafts a profile with your audience, competitors and keywords. You confirm it.

  2. 2 /markit-find

    Search where people ask

    Searches every source you've switched on with your own keys, plus your agent's web search. Old, duplicate and other-language posts are dropped, and posts you've seen never come back.

  3. 3 rewrite draft #3

    Score it and draft a reply

    Your agent judges only the best 40, checks whether a thread is solved or locked, and drafts a reply that helps first and says you made the app. Want another tone? Ask your agent.

  4. 4 /markit-dashboard

    Reply yourself, then teach it

    Copy the draft, open the post, reply in your own words. Mark it Replied or Skipped and say why: marKit flags noisy keywords and suggests better ones. Your profile only changes when you say yes.

Lives in the agent you already use

marKit is four skills for Claude Code and Codex. Ask for a run and you get a short summary in chat, a full report on disk, and cards waiting in the dashboard.

Your agent never sees your API keys. The scripts read them from a file only they open, and errors never print a key, a URL or a header.

  • Claude Code
  • Codex
› /markit-find gridpeek
Searching Hacker News, Stack Exchange, Bluesky, Reddit…
Running 13 web searches…
Scoring 9 candidates and drafting replies…

marKit report · gridpeek · 5 opportunities: 2 high · 2 medium · 1 low
Top: #1 "First GP at Silverstone…" (Reddit r/formula1, 100)
     #2 "TripIt doesn't know anything…" (Reddit r/travel, 85)
     #3 "Two weeks until Austin…" (Bluesky, 65)
report.md: ~/markit-reports/gridpeek/2026-10-21-2243/report.md

An inbox for replies, not a feed to scroll

The dashboard runs on your own computer and nowhere else. Filter by app, run, platform and priority, then clear the list from the keyboard.

The marKit dashboard: a To do list of three posts on the left and, on the right, the selected Reddit post with its score, why it fits, a caution about self-promotion and the draft reply.
  • JK move
  • C copy draft
  • O open post
  • R replied
  • S skip

Free sources first. Paid ones stop at your caps.

marKit itself costs nothing and works well with free sources only. If you switch on a paid one, marKit counts every call and stops at the limits you set.

SourceCostKeyGood to know
Hacker News FreeNoneStories and comments.
Stack Exchange FreeOptional300 requests a day, or 10,000 with a free key.
Bluesky FreeNonePublic search.
YouTube FreeGoogle API key100 searches a day.
Threads FreeMeta tokenOnly your own posts until Meta approves your app, or public posts through SocialCrawl (paid).
X PaidBearer tokenAbout $0.005 a post. Default cap: 30 posts a run, about $0.15.
Reddit Paid, can be $0One providerThrough ScrapeCreators, Apify or SocialCrawl. A typical run costs one or two cents; Apify's free $5 a month can cover it.
Web search FreeNoneYour agent searches forums and Q&A sites.

Six rules marKit doesn't break

They're enforced in code and covered by tests, and with zero dependencies you can read every line before you install.

  • It never posts for you

    No replies, likes, follows or DMs. It drafts, and you decide whether to reply at all.

  • Your agent never sees your keys

    Keys live in one owner-only file that only marKit's scripts read. They never show up in output, logs or reports.

  • No browser automation

    Official APIs with your own keys, plus your agent's web search. No scraping, no logged-in sessions.

  • Posts are data, not instructions

    Text from the web is analyzed, never followed, and escaped in reports so it can't inject links.

  • Zero npm dependencies

    Node.js built-ins only, so there's nothing hidden to audit.

  • No server, no telemetry

    No account and no marKit server. It only talks to the APIs you switch on.

Questions

Anything else is in the README.

Isn't this a spam tool?

It's built to be the opposite. marKit only surfaces posts where someone asked for help your app gives. Every draft helps first, says plainly that you made the app, and only claims what it really does. Communities that ban self-promotion get a caution, and nothing is posted unless you post it.

What does it cost?

marKit is free and MIT licensed. Hacker News, Stack Exchange, Bluesky, YouTube and web search are free. X and Reddit providers are paid and optional, and marKit stops calling them at your caps. Set a spending limit in each platform's own console too.

Why does Reddit need a paid provider?

Reddit restricts search crawlers, so your agent's web search rarely finds Reddit threads. You pick one provider (ScrapeCreators, Apify or SocialCrawl), so you never pay twice for the same search.

Which agents does it work with?

Claude Code and Codex. In Codex, the commands start with $ instead of /. You need Node.js 20.12 or newer.

Where does my data go?

Nowhere but your computer. Your config and keys live in ~/.config/markit and reports in ~/markit-reports. The only network calls are to the sources you switch on.

How do I update or remove it?

Update with npx skills update -g. Remove with npx skills remove -g markit-setup markit-find markit-usage markit-dashboard. Your config and keys stay until you delete them.

Someone asked for your app today

Install all four skills, start a new agent session, and run /markit-setup in your app's folder.

npx skills add notsocj/markit --skill '*' -g
Read the code on GitHub