I. Issue № 01 · April 2026

Your grants, set like a manuscript read by your agents.

GrantKit keeps your proposals in Supabase for team access and sharing, and on disk as plain markdown so Claude Code, Cursor, and any other agent can read, edit, and validate them the way they already edit code.

pip install grantkit · MIT licensed · v0.1 · source at github.com/GrantKit

The medium

~/grants/
├── nsf-cssi/
│   ├── grant.yaml
│   ├── budget.yaml
│   ├── references.bib
│   └── responses/
│       ├── broader_impacts.md
│       ├── technical_approach.md
│       └── project_summary.md
└── .grantkit/state.json ← baseline

A grant is a set of markdown files, a budget, a bib file, and a baseline that knows what the cloud looked like at your last sync.


II. Thesis

Why we wrote this

2023 was the year of the chatbot. 2024, RAG and finetuning. 2025, MCP and tool use. 2026 will be the year of the computer environment and filesystem.

— Alex Albert, Anthropic · see the post

Your coding agent is already world-class at reading a directory of files, proposing a surgical edit, explaining why, and handing you a reviewable diff. That is exactly how a proposal wants to be written. So we stopped trapping grants in a web UI and started treating them like what they are: writing, held in files, on a filesystem, where your tools live.


III. Why files

i. Context

The agent reads everything, not a snippet.

A web form hands the model a 2,000-token excerpt. A filesystem hands it the budget, last year's proposal, the solicitation, the reviewer's letter, and every response you've drafted — and lets it decide what to pull in.

ii. Provenance

Every edit is a reviewable diff.

Git remembers. An "undo" button forgets. When your broader impacts section drifts over three weeks of revisions, you want a line-level history you can bisect and blame, not a modal that asks if you're sure.

iii. Portability

The model is yours to choose.

Claude today, a local model tomorrow, a new frontier system next quarter. A grant stored as markdown outlives every LLM vendor and every SaaS company in the category.


IV. How it works

Pull. Edit with your agent. Push — with confidence.

GrantKit's CLI tracks a per-machine baseline of the cloud. Pushes detect when a teammate moved on since your last pull and refuse to overwrite their work. Pulls never clobber local edits. The same motions you use for code, for writing.

I. Pull. Grants land in ~/grants/ as markdown.
II. Edit. Open Claude Code, Cursor, Codex — any agent with file access.
III. Validate. NSF PAPPG checks run locally, offline.
IV. Push. Conflicts block; your teammates keep their work.
~/grants — grantkit sync
$ grantkit sync status

                 Sync plan                 
──────────────────────────────────────────
 local      modified locally   nsf-cssi/responses/broader_impacts.md
 local      modified locally   nsf-cssi/responses/project_summary.md
 cloud      modified on cloud  arnold-labor/responses/team.md
──────────────────────────────────────────
modified locally: 2, modified on cloud: 1

$ grantkit sync pull
 Kept nsf-cssi/responses/broader_impacts.md (local changes)
 Kept nsf-cssi/responses/project_summary.md (local changes)
 Pulled arnold-labor/responses/team.md

$ claude "Tighten the broader impacts section to 2500 words and add a specific undergraduate outreach plan."
...editing responses/broader_impacts.md...
 2,498 words. Draft updated.

$ grantkit sync push
 Push complete

Not a screenshot. Run the commands yourself with pip install grantkit.


V. What's inside

Sync

Bidirectional with conflict detection.

Per-entity baselines via .grantkit/state.json. Push blocks on cloud drift; --force when you mean it.

NSF validation

Eighty-plus PAPPG checks, locally.

Page limits, font, margins, URL restrictions, required sections, citation completeness. Offline. Before submission, not after.

Budget

BLS OEWS salary checks and GSA per-diem.

Catch a $350k postdoc before a program officer does. Automatic per-diem lookups by city and fiscal year.

Bibliography

BibTeX in, rendered citations out.

One references.bib. [@key] inline. Auto-regen is opt-in and respects your manual edits.

Collaboration

Share a grant by link or by role.

Public view links for program officers. Editor / viewer roles for collaborators via Supabase row-level security.

Open source

MIT-licensed. Fork it, shape it to your lab.

The CLI, the validators, the plugin, the web app. Source at github.com/GrantKit.


Write the next grant the way you write code.

Two commands and a coding agent. Nothing to migrate, no new editor to learn, no lock-in. Just files.

pip install grantkit && grantkit auth login