Skip to content

footnote-ai/footnote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,631 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Footnote

License: MIT Hippocratic License HL3-CORE Ask DeepWiki

AI you can inspect and steer.

Footnote is a transparency-first AI framework for people who want more than a black-box answer. It pairs responses with provenance and trace metadata so you can understand what happened, challenge weak output, and guide behavior over time.

Built for human oversight, not "just trust me."

image

Demo · Quickstart · Docs · Contributing


Why Footnote

Most AI products give you an answer and hide the reasoning context.

Footnote takes the opposite approach: make responses easier to inspect, easier to challenge, and easier to steer. The goal is to support better human judgment, not replace it.

With Footnote, you can:

  • See how confident the AI is
  • Check what information it used
  • Understand the trade-offs behind an answer
  • See what guardrails were applied

Try the live demo

Quickstart

This starts the local backend + web app.

  1. Install dependencies:
pnpm install

If pnpm is not available yet, run corepack enable once, then run pnpm install.

  1. Create a local env file from .env.example.

Set at least these keys in .env for a useful local run:

OPENAI_API_KEY=...
INCIDENT_PSEUDONYMIZATION_SECRET=<generate-a-random-secret>

Generate a secret with:

node -e "console.log(require('node:crypto').randomBytes(32).toString('hex'))"
  1. Start backend + web:
pnpm dev
  1. Open web app:

http://localhost:8080

How It Works

  1. You ask Footnote a question.
  2. The backend generates a response using the configured model runtime.
  3. Footnote returns the answer with inspectable metadata (confidence, sources, trade-offs, and applied constraints).

Representative metadata shape:

{
    "confidence": "medium",
    "sources": ["..."],
    "tradeoffs": ["..."],
    "constraintsApplied": ["..."]
}

TRACE Wheel

TRACE shows five response qualities at a glance: Tightness, Rationale, Attribution, Caution, and Extent.

Learn more: TRACE decision record

Advanced Setup

Run Discord Bot + Web + Backend

If you want the Discord surface, set Discord credentials in .env and run:

pnpm start:all

Required Discord configuration includes:

  • DISCORD_TOKEN
  • DISCORD_CLIENT_ID
  • DISCORD_USER_ID
  • DISCORD_GUILD_IDS (preferred) or DISCORD_GUILD_ID (legacy fallback)

VoltOps Observability

To enable VoltAgent runtime observability in VoltOps, set:

VOLTAGENT_PUBLIC_KEY=pk_...
VOLTAGENT_SECRET_KEY=sk_...

Multi-Bot Vendoring

You can run a vendored bot identity by setting:

  • BOT_PROFILE_ID
  • BOT_PROFILE_DISPLAY_NAME
  • BOT_PROFILE_PROMPT_OVERLAY or BOT_PROFILE_PROMPT_OVERLAY_PATH
  • BOT_PROFILE_MENTION_ALIASES (optional)

For precedence details, see docs/architecture/prompt-resolution.md.

Docs

Start here: Documentation Map

Docs are actively being improved as Footnote evolves. If something is unclear or hard to find, open a Discussion and we will point you to the right source.

Contributing

Contribution docs are still in progress.

For now, please open an Issue or Discussion for non-trivial changes so we can align on scope early. Thoughtful critique, focused PRs, and experiments are welcome.

Project Status

Footnote is pre-1.0 and moving quickly. Expect rapid iteration and occasional sharp edges while interfaces and workflows stabilize.

License

Footnote is dual-licensed under MIT and the Hippocratic License v3 (HL3-CORE).

See license strategy for details.

Packages

 
 
 

Contributors