Contents
- What this plugin is
- Before you start
- Installing Claude Code
- Installing dependencies
- Installing the plugin
- First-time setup
- Setting up a workspace
- Preparing your data
- Consent — the strict rule
- Writing a donor report
- Writing a proposal
- Scouting for grants
- Google Drive integration
- Understanding the outputs
- When things go wrong
- Getting help
- Glossary
1. What this plugin is
The NGO Toolkit is a free add-on for a program called Claude Code — Anthropic's AI-powered assistant that lives on your computer. Once you install both, you can type commands in plain English (or use short commands like /ngo:donor-report) and the AI will help you:
- Find grant opportunities that match your organisation's focus areas.
- Write donor reports from your data files, interview transcripts, and budgets. The plugin produces three formats at once — a webpage, a PDF, and a Word document.
- Write proposals — full proposals, concept notes, or short Letters of Inquiry (LOIs) — matching any funder's requirements.
The plugin's most important promise: every number, quote, and fact in your final report or proposal traces back to a document or file you provided. If the AI doesn't have a source, it marks that section with a yellow "NEEDS INPUT" flag rather than making something up.
2. Before you start
You'll need:
- A computer — Mac (recommended), Windows, or Linux. Any laptop or desktop from the last 5 years works fine.
- An internet connection — the AI runs on Anthropic's servers.
- An Anthropic account — you'll sign up for one during Claude Code installation. There's a free tier and paid tiers; for regular use, a paid tier is more comfortable.
- Roughly 30 minutes for the first-time install and setup. After that, drafting a report typically takes 15–45 minutes depending on how much data you have.
You do not need any programming experience. You will run a few commands by copying and pasting them into a terminal window; we'll explain each step.
3. Installing Claude Code
Claude Code is the main app; the NGO Toolkit is an add-on that lives inside it.
3.1 Download Claude Code
Visit claude.com/claude-code. Follow Anthropic's installation guide for your operating system. When it's done, you'll be able to run Claude Code from your Applications folder (Mac), Start menu (Windows), or the terminal (Linux).
3.2 Sign in
Open Claude Code. It will ask you to sign in with your Anthropic account. Follow the prompts.
/ngo:setup — those are shortcuts to specific workflows.
4. Installing dependencies
The plugin uses three tools behind the scenes. Install each once and you never think about them again.
4.1 Typst — for PDF output
On macOS: open the Terminal app (Applications → Utilities → Terminal). Copy and paste this line and press Return:
brew install typst
If your computer says "brew: command not found," you need Homebrew first. Copy and paste this line (it's the standard installer):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Wait for it to finish (a few minutes), then run brew install typst again.
On Windows: open PowerShell (Start menu → PowerShell), and run:
winget install --id Typst.Typst
On Linux (Ubuntu/Debian):
sudo apt install typst
Or download directly from github.com/typst/typst/releases.
4.2 Python and two libraries — for DOCX and Excel handling
Most Macs and Linux computers already have Python. To check, open Terminal / PowerShell and type:
python3 --version
If you see something like Python 3.10.something or higher, you're set. If not, download Python from python.org/downloads, install it, and check again.
Then install the two libraries:
pip install python-docx openpyxl
python3 -m pip install python-docx openpyxl instead. On some systems, pip is spelled pip3.
5. Installing the plugin
This part happens inside Claude Code, not the Terminal.
- Open Claude Code and start a new chat.
- In the message box, type:
Press Return. Claude will fetch the plugin's information./plugin marketplace add everyimpactai/ngo-toolkit - Then type:
Press Return again. You should see confirmation that the plugin was installed./plugin install ngo-toolkit@everyimpactai
To verify: in the message box, start typing /ngo: — you should see the four available commands appear:
/ngo:setup/ngo:grant-scout/ngo:donor-report/ngo:proposal
If they don't appear, try quitting Claude Code and reopening it — the command list refreshes on each launch.
6. First-time setup
The /ngo:setup command is your first stop. It builds a profile of your organisation that every other command uses.
6.1 Run it
In Claude Code's message box, type:
/ngo:setup
Press Return. Claude will start asking you questions, one at a time.
6.2 The 14 questions
Answer conversationally. Skip a question if you don't know the answer — you can add it later by editing your profile file. Here's what to expect:
| Question | Example answer |
|---|---|
| Organisation name | "Green Horizon Foundation" |
| Legal / registered name | "Green Horizon Foundation Trust" |
| Website URL | "greenhorizon.org" |
| HQ country + countries of operation | "Kenya, operating in Kenya and Uganda" |
| Organisation type | "Local NGO" |
| Primary contact email | "programmes@greenhorizon.org" |
| Thematic areas (2–5) | "youth livelihoods, women's economic empowerment, climate adaptation" |
| Beneficiary word your org uses | "participant" or "rightsholder" or "community member" |
| Typical grant size range (USD) | "100,000 to 2,000,000" |
| Priority funders (up to 15) | "Ford Foundation, Hilton Foundation, MacArthur, USAID, EU DEVCO..." |
| Exclusions | "no US federal, no religious" |
| Brand colours (hex) | "primary #0F4C81 navy, accent #3AAFA9 teal" (or use the default) |
| Logo path | "/Users/you/Documents/logo.png" (or skip and add later) |
| Google Drive? | "yes" or "not yet" |
6.3 What gets saved
Your answers are written to a file on your computer at ~/.claude/ngo-toolkit/profile.json. It's a plain text file — you can open it in any text editor to make changes later. Nothing is sent to a server.
/ngo:setup again.
7. Setting up a workspace
A "workspace" is a folder on your computer where you put all the inputs for one report or one proposal. Each grant gets its own workspace. The plugin creates the folder structure for you.
7.1 Ask the plugin to scaffold one
Still inside /ngo:setup — after the profile questions, it will offer to scaffold a workspace. Say yes and give it a name. Something like:
~/reports/ford-2026-progress
The ~ means "my home folder" on your Mac or Linux. On Windows, use something like C:\Users\YourName\Documents\reports\ford-2026-progress.
7.2 What gets created
The plugin creates a folder with these subfolders, each containing a README file explaining what goes there:
ford-2026-progress/
├── README.md ← overall guide
├── data/ ← your CSVs and Excel files
├── interviews/ ← interview transcripts with consent
├── past-reports/ ← old reports to this funder
├── donor-materials/ ← the RFP or funder's template
├── logos/ ← org and funder logos (optional)
├── photos/ ← programme photos
├── policies/ ← safeguarding, gender, MOUs
└── output/ ← the plugin puts finished reports here
7.3 The data-pack checklist
After scaffolding, the plugin generates data-pack-checklist.md inside your workspace — a personalised list of what to collect for this specific funder and report type. Open it in any text editor or Markdown viewer. Tick items off as you gather them.
8. Preparing your data
This is the part that takes real effort — the plugin can only work with what you give it.
8.1 Quantitative data — data/ folder
Drop your CSV files or Excel workbooks here. Common files for a donor report:
enrolment.csv— one row per participant, with columns for gender, age, geography, disability, and any other disaggregation you track.followup.csv— outcomes survey data (employment, income, satisfaction).budget.csv— approved vs actual by category.mel-log.csv— a log of M&E instruments used and response rates.sub-grantees.csv— if you sub-grant.
Excel files (.xlsx) are fine
The plugin will automatically convert them to CSV before reading. There's one gotcha: if your Excel file has formulas (like a total row computed with =SUM(...)), you need to open the file in Excel, save it, and close it at least once before handing it over. Otherwise the formula cells will be empty when read.
8.2 Interview transcripts — interviews/ folder
One file per interview. Format: plain text (.txt), Markdown (.md), or Word (.docx). Each file must include:
- Date and location of the interview.
- The interviewer's name.
- Consent record — a line stating whether the participant gave written or verbal consent, and what scope (see next section).
- The direct quotes the participant said, verbatim.
- Brief context — age band, cohort, geographic location, what changed for them because of your programme.
Here's what a good interview file looks like:
# Interview — Aisha M.
- Date: 2025-09-14
- Location: Nairobi office
- Interviewer: Jane K.
- Written consent recorded: YES (form signed 2025-09-14, filed at consents/aisha-2025-09-14.pdf)
- Consent scope: donor report + website, NOT social media advertising, valid 3 years
## Direct quote (audio timestamp 00:14:22)
"Before the training I sold vegetables when I could. Now I run my own tailoring stall and I pay for my daughter's uniform myself."
## Context
Aisha is 28, mother of two, joined Cohort 3 in Q1 2025 and completed in Q2 2025.
Pre-programme monthly income around KES 1,500 (casual). Post-programme (6-month
follow-up): KES 9,200/month from tailoring. Has taken on two apprentices.
8.3 If you have audio only
The plugin can't transcribe audio directly (it's designed to be lightweight). You have three options:
- Otter.ai or Descript — paid web services that produce clean transcripts.
- MacWhisper — a Mac app that runs a transcription model on your own computer (offline).
- Whisper via the plugin's helper — if you're comfortable with Terminal, install
openai-whisperand runpython scripts/transcribe_audio.py <audio-file>. See the FAQ for details.
After transcribing, save the transcript into the interviews/ folder and add the frontmatter shown above.
8.4 Past reports — past-reports/ folder
Drop any past reports to this specific funder here as PDF or DOCX. The plugin will read them to learn the funder's preferred section structure, indicator conventions, and tone. It will not copy prose from a past report — only structural cues.
8.5 Funder materials — donor-materials/ folder
Anything the funder has published that shapes the report:
- The grantee handbook or reporting template.
- The RFP (for proposals).
- The award letter or grant agreement (for reference to grant terms).
8.6 Photos — photos/ folder
Programme photos. JPG or PNG best; the plugin will convert iPhone HEIC photos automatically if needed. For each identifiable person in a photo, you need consent — same rule as quotes.
If you want captions, add a file called photos-captions.md in the folder with one entry per photo:
## training-day-2025-09.jpg
Caption: Community health worker training, Kisumu, September 2025.
Credit: Green Horizon Foundation.
Consent: written consent on file for all identifiable participants.
8.7 Policies — policies/ folder
PDF or DOCX copies of your organisation's:
- Safeguarding policy (current version).
- Gender / DEI policy.
- Financial controls policy.
- MOUs with government partners or sub-grantees.
These are referenced in the report where relevant ("under Safeguarding Policy v3, 2024").
8.8 Logos — logos/ folder
Optional. If you have your organisation's logo and the funder's logo as image files, drop them here. If not, the plugin will attempt to fetch them from Wikipedia or the organisation's website. If it can't find one automatically, it will ask you rather than invent one.
9. Consent — the strict rule
The single most important non-technical part of using this plugin: every quote from a real person, and every photograph identifying a real person, needs documented consent. The plugin refuses to include quotes without a consent record. It's not being difficult — it's protecting your organisation from a real risk.
9.1 Use the consent form template
A printable consent form is bundled with the plugin. Find it at:
Print it, translate it into the participant's preferred language, adapt the wording, and file the signed forms with your M&E records. The form covers:
- How the participant wants to be attributed (full name, first name only, pseudonym, anonymous).
- Which uses they agree to (donor report, website, social media, advertising, press).
- Whether their photograph can be used (identifiable or not).
- How long the consent is valid.
- How they can withdraw consent later.
9.2 Record it in the interview transcript
In the transcript file, always include a line like:
- Written consent recorded: YES (form signed 2025-09-14, filed at consents/aisha.pdf)
- Consent scope: donor report + website, NOT social media advertising, valid 3 years
The plugin's fact-checker reads for this line before allowing a quote in the output. If it's missing or unclear, the quote is dropped.
10. Writing a donor report
Once your data is in the workspace, you're ready.
10.1 Run the command
In Claude Code, type:
/ngo:donor-report ~/reports/ford-2026-progress ~/reports/ford-2026-progress/output
The two paths are your workspace and where you want outputs to land. Substitute your own paths.
10.2 What Claude will ask
Claude walks through a conversation:
Claude: "What's the exact funder name and grant ID?"
Claude: "What reporting period does this cover?"
Claude: "One of your XLSX files has 3 uncached formula cells — the totals row won't have values. Do you want to open it in Excel first, or should I mark those sections as NEEDS INPUT?"
Answer each question. The whole dialog takes about 5 minutes.
10.3 The provenance report
Before rendering anything, the plugin shows you a provenance report: every factual claim it plans to include, and which source file it will trace to. Example:
Executive summary (executive_summary)
- CLAIM: Enrolled 1,247 young people → SRC-ENROL (data/enrolment.csv, all rows)
- CLAIM: 61% female enrolment → SRC-ENROL
- CLAIM: 68% in paid work at follow-up → SRC-MEL (mel-log.csv, follow-up survey n=890)
Progress against outcomes (outcomes)
- OUTCOME Enrolment: 1,247 youth → SRC-ENROL
- OUTCOME Employment: 68% → SRC-MEL
Plans for next year (next_steps)
- [NEEDS INPUT] Y3 workplan detail pending board approval on 2026-02-15
Read through it carefully. Ask yourself:
- Are there any claims I don't recognise?
- Are the sources correct?
- Are the NEEDS INPUT markers acceptable, or do I need to fill them in first?
Tell Claude "looks good" to proceed, or "actually, we don't have data for X — remove that claim" to correct.
10.4 The fact-checker
Next, an independent subagent — the fact-checker — re-reads your source files and verifies that each claim actually matches what the source says. It flags:
- Over-claiming — e.g., saying "68% of participants" when the source is really "68% of survey respondents" (which may not be all participants).
- Unsupported causal claims — e.g., saying "our programme reduced under-5 mortality by 15%" from a study design that can't prove causation.
- Consent gaps — quotes without a consent record.
If the fact-checker finds problems, rendering stops. You'll see a report of what needs fixing. Fix them (or accept the softer language), and re-run.
10.5 The three outputs
Once everything passes, the plugin renders three files into your output/ folder:
report.html— a single-file webpage. Open in any browser. Great for sharing internally or on your website.report.pdf— a professional PDF. Use this for the actual funder submission.report.docx— a Word document. Use this if the funder wants an editable version, or if your CEO wants to make manual edits before submission.
All three come from the same source-grounded data, so they say the same thing. They differ only in presentation.
11. Writing a proposal
The proposal workflow is very similar to the donor report, with a stage argument telling the plugin how detailed to go.
11.1 Three stages
| Stage | Length | Purpose |
|---|---|---|
| LOI (Letter of Inquiry) | 1–3 pages | Test funder interest before invitation to apply. Standard for major US foundations. |
| Concept note | 2–5 pages | Summary of project logic with indicative budget. EU F&T uses this as a gate. |
| Full proposal | 15–40 pages | Complete narrative + logframe + budget + annexes. |
11.2 Run the command
Same setup as the donor report — collect data in a workspace — then run:
/ngo:proposal loi ~/proposals/hilton-2026 ~/proposals/hilton-2026/output
Replace loi with concept or proposal for the other stages.
11.3 If you don't know the funder well
The plugin offers to run a funder research subagent before drafting. It scours the funder's public materials — their strategy pages, grant history, published guidance — and produces a brief covering:
- The funder's strategic priorities (with URLs).
- Typical grant size and term.
- Recent grantees similar to yours.
- The vocabulary they use (words like "systems change" or "resilience" — you'll want to mirror them).
- Application format (LOI-first vs open, decision cycle).
Save this brief in the workspace and the proposal-drafter will use it to shape tone and language.
11.4 Everything else is the same
Provenance report → user approval → fact-checker → three-format render. Same discipline: every claim carries a source, every missing datum becomes a NEEDS INPUT marker.
12. Scouting for grants
The scouting command watches for new opportunities on your behalf.
12.1 Run it
/ngo:grant-scout
The plugin uses the priority funders in your profile and searches:
- Major RFP listing sites — Devex, Candid, Philanthropy News Digest, Grants.gov, EU Funding & Tenders portal.
- Each priority funder's own "current opportunities" page.
- Recent grantee announcements matching your thematic areas.
12.2 What you get back
A table of opportunities plus a detailed memo for each one worth pursuing. Every claim in every memo carries a URL — you can click through and verify. Example:
| Funder | Call | Deadline | Ceiling | Fit | Recommendation |
|-------------------|---------------------|-------------|----------|------|----------------|
| Ford Foundation | BUILD 2026 | 2026-03-15 | $2M/yr | 5/5 | Go |
| Hilton Foundation | Catholic Sisters | 2026-04-01 | $500K | 2/5 | No-go |
| MacArthur | 100&Change | 2026-05-15 | $100M | 4/5 | Maybe |
## Memo: Ford Foundation — BUILD 2026
Deadline: 2026-03-15 [source: fordfoundation.org/work/our-grants/build/]
Ceiling: $2M/year, 5-year term
Fit: matches your thematic areas (youth livelihoods, women's economic empowerment)
Why Go: BUILD funds general operating support with full indirects, matches your org type.
Action: draft LOI by 2026-02-15.
Ask the plugin to save opportunities to a pipeline file, or move directly into drafting a proposal for one.
13. Google Drive integration
If your team stores everything in Google Drive, you can pull inputs directly from a Drive folder instead of downloading files by hand.
13.1 One-time connector setup
- In Claude Code, click Customize → Connectors.
- Click Add connector and choose Google Drive.
- Complete the OAuth flow — sign in with the Google account that has access to your team's Drive folders.
- Return to your chat.
13.2 Point the plugin at a folder
When you run /ngo:donor-report or /ngo:proposal, the plugin will ask whether to pull from local files or Google Drive. Choose Drive, then paste the folder's shareable URL. The plugin downloads all files into your local workspace before processing.
14. Understanding the outputs
Every rendered document — HTML, PDF, DOCX — contains these elements consistently:
14.1 Cover page
Full-bleed navy gradient background with your organisation name, the funder's name, the report/proposal title, and both logos side by side. Reporting period and submission date at the bottom.
14.2 Executive summary
A highlighted panel at the top: 2–3 short paragraphs, then a row of KPI tiles (big numbers with their targets). Draft last, read first.
14.3 Progress against outcomes
One card per outcome, showing achievement vs target, with a short narrative under each.
14.4 Charts
Bar charts, grouped bars, line charts, horizontal bars — rendered in native SVG (HTML) or Typst (PDF). Every chart caption cites a source in a small superscript.
14.5 Participant voice
Pull quotes styled with a coloured left border. Attribution, role, and source reference all shown.
14.6 Financial narrative + risk register
Tables. Variance columns colour-coded. Every row traces to a specific line in your budget file.
14.7 NEEDS INPUT markers
Anywhere the plugin lacked source data, you'll see a yellow callout: ◆ NEEDS INPUT — Y3 workplan detail pending board approval. These are visible in the final output on purpose — either fill them in before submission or acknowledge them in a cover letter.
14.8 Source appendix
At the end of every report: a table listing every source file, every CSV cell, every interview timestamp that the report draws from. Auditors and program officers can trace any claim back to its origin.
15. When things go wrong
The FAQ page covers the most common issues in detail. Quick summary:
15.1 Install issues
- "typst: command not found" — Typst isn't installed. Rerun the install step for your OS.
- "ImportError: No module named docx" — python-docx isn't installed. Run
pip install python-docx openpyxl. - SSL certificate errors — run
pip install certifi.
15.2 Command not recognised
- Restart Claude Code — the command list refreshes on launch.
- Make sure you're using the full command
/ngo:setup, not just/setup.
15.3 The plugin rejected my number
- The fact-checker found a mismatch between the source and the claim. Re-read its report — it explains which claim it disagreed with. Either tighten the wording ("68% of survey respondents" instead of "68% of participants") or add a caveat.
15.4 A quote won't appear
- Check that the interview file has a clear consent line. See section 9.
15.5 The PDF has fonts that look wrong
- Install Inter and Source Serif 4 fonts. On Mac:
brew install --cask font-inter font-source-serif-pro. - For non-Latin scripts, add Noto fonts (Arabic, Hindi, Chinese, Amharic): see the FAQ.
16. Getting help
In order of speed:
- The FAQ — FAQ.md — most install and data problems are covered there.
- GitHub Issues — github.com/everyimpactai/ngo-toolkit/issues. When filing an issue, include your OS, the command you ran, and the exact error message. Do not paste real beneficiary data in a public issue.
- Email —
dev@everyimpact.aifor questions that don't fit an issue.
17. Glossary
- Claude Code
- Anthropic's AI assistant that runs on your computer. The NGO Toolkit is a plugin that adds NGO-specific workflows to Claude Code.
- Plugin
- An add-on that extends Claude Code with new commands, skills, and subagents. Installed once with
/plugin install. - Command
- A shortcut like
/ngo:setupthat triggers a specific workflow. Typed in the Claude Code message box. - Subagent
- A specialised helper Claude uses behind the scenes for particular tasks — grant scouting, drafting, fact-checking. You don't invoke them directly.
- Workspace
- A folder on your computer that contains all inputs and outputs for one specific report or proposal. Structured into subfolders (data, interviews, past-reports, and so on).
- Source-grounding
- The plugin's core discipline: every factual claim in an output must trace back to a specific source (a CSV cell, a document quote, a URL). Enforced by validation and an independent fact-checker.
- Provenance report
- The list of every claim in a draft and its source, shown to you before rendering so you can approve or correct.
- Fact-checker
- An independent subagent that verifies every claim against its source file before allowing rendering to proceed.
- NEEDS INPUT marker
- A visible yellow callout in the output that signals the plugin lacked source data for that section. Better than fabricated content.
- Provenance / source_ref
- A reference identifier pointing to a specific source file, cell, or paragraph. Every claim carries one.
- LOI / concept note / full proposal
- Increasing depth of proposal. LOI is 1–3 pages tests funder interest. Concept note is 2–5 pages summarising project logic. Full proposal is 15–40 pages with complete logframe, budget, and annexes.
- Logframe / theory of change
- Two ways of showing how a programme's activities lead to intended outcomes and impact. Most funders expect one or both in a proposal.
- Disaggregation
- Breaking down data by categories such as gender, age band, geography, or disability. Standard expectation from institutional funders.
- M&E / MEL
- Monitoring and Evaluation (or Monitoring, Evaluation, and Learning). The systems and instruments used to track programme performance.
- Typst
- The typesetting software the plugin uses to produce PDFs. You install it once; the plugin uses it invisibly thereafter.
- python-docx / openpyxl
- Two Python libraries the plugin uses to produce Word documents and read Excel files, respectively. Install once with
pip install. - Terminal / Command line
- A text-based interface to your computer. On Mac: Applications → Utilities → Terminal. On Windows: PowerShell. You'll use it only during installation.
- OAuth
- The "Sign in with Google" flow used to connect Google Drive to Claude Code. You do it once.