
Company News
Jerod Santo Joins Socket as Head of Media
Allow myself to introduce... myself.
@davesheffer/hunch
Advanced tools
A shared record for AI agents: decisions, completed work, and commitments, with sources. Git-native engineering memory and a self-hosted state server.
A new agent session should not mean explaining the project all over again. A second agent should be able to check a recorded decision, see the evidence behind completed work, and find an outstanding commitment.
Hunch keeps that record in Git and makes the relevant parts available to your agents. It started with engineering memory: why code exists, which approach failed before, and which rules a change must preserve. It also ships a state server for sharing decisions, action records, and commitments across authorized organization, team, user, and repository scopes.
The goal is simple: agents working from the same maintained record, with sources they can inspect. Hunch supplies memory and checks; the assistant still does the work.
Requires Node 22.13+ and a Git repository.
npm i -g @davesheffer/hunch
cd your-repo
hunch init
hunch backfill --since 90d # optional: draft memory from recent history
Reload your assistant, then ask:
Why is this built this way, and what should I preserve when changing it?
hunch init indexes the code, configures supported assistant integrations, and adds memory instructions while preserving existing settings. For Codex hooks, review and trust the commands in /hooks, then start a new session. Memory is advisory by default. Blocking requires an explicitly trusted rule and strict enforcement.
Hunch works with Claude Code, Codex, Cursor, VS Code/Copilot, Windsurf, Antigravity, and other MCP clients. Automatic context and hook coverage vary by assistant; a connected MCP server alone does not prove they are running. Check your integration.
| Need | How Hunch helps |
|---|---|
| Stop explaining old decisions | Saves decisions, rejected alternatives, bug history, corrections, and open findings with their sources. |
| Understand a change before making it | Connects memory to code symbols and dependencies; shows affected code and recorded architectural intent. |
| Keep agents informed across sessions | Delivers a focused brief for a task through MCP and supported lifecycle hooks. |
| Check the rules your team chose | Evaluates supported constraints and code relationships without a model in the blocking path. |
| See what happened during a task | Separates delivered memory, the agent's reported use, rule results, and observed command results in a contribution report. |
| Share project memory with teammates | Keeps repository memory in Git, with an optional dedicated private memory repository. |
| Share work state across agents | Serves authorized records for decisions, actions, commitments, entities, and relationships through HTTP, MCP, and a typed client. |
For example, a team fixes a logout bug by keeping sessions on the server. Months later, an agent proposes removing that code. Hunch can surface the original reason and rejected alternative before the edit. A supported, trusted rule can flag the conflict; strict mode can block it. Recording the lesson and configuring the integration are what make this possible.
| Command | Use it for |
|---|---|
hunch context "<task>" --profile builder | Get a focused brief before starting |
hunch why <file-or-symbol> | Understand decisions and past bugs behind code |
hunch structure [target] | Inspect indexed files and symbols |
hunch findings [scope] | See known gaps that still need work |
hunch impact origin/main | See what a branch could affect |
hunch check --working | Check current changes against recorded rules |
hunch conform | Check supported architectural relationships |
hunch now | Read recent decisions and the recorded roadmap |
hunch doctor | Diagnose setup and storage problems |
For enforcement after reviewing and trusting the relevant rules:
hunch firmness strict
hunch check --staged --strict
Generated notes, observed habits, and imported documents do not silently gain blocking authority.
From each repository that uses Hunch:
hunch update
Or ask your agent to “update Hunch.” The command installs the latest release, aligns configured integration pins, repairs known legacy launch commands, and refreshes Hunch instructions. It preserves unrelated settings and intentionally disabled hooks.
--global to update both.hunch integrations repair-pins./hooks to review and trust changed commands, then start a new session. A changed version pin changes the command and requires renewed trust.Verify the setup:
hunch integrations check
hunch integrations check --harness codex --probe --require mcp
hunch integrations check --harness codex --require context
The first command checks configuration. The probe starts a fresh MCP process and reads memory. The context check requires observed hook delivery on the expected version, so run it after the new assistant session begins. --require fails when the named capability is not verified; none of these checks proves that a model followed the advice.
Task reports answer: what memory reached this task, what did the agent say it used, and what checks actually ran?
The normal agent instructions request a completion card with a link to a local evidence report. You can also inspect reports directly:
hunch task list
hunch report <task-id> --html
A delivered lesson, an agent's claim, and a passing test are different evidence. Hunch keeps them separate. Automatic presentation depends on the host following the task lifecycle; missing evidence stays unverified. Read the reporting guide.
One maintainer connects a dedicated private Git repository:
hunch shared --repo git@github.com:acme/project-hunch-memory.git
git add .gitignore .hunch/team.json
git commit -m "chore: connect shared Hunch memory"
git push
Teammates install Hunch, pull the code, and run hunch init. Normal Git access controls the shared repository. Credentials, local clone paths, and private overlays stay out of the committed pointer. Use hunch shared --sync to retry synchronization; add --no-auto-commit when captures should wait for explicit sync.
This shares a project's engineering memory. The state server below adds authenticated access across multiple scopes.
A coding agent needs to know why a module exists. An operations agent may need to know whether a customer action was completed or who owes the next follow-up. Both need a maintained record they can check.
Hunch already ships hunch serve: a self-hosted HTTP service for organization, team, user, and repository records. A configured identity determines which scopes an agent may access. The same state contract is available through MCP and the @davesheffer/hunch/state client.
Records can describe decisions, action outcomes, commitments, entities, relationships, and summaries that name their dependencies. Actions retain their status, including unknown or unverified outcomes. Repeated writes have stable identities, conflicting current decisions are refused, and confirmed human records receive protections against agent overwrites. These are defined checks on structured records; Hunch cannot establish every fact in the outside world on its own.
This is what deterministic state means here: explicit rules govern the stored record, rather than having each agent reconstruct it from scratch. Git holds the durable data; SQLite is a rebuildable index. The server binds to loopback and requires deployment and agent integration by its operator. Hunch does not provide a managed CRM or email connector service.
Set up and understand the state server · State contract and client reference
The vision is continuity across people, tools, and agents: an operations agent records a customer issue, a coding agent finds the relevant decision and fixes the cause, and the operations agent closes the commitment using evidence of the fix.
The underlying memory and state tools ship today. The broader claim—that different agents reliably use that shared state and avoid contradictory work—is still being measured in the Sofia pilot. Simulated results and a limited live pilot are not proof of that outcome across organizations. The roadmap tracks the remaining acceptance gates.
Hunch remains the product name. The nuryel.state/1 protocol and nuryel_* tool names are existing technical identifiers; a possible future rename is undecided.
Project DNA describes observed repository conventions: terminology, contribution habits, review expectations, and engineering patterns. Engineering memory records decisions and their reasons. Both can inform a task, but frequent behavior does not become policy.
hunch dna inspect
hunch dna context
hunch dna diff <older-ref> <newer-ref>
Profiles retain their revision, sources, confidence, and freshness. Project DNA contract · Broader DNA vision
hunch private --repo <url> keeps sensitive project reasoning in a private overlay. Public exports and CI should use public-only views.Apache-2.0
FAQs
A shared record for AI agents: decisions, completed work, and commitments, with sources. Git-native engineering memory and a self-hosted state server.
The npm package @davesheffer/hunch receives a total of 2,541 weekly downloads. As such, @davesheffer/hunch popularity was classified as popular.
We found that @davesheffer/hunch demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Allow myself to introduce... myself.

Research
/Security News
A Twitch browser extension on Chrome and Firefox forwards users’ live OAuth session tokens through proxies controlled by a Russian bot service.

Security News
Anthropic found biased reasoning and recklessness drove Claude Mythos 5 to publish malware on PyPI and compromise a security vendor.