This guide walks you through installing GrantKit and syncing your first grant proposal.
pip install grantkit
export GRANTKIT_SUPABASE_URL="https://your-project.supabase.co"
export GRANTKIT_SUPABASE_KEY="your-anon-key"
Or create a .grantkit.yaml config file:
supabase:
url: https://your-project.supabase.co
key: your-anon-key
grantkit sync pull
This creates a directory structure like:
my-grants/
├── nsf-cssi/
│ ├── grant.yaml
│ └── responses/
│ ├── abstract.md
│ ├── broader_impacts.md
│ └── technical_approach.md
├── arnold-foundation/
│ └── ...
Open the project in your editor and use Claude Code, Cursor, or any AI tool:
claude "improve the broader impacts section to emphasize open source benefits"
grantkit validate
This checks NSF compliance rules like page limits, formatting requirements, and prohibited content.
grantkit sync push
Or watch for changes and auto-sync:
grantkit sync watch
Each response is a markdown file with YAML frontmatter:
---
title: Broader Impacts
key: broader_impacts
word_limit: 2500
status: draft
---
# Broader Impacts
PolicyEngine democratizes policy analysis by providing free,
open-source tools that enable researchers, journalists, and
policymakers to understand the effects of tax and benefit reforms.