We launched dif on Sep 5 and the most-asked question in the comments was some version of what does the agent part actually do? So here is a bit more context:
dif init writes a managed block into AGENTS.md, CLAUDE.md, and .cursorrules. The block tells the agent where flag files live, the frontmatter schema, the dif("flag-id") call at the render site, and to run dif validate before opening a PR. It also installs three Claude Code skills into .claude/skills/: one proposes the surfaces in your app, one drafts a flag or test, one concludes it and writes the learning back to the repo.
Every dif build refreshes dif/context.json, so the next session starts knowing what is live and what already got killed.
Pick what you want with --agents claude, --agents cursor, --agents general, or --agents none.
Hey Product Hunt. David here, one of the makers.
A while back I asked Claude Code to add feature flags to a project. It got to the part where most flag tools want you to create an account, grab an API key, etc., and basically gave up and wrote `process.env.SHOW_NEW_CHECKOUT` instead.
That was the thing that got us thinking about Dif. Dif keeps flags in your repo as markdown files. They get reviewed in PRs like everything else. You can install it with one command, there's no signup or API key required, and coding agents can actually use it without getting stuck halfway through.
`dif init` also adds some instructions to `agents.md`, and we generate a `context.json` on each build so the agent has a better idea of what flags exist, what's been removed, and what's already been tried. A/B tests live in the same setup too, even if you're not ready to run them yet.
The self-hosted version is free. The cloud piece is for getting a view across projects and having Dif propose changes, but those still come back through PRs. Git stays the source of truth.
Would genuinely love the critical version of the feedback here: would you use this? If not, what would stop you? And what are you using today that we'd need to be better than?
We'll be around all day.
@Flipt Cloud, @Reflag and @Hypertune winding down, it feels like the right time for @dif.sh to launch. and it's open-source! oss ftw
@fmerian Yeah, the timing is pretty wild. It also feels like a good reminder that feature flags are important enough infrastructure that they shouldn’t disappear when a vendor does.
That’s a big part of why we wanted Git to stay source of truth and the self-hosted version to be genuinely useful on its own.
And yes, OSS ftw 🙌
Curious how this works with Claude code
@niyeti_shah When you initialize dif, it installs skills for Claude (and others) that help with authoring feature flags, generating surfaces, and concluding experiments!
@hamza_afzal_butt right now it's the default git conflict behavior. We have found with the .md files that non-technical folks are able to handle those conflicts easily though.
The idea of treating featuree flags as part of the codebase Is unique
@tolulope_orija TY! ... and with it you unlock a cleaner workflow for teams, better learning management, easier self-hosting, and increasingly important, it allows coding agents to seamlessly interact with it.
To everybody that made our product hunt launch a success! We are proud to have been voted "Product of the day"! We appreciate the enthusiasm and excitement around dif.sh. As always, please continue to share your feedback. We have so many more ideas in the pipeline and can't wait to show you!
You asked for the critical version. Flags in git means flipping one takes a commit, a review and a deploy, and the reason teams pay for a flag service is the kill switch at 2am without any of that. For agent facing flags it's a fine trade, for a gradual rollout or an incident it isn't. Markdown also won't fix dead flags, since nothing gets reviewed when nothing changes and the flag nobody has touched in four months is still branching in prod.
@asadmalik901 Thanks for the input. Yeah there are definitely trade offs. We've found it's worth the improved every day performance (no api calls / extra hops) in not having the kill switch but it depends on the organization.
For dead flags, I actually think dif helps with this tremendously. The cli helps to find everything running and used with an agent it can find these pretty quickly.