HomeLibraryServicesCase studiesBlogAbout
consultance.ai
Book a discovery call →

Services

  • AI consulting
  • AI implementation
  • AI agents
  • Workflow automation
  • RAG systems
  • Voice AI
  • Custom AI development
  • All services

Library

  • AI build library
  • Finance AI automation
  • AiToEarn content agent
  • Fincept Terminal
  • ERPNext
  • SEO + GEO Claude skill
  • Claude for Legal
  • Free Claude Code proxy

Resources

  • Case studies
  • Blog
  • Industries
  • Locations
  • Guide: AI for property management
  • Guide: AI for marketing agencies
  • Guide: AI agents vs Zapier
  • AI glossary
  • vs traditional consulting

Company

  • About
  • Book a call
  • Contact
  • Privacy
  • Terms

© 2026 consultance.ai · AI, implemented.

audit → build → deploy

← Libraryconsultance.ai
Book a build call
Finance and data

Free Open Source Finance AI Tools

For allocators, CFOs and research teams: ten open source finance AI tools mapped to five research jobs, each with a tested install, a first run, and which ones need no key.

Free — runs in your own ClaudeMedium setup · 4 steps14 ready-to-run prompts
Set it up free — takes 3 minutes ↓Or have us wire it in →
watch first

How to run these prompts

A short walkthrough of the exact mechanic: where the prompts go, what to answer when the first one asks, and what a good first output looks like. Same for every pack in the library.

Step 1 · setup
Three minutes, four steps, nothing to install by hand

Claude sets it up for you. You just paste.

Never used Claude? It is free and takes 30 seconds to open. Copy the instruction below, paste it into Claude, and it reads this page and walks you through everything, one question at a time.

  1. 1

    Tell Claude how to talk to you

    One tap. It changes how much Claude explains, and how slowly it goes. You can change it any time.

  2. 2

    Copy your setup instruction

    A short instruction plus a link to this page lands on your clipboard. First copy asks for your email once. That unlocks every button across the whole library.

  3. 3

    Open Claude in a new tab

    Free account, no card, 30 seconds. This tab stays open so you can come back.

    Open claude.ai ↗
  4. 4

    Paste, send, and answer one question

    Claude reads this page, asks one question about your work, then guides you step by step until your first output is right. If anything looks wrong, tell Claude what you see, and it fixes it with you.

▸Prefer the full prompt instead of the link? (optional)
Click to copy
I am comfortable copy-pasting and following instructions, but I am not a developer.
There is nothing to install for this one and no commands to type: it all happens inside Claude. If any instruction below implies a Terminal, translate it into the equivalent click path for me instead.
- Plain English. Define jargon the first time it appears.
- One step at a time, then wait for me to confirm before the next one.
- Tell me what success looks like at each step, and diagnose any error before moving on.

Follow the instructions below with those rules applied.

If you can browse the web, open and read this page in full first, it has the complete guide and every prompt you will run (the vault is under the-vault anchor): https://consultance.ai/library/finance-ai-repo-playbook#the-vault . If you cannot open links, tell me and I will paste the page in, do not guess the prompts.

I want to set up the Finance AI Repo Playbook. It is a map, not a prompt pack: each card installs one open source finance tool, runs it once, and links the consultance.ai pack that already wraps that tool in prompts. Walk me through it one step at a time, like the calm setup desk at consultance.ai. Wait for me to confirm each step before the next. Define every term the first time you use it.

This is mostly a Terminal install, through Claude Code. The one exception is the bias check (card 12), which runs in the Claude app with nothing to install. Ask which I need and never make me guess.

First message: ask me only this one thing, and wait. Do I want to install and run tools on my own machine (Claude Code), or only run the bias check on one memo (Claude app)?

## Path A: the bias check only, in the Claude app (NOT a Terminal install)
1. **Model.** Select Claude Opus 5.5 in the model picker.
2. **A private Project.** Open Projects and start a new project. A Project is a private workspace with its own files.
3. **Load the skill.** Open https://github.com/CFA-Institute-RPC/skills , go into skills/bias-detection, and download SKILL.md and references/bias-taxonomy.md. Upload both under Project knowledge. The repo has no install steps; these two files are the whole skill.
4. **Privacy.** Your memo goes only to your own Claude account, never to consultance.ai. Before confidential material, use a Team or Enterprise plan, or turn Model Improvement off in your Privacy Settings.
5. **Run.** Paste prompt 01 from the page, then prompt 12, and attach your memo.

## Path B: install and run the tools, in Claude Code
Claude Code is Anthropic's coding assistant that runs in your Terminal and can run commands and read files on your machine. Terminal is the Mac app for typing commands.
1. **Claude Code, if you do not have it.** In Terminal, run `curl -fsSL https://claude.ai/install.sh | bash` (Windows PowerShell: `irm https://claude.ai/install.ps1 | iex`). Open a new Terminal window and run `claude --version`. A working install prints a version number.
2. **Python check.** Run `python3 --version`. Most cards need 3.10 or higher; TradingAgents and Vibe-Trading need 3.11 or higher; FinRobot needs 3.10 or 3.11 exactly; for it, install 3.11 from the same page. A stock Mac shows 3.9, so install a current Python from https://www.python.org/downloads/ first.
3. **A project folder.** Make an empty folder, go into it in Terminal, and type `claude`. Type `/model` with no argument to open the model picker, and select Claude Opus 5.5.
4. **Run the map.** Paste prompt 01 from the page, answer its three questions, then prompt 02 and match the table line by line.
5. **Start with the no-key tools**, one card at a time, and let Claude Code run each install line from the card and show you the output:
   - Card 03, edgartools: a virtual environment (a private Python space for this folder) with `python3 -m venv .venv`, then `.venv/bin/python -m pip install edgartools`. Success is a line ending "Successfully installed". Three DeprecationWarning lines when it runs are normal.
   - Card 07, quant-research: `claude plugin marketplace add Jimmy7892/quant-research-skill`, then `claude plugin install quant-research@quant-research-skill`.
   - Card 09, skfolio: `.venv/bin/python -m pip install -U skfolio`
   - Card 13, empyrical: `.venv/bin/python -m pip install "empyrical-reloaded[yfinance]"` with the quotes, or zsh breaks the line.
   If you see "No matching distribution found", your Python is too old for that tool. Go back to step 2.
6. **Tools that need your own model key**, only when you reach them: OpenCandle (card 04: it is an interactive app, so run `npx opencandle`, then `/setup` and your question, in your own Terminal window, not through Claude Code, or use https://web.opencandle.app with no install; paste the answer back into Claude Code for the review gate), Vibe-Trading (card 10: install it in a venv as the card shows, then run `.venv/bin/vibe-trading init` in your own Terminal window, because it asks questions and Claude Code's shell cannot answer them; for Claude it needs `LANGCHAIN_PROVIDER=anthropic`, your `ANTHROPIC_API_KEY` and a Claude model name), TradingAgents (card 11: it needs `uv`; if Terminal says "command not found: uv", run `curl -LsSf https://astral.sh/uv/install.sh | sh` and open a new Terminal window; then put your key in the `.env` file the card shows, in a text editor, and set the provider line before the run command). A key is a secret; never paste it into a chat.

## First session drill
1. Run prompt 01 and route one job you have this week.
2. Run prompt 02 and match all six lines. R2, R3, R4 and R5 must STOP. If they do not, stop and tell me.
3. Run card 03 on a company you know well and check three figures against its 10-K yourself.
4. Good output names the tool's status (EXECUTED, NEEDS KEY or REFERENCE), quotes the line that proves a run passed, and ends with a named human sign off.

Do NOT tell me any step is "not possible" without naming the exact error you saw. Never describe what a tool "would" output; run it or say it did not run.
Step 2 · run it on your data

Step 1 set it up. These 14 prompts do the work.

the vault

The 14 prompts

Grab the whole pack as one file, or tap any prompt below to copy it on its own. Placeholders that look like {{THIS}} get swapped for your own numbers — and if you ran Step 1, Claude fills them in for you.

One .md file · all 14 prompts, numbered, in order · nothing left out.
Click to copy
<role>You are a research engineer who sets up open source finance tools for an allocator, a
family office, a CFO's team or a small research desk. You are neutral: you say what a tool
does, what it does not, whether it needs a key, and what a passing first run looks like. You
do not sell a tool and you do not dismiss one.</role>

<surface>
Route the human before any work. State this and wait:
- They want to understand a tool, or run the bias check on one memo they can paste: Claude
  app, a private Project. Chat is correct here, say so plainly.
- They want to install or run any tool on this map: Claude Code, on their own machine, in an
  empty project folder. It runs the commands and reads the output. Every card except the bias
  check needs this.
- Material that cannot be uploaded anywhere: Claude Code locally, or their own Team or
  Enterprise workspace.
Privacy: files go only to their own Claude account, never to consultance.ai. Before
confidential material, use a Team or Enterprise plan, or turn Model Improvement off in your
Privacy Settings.
Model: Claude Opus 5.5 for every prompt, selected in the model picker. Claude Sonnet 5 only
where a card says the tool itself calls a model many times and cost matters. Never switch model
mid prompt.

Escalate instead of degrading. STOP and re-route when:
- They ask you, in the Claude app, to install or run a tool: name Claude Code and the card, stop.
- An install or a first run prints an error: quote the error line, name the card's fix, and stop
  until it passes. Never describe what the tool "would" have output.
- A card needs a key they have not set: name the key, say where it is set, and stop. Never
  invent output to fill the gap.
- A figure is needed from a file they have not given: ask once, name the file, then stop.
Advise, do not apologise, do not continue anyway.
</surface>

<rules>
EVIDENCE TIERS. Every load bearing figure carries its tier and source:
- TIER 1: the primary source. A filing, the tool's own README or LICENSE, a published price file.
- TIER 2: a tool's output on the human's machine (an edgartools table, a skfolio result, a
  TradingAgents report). Stays TIER 2 until tied back to TIER 1.
- TIER 3: marketing, a post, a star count, a vendor claim. It raises a question, never a number.
STATUS of a tool on this map: EXECUTED (we ran install and first run on 2026-10-02 and it
passed), NEEDS KEY (installs, but the useful part needs the human's own model or data key),
REFERENCE (read only, nothing to run). Say which, every time.
MATERIALITY on every flag: CHANGES THE DECISION, WORTH A QUESTION, or EXPLAINED BY CONTEXT
(name the context). Only the first reaches the answer. A flag the context or the human explains
is closed and never resurfaces.
BAD INPUT: a command that errors, an empty table, a ticker the tool does not cover, two tools
that disagree on one figure. Record it, name it, mark the item OPEN. Never substitute a
remembered number.
</rules>

THE MAP (job, tool, status, prompt):
| Stage | Job | Tool | Status | Prompt |
|---|---|---|---|---|
| Read | Pull filed statements | edgartools | EXECUTED, no key | 03 |
| Read | Quote, filings, news with cited sources | OpenCandle | NEEDS KEY (model) | 04 |
| Read | Statement loader and research agents | FinRobot | data layer EXECUTED; reports NEED KEYS | 05 |
| Read | Call earnings direction from statements alone | earnings-direction-read pack | pack | 06 |
| Test | Split the backtest, deflate the Sharpe | quant-research-skill | EXECUTED, no key | 07 |
| Test | Replay the crisis windows | manager-backtest-stress-test pack | pack | 08 |
| Test | Build an allocation, judge it on unseen years | skfolio | EXECUTED, no key | 09 |
| Test | Backtest from a plain English request | Vibe-Trading | NEEDS KEY (model) | 10 |
| Argue | Bull, bear, trader, risk manager | TradingAgents, quant-desk pack | EXECUTED on a local model | 11 |
| Check | Behavioural bias in a memo | CFA Institute bias-detection skill | EXECUTED, needs only Claude | 12 |
| Check | Drawdown, alpha, beta | empyrical-reloaded | EXECUTED, no key | 13 |
| Gate | The gate that says no, with an evidence trail | quant-desk gate, TraceArena | EXECUTED, no key | 14 |
Cut after testing: stock-analysis (its README install fails, the package is not on PyPI as of
2026-10-02). Reference only: ATLAS (architecture and example prompts; its production prompts are
not published).

<task>
Onboarding, one question at a time:
1. MODE: A. Conversation (tell me the job; I route it and run only that card) B. One stage end
   to end (Read, Test, Argue, Check or Gate) C. The whole map in order.
2. WHO: A. allocator or family office B. CFO or finance team C. research or investment team.
3. MACHINE: A. Mac B. Windows C. Linux, and whether Claude Code is installed.
Capture {{YOUR_JOB}}, {{ROLE}}, {{MACHINE}}. Then answer with the card, the prompt number, the
status, any key needed, and the first command. Every later prompt works from the data source and
machine selected here.
</task>

HOW TO ADAPT THIS PACK: change {{YOUR_JOB}} to route a new job. To add a tool, copy one card's
block (link, status, does, does not, install verbatim from its README, first run, pass
condition, trap, stop) and add a row to THE MAP. Re run its install before you trust it. To
tighten a card, edit its <trap> and <stop>, not its <role>.

<review_gate>
Before you answer, re read the routing. If the job fits no card, say so and stop; do not force
it onto the nearest card. If the human treats a NEEDS KEY or REFERENCE tool as EXECUTED, block
the answer and say which it is. A named human, {{ROLE}}, decides what to act on.
</review_gate>
Click to copy
<role>Same research engineer as prompt 01. Neutral.</role>

<task>
Run the routing in prompt 01 on these six synthetic requests. Compare your table with the
expected output below, line by line. MATCH is judged on substance: same prompt, same status,
same first action. If one line does not match, say which and STOP. Do not route a real job until
every line matches.

SAMPLE REQUESTS
R1. "Get the last three years of Microsoft's income statement from its 10-K filings."
    Note: the tool asks for an email address before it runs.
R2. "Our manager says the strategy has a 1.4 Sharpe. They tried about 200 parameter sets."
R3. "Run the bull versus bear debate on SPY." The human is in the Claude app on the web.
R4. "Ask OpenCandle what NVDA trades at." No model key is set.
R5. "Check this IC memo for bias." No memo is attached.
R6. "Install stock-analysis for our A-share sleeve."
</task>

Expected output, columns Request | Prompt | Status | First action | Result:
| R1 | 03 | EXECUTED | venv, pip install edgartools, set_identity, pull the statement | READY |
| R2 | 07 | EXECUTED | ask once for the standard error, or the return series to compute it | STOP until it arrives, WORTH A QUESTION |
| R3 | 11 | EXECUTED on a local model | name Claude Code, stop | STOP, re-route |
| R4 | 04 | NEEDS KEY | name the model key or Pi sign-in, run /setup | STOP until a model is selected |
| R5 | 12 | EXECUTED | ask once for the memo by name | STOP |
| R6 | none | cut | say it was cut: its install fails, package not on PyPI | NO CARD |

Working behind each line:
- R1: the email request is EXPLAINED BY CONTEXT, the SEC asks for an identity on every
  request. Raising it as a flag is a mismatch.
- R2: a Sharpe found after 200 tries must be deflated for the tries. The standard error is not
  given, so card 07's stop fires: ask once and wait. That is a question, not a verdict on the
  manager. Running with a guessed standard error is a mismatch.
- R3: TradingAgents installs and runs code. The Claude app on the web cannot. Running a pretend
  debate in chat is a mismatch.
- R4: OpenCandle's doctor reports Model BLOCKED with no model selected. Answering the price from
  memory is a mismatch.
- R5: no memo, so the only action is to ask once and stop.
- R6: forcing it onto the nearest card is a mismatch. The cut is on the map.

<stop>If R2, R3, R4 or R5 is not STOP, if R1's email request is raised as a flag, or if R6
gets a card, the routing is wrong. Say which line and stop before any real job.</stop>
Click to copy
CARD. edgartools (Python library for SEC EDGAR). https://github.com/dgunning/edgartools (MIT)
Status: EXECUTED, no key. 5.59.1, installed and run 2026-10-02.
Does (TIER 1, its README): every SEC filing as a Python object, with standardized statements
from XBRL. The SEC asks for an email identity on every request.
Does not: private companies, or anything not filed with the SEC.
Install, verbatim from the README:
pip install edgartools
from edgar import *
set_identity("your.name@example.com")
Company("AAPL").get_financials().income_statement()
On a Mac, run pip inside a venv. In Terminal, inside the project folder:
python3 -m venv .venv
.venv/bin/python -m pip install edgartools
The three Python lines go in a file; ask Claude Code to write and run it with .venv/bin/python.
PASS: a table headed with the company name and "CONSOLIDATED STATEMENT OF INCOME", three fiscal
years of net sales. We saw Apple net sales $416,161m for the year to Sep 27, 2025.
Already wrapped in prompts: https://consultance.ai/library/earnings-direction-read

<role>Analyst who pulls filed numbers and ties them before use.</role>
<task>In Claude Code, pull the last three annual income statements for {{TICKER}} with
edgartools, save them to a CSV, and record each filing's accession number.</task>
<trap>Three DeprecationWarning lines print before the table on "from edgar import *". They are
warnings, not a failure. Do not stop the run on them.</trap>
<stop>If the statement comes back empty or errors, quote the error, mark the year OPEN and stop.
Do not fill it from memory or another site.</stop>
<output_format>CSV: year, line, value, form, accession number, note of any label change.</output_format>
<review_gate>Re read three figures from the filing itself. If one does not tie, block the file
and name the line.</review_gate>
Click to copy
CARD. OpenCandle (research agent, terminal and local browser).
https://github.com/Kahtaf/OpenCandle (MIT). Read only: it places no trades.
Status: NEEDS KEY (model). 0.15.0. Install and doctor run 2026-10-02; no answer run by us.
Does (TIER 1, its README): gathers market evidence from Yahoo Finance, SEC EDGAR, FRED and
others, discloses missing or stale data, then answers. Most data sources need no key.
Does not: answer anything until a model is selected. Model access is a GEMINI_API_KEY,
OPENAI_API_KEY or ANTHROPIC_API_KEY, or Pi sign-in.
Install, verbatim from the README (Node.js 22.19 or later on the 22 line, or 24 to 26):
npx opencandle
npx opencandle doctor
OpenCandle is an interactive app ("keyboard-driven research in the bundled Pi TUI", and "On
first run, OpenCandle walks you through model setup"). Claude Code's shell cannot answer it.
Run npx opencandle, /setup and your question in your own Terminal window, or use the web app
with no install at all: https://web.opencandle.app . Claude Code can run npx opencandle doctor
for you. Paste the answer and its sources back into Claude Code for the review gate.
PASS: doctor prints "Runtime - READY" and "Providers - READY". We saw "Model - BLOCKED" until a
model is chosen with /setup; that is the expected state on a fresh machine, not a fault.
Already wrapped in a setup guide: https://consultance.ai/library/opencandle-install-guide

<role>Research associate who answers only from evidence the tool returned.</role>
<task>The human runs /setup with their own key and asks, in their own Terminal or the web app:
"What is {{TICKER}} trading at, and what was its latest filing?" They paste the answer here.
Check it against every source the tool cited.</task>
<trap>Its default DCF assumptions can value a large company far below its price. A DCF it runs
without your inputs is a demo, not a valuation. Never quote it as one.</trap>
<stop>If doctor shows Model BLOCKED, stop and name the key or sign-in. Do not answer the price
from memory.</stop>
<output_format>Answer, then a source list: provider, URL, timestamp.</output_format>
<review_gate>Check the quote's timestamp against today. Stale data marked as live blocks the
answer.</review_gate>
Click to copy
CARD. FinRobot (AI agent platform for financial analysis).
https://github.com/AI4Finance-Foundation/FinRobot (Apache 2.0)
Status: data layer EXECUTED, no key (2026-09-27 install, re-run 2026-10-02). Needs Python 3.10
or 3.11 exactly: get a 3.11 installer from https://www.python.org/downloads/ . Agents and the
equity report NEED KEYS (FMP_API_KEY and an OpenAI config), a 401 without them.
Does (TIER 1, its README): an AutoGen agent framework (V0) and an equity research report
pipeline. Python 3.10 or 3.11 only. The install is large, about 1.1 GB with its dependencies.
Does not: produce the sample reports on free data. The free path stops at raw statements.
Install, verbatim from the README:
git clone https://github.com/AI4Finance-Foundation/FinRobot.git
cd FinRobot
pip install -e .          # or: pip install -U finrobot
Run pip inside a Python 3.11 venv in the FinRobot folder, not inside finrobot_autogen.
PASS: from finrobot.data_source import YFinanceUtils, then YFinanceUtils.get_income_stmt("AAPL")
prints a statement. We saw FY2025 net income 1.1201e11.
Already wrapped in prompts: https://consultance.ai/library/factset-equity-research-kill

<role>Analyst who loads statements and states what each source covers.</role>
<task>Load the income statement for {{TICKER}} with YFinanceUtils, and compare three lines
with the edgartools pull from prompt 03.</task>
<trap>Yahoo statements are a keyed copy (TIER 2), not the filing. Where they differ from the
10-K, the filing wins.</trap>
<stop>If pip says "No matching distribution found", the Python version is outside 3.10 to
3.11. Name it and stop.</stop>
<output_format>Three lines: Yahoo value, filing value, difference, which one stands.</output_format>
<review_gate>Any difference over 1 percent is named and resolved before use.</review_gate>
Click to copy
CARD. Blind earnings read. This job already has a full pack with its own calibration run:
https://consultance.ai/library/earnings-direction-read
Status: pack, built on edgartools (prompt 03).
Does: hides the company name and years, then asks for the direction of next year's earnings
from the statements alone, so the model cannot lean on what it remembers.
Does not: give a forecast to trade on. It is a reading test.

<role>Research head who routes this job to its pack.</role>
<task>Open the pack above and run its prompt 01, then its prompt 02 calibration, before your
own statements.</task>
<trap>Removing the company name is not enough. Line labels and dollar scale can still identify
the company. The pack's own prompts handle this; do not shortcut them.</trap>
<stop>If its calibration does not match, stop there, as that pack says.</stop>
<output_format>The pack's own output.</output_format>
<review_gate>The pack's own review gates apply.</review_gate>
Click to copy
CARD. quant-research (a Claude Code skill for honest backtesting).
https://github.com/Jimmy7892/quant-research-skill (MIT)
Status: EXECUTED, no key. Both install paths and all four self tests run 2026-10-02.
Does (TIER 1, its README): triggers on backtesting, parameter optimization, Sharpe ratios,
overfitting, walk-forward and Monte Carlo. Four scripts, each with a --selftest.
Does not: fetch prices for you. It judges a result you bring.
Install, verbatim from the README:
claude plugin marketplace add Jimmy7892/quant-research-skill
claude plugin install quant-research@quant-research-skill
Or copy it in by hand:
git clone https://github.com/Jimmy7892/quant-research-skill
cp -r quant-research-skill/skills/quant-research ~/.claude/skills/
The scripts need numpy (pandas only for CSVs). To run one yourself, in the project folder on a
Mac, after the git clone above:
python3 -m venv .venv
.venv/bin/python -m pip install numpy
.venv/bin/python quant-research-skill/skills/quant-research/scripts/selection_bias.py --selftest
With the plugin path, the scripts sit inside the installed plugin; ask Claude Code to run them.
PASS: the self test finishes with no error. On our own 248-try SPY sweep, a Sharpe of
0.950 (SE 0.295) deflated to +0.114, "survives at 5% NO".
Already wrapped in prompts: https://consultance.ai/library/manager-backtest-stress-test

<role>Model validator who counts the tries before trusting a Sharpe.</role>
<task>Run selection_bias.py with {{SHARPE}}, {{STANDARD_ERROR}} and {{TRIALS}} and report what
noise alone reaches and the deflated Sharpe.</task>
<trap>The trial count is every version tried, not the ones shown. A manager who shows one
backtest may have run hundreds. Ask.</trap>
<stop>If the trial count or the standard error is unknown, mark it OPEN, ask once, and stop.
Do not guess a count.</stop>
<output_format>Measured Sharpe, trials, noise level, deflated Sharpe, survives yes or no.</output_format>
<review_gate>Re run with the trial count doubled. If the verdict flips, say the result is fragile.</review_gate>
Click to copy
CARD. Crisis replay. This job already has a full pack:
https://consultance.ai/library/manager-backtest-stress-test (prompt 07 there)
Status: pack, built on quant-research-skill, skfolio and empyrical-reloaded.
Does: replays the three windows on the returns you were given and checks whether the
defensive leg defended.
Does not: fill a missing crisis year from an index or a proxy.

<role>Research head who routes this job to its pack.</role>
<task>Open the pack and run its prompts 01 and 02 first, then its prompt 07.</task>
<trap>A record that starts after 2008 has no 2008. A deck sentence about 2008 is TIER 3.</trap>
<stop>If the record does not cover a window, that window is OPEN. Stop on it, as the pack says.</stop>
<output_format>The pack's own output.</output_format>
<review_gate>The pack's own review gates apply.</review_gate>
Click to copy
CARD. skfolio (portfolio optimization on scikit-learn). https://github.com/skfolio/skfolio
(BSD 3-Clause)
Status: EXECUTED, no key. 1.4.10, installed and run 2026-10-02. Python 3.10 or later.
Does (TIER 1, its README): mean-risk, risk parity, hierarchical and other allocations, fitted
and scored like any scikit-learn model.
Does not: pick your universe or your data. The sample dataset is for the first run only.
Install, verbatim from the README:
pip install -U skfolio
First run, the README quick start:
prices = load_sp500_dataset()
X = prices_to_returns(prices)
X_train, X_test = train_test_split(X, test_size=0.33, shuffle=False)
model = MeanRisk()
model.fit(X_train)
portfolio = model.predict(X_test)
print(portfolio.annualized_sharpe_ratio)
PASS: two Sharpe figures, train and test. We saw 0.933 on the training years and 0.915 on the
test years.
Already wrapped in prompts: https://consultance.ai/library/finance-ai-complete-guide

<role>Quant researcher who only trusts the test period.</role>
<task>Fit the allocation on {{TRAIN_PERIOD}} of the human's returns and report it on
{{TEST_PERIOD}}, with the weights.</task>
<trap>shuffle=False is the line that matters. A shuffled split puts future days in training and
the test Sharpe stops meaning anything.</trap>
<stop>If the returns file has gaps or mixed frequencies, list them and stop before fitting.</stop>
<output_format>Weights, train Sharpe, test Sharpe, the gap between them.</output_format>
<review_gate>A test Sharpe far above the train Sharpe is a question about the data, not good
news. Name it.</review_gate>
Click to copy
CARD. Vibe-Trading (multi-agent research and backtest workspace).
https://github.com/HKUDS/Vibe-Trading (MIT)
Status: NEEDS KEY (model). 0.1.16 installed 2026-10-02 and its preflight passed 6 of 7
services. Our run on a small local model timed out twice; we did not run it with a real key.
Does (TIER 1, its README): turns a plain request into a strategy, a backtest and a report,
with a CLI and a web UI. Python 3.11 or later.
Does not: work well without a capable model. Its brokers and crypto features are out of scope
for this map; use it read only and on paper.
Install, verbatim from the README:
pip install vibe-trading-ai
vibe-trading init
It needs Python 3.11 or later, and a Mac's Python refuses a bare pip install. The form we ran,
in the project folder (check python3 --version shows 3.11 or higher first):
python3 -m venv .venv
.venv/bin/python -m pip install vibe-trading-ai
.venv/bin/vibe-trading init
vibe-trading init is its interactive .env setup, so run it in your own Terminal window, not
through Claude Code. For Claude, the README's agent/.env.example
names these settings (we did not run this step with a key):
LANGCHAIN_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-xxx
ANTHROPIC_BASE_URL=https://api.anthropic.com
plus LANGCHAIN_MODEL_NAME set to the Claude model you use, for example claude-opus-5-5.
PASS: the preflight table ends "6/7 services ready" or better, then a run returns a return and
a drawdown figure for the request.
Already wrapped in prompts: https://consultance.ai/library/vibe-trading-personal-desk

<role>Quant researcher who checks a generated backtest before reading its result.</role>
<task>Run: .venv/bin/vibe-trading run -p "Backtest a {{TICKER}} 20/50 day moving-average crossover for
{{YEAR}} and summarize return and max drawdown". Then open the code it wrote and read it.</task>
<trap>A generated strategy can compute its signal on the same bar it trades. Check that the
signal is shifted one bar before you read the return.</trap>
<stop>If the run times out or errors, quote the line and stop. Do not report a return from a
run that did not finish.</stop>
<output_format>Return, max drawdown, trade count, and one line on the signal timing.</output_format>
<review_gate>Recompute the drawdown from the equity curve it saved, with empyrical (prompt 13).</review_gate>
Click to copy
CARD. TradingAgents (multi-agent trading research framework).
https://github.com/TauricResearch/TradingAgents (Apache 2.0)
Status: EXECUTED on a local model. v0.5.2, installed and run 2026-10-02.
Does (TIER 1, its README): analyst, researcher, trader and risk agents debate a ticker on a
date and save a report. Supports Anthropic, OpenAI, Google, local Ollama and others.
Python 3.11 or later.
Does not: place orders. Its output is research, not a signal to trade.
uv is a Python installer this card uses. If Terminal says "command not found: uv", install it
first, verbatim from the uv docs, then open a new Terminal window:
curl -LsSf https://astral.sh/uv/install.sh | sh
Install, verbatim from the README:
git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
uv venv --python 3.13
source .venv/bin/activate
uv pip install .
(A uv venv has no pip of its own, so use uv pip install . as the README says for uv.)
Run from Claude Code without questions. Set every line below, in this order, before the run
command, because, in the README's words, "a missing answer stops the run before it starts".
The README's provider line uses OpenAI names; for Claude, the provider and model IDs come from
its own code (tradingagents/llm_clients/model_catalog.py):
Put your key in a .env file yourself, in a text editor, never in a chat. Verbatim from the
README: cp .env.example .env , then fill in ANTHROPIC_API_KEY in that file. The README's own
line for a Terminal session is export ANTHROPIC_API_KEY=... if you prefer it there.
export TRADINGAGENTS_LLM_PROVIDER=anthropic TRADINGAGENTS_QUICK_THINK_LLM=claude-sonnet-5 TRADINGAGENTS_DEEP_THINK_LLM=claude-opus-5-5
Claude Code starts each command in a fresh shell, so an export does not carry to the next
command. Put these settings in the same .env file, or run the export lines, activate and the
run command together as one command.
Then, verbatim from the README:
export TRADINGAGENTS_OUTPUT_LANGUAGE=English TRADINGAGENTS_MAX_DEBATE_ROUNDS=1 TRADINGAGENTS_MAX_RISK_ROUNDS=1
tradingagents --ticker NVDA --date 2026-09-23 --analysts market,news,fundamentals --save --no-show
PASS: "Analysis Complete!" and "Report saved to" a complete_report.md. We ran SPY on a 7B local
model: the run passed in about 2 minutes and wrote 4,472 words, generic in quality.
The same roles as prompts, with a gate: https://consultance.ai/library/quant-desk
Reference only: ATLAS, https://github.com/chrisworsey55/atlas-gic (MIT for the architecture and
example prompts; its production prompts are not published, and nothing in it installs).

<role>Investment committee chair who reads the debate, not the verdict.</role>
<task>Run one ticker on one past date, then list the strongest bull point and the strongest
bear point, each with the data it cited.</task>
<trap>The report saves to ~/.tradingagents/logs/reports by default. Read that file, not the
screen. A small model writes fluent, generic text; quality depends on the model you select.</trap>
<stop>If a cited figure has no source in the report, mark it OPEN. Do not carry it into the memo.</stop>
<output_format>Bull point and source, bear point and source, the agents' final rating, your read.</output_format>
<review_gate>Tie two cited figures to TIER 1 data (prompt 03). A figure that does not tie closes
the report.</review_gate>
Click to copy
CARD. bias-detection skill from CFA Institute Research and Policy Center.
https://github.com/CFA-Institute-RPC/skills (Apache 2.0)
Status: EXECUTED, needs only Claude. Run 2026-10-02 on a sample memo.
Does (TIER 1, the repo): one skill, SKILL.md plus references/bias-taxonomy.md, that reviews a
document for behavioural bias.
Does not: judge the investment. It checks the reasoning in the text.
Install: the README carries no install steps; the repo is the folder skills/bias-detection.
In Claude Code, put that folder in your project's .claude/skills folder. In the Claude app, add
both files to Project knowledge.
PASS: the review names each bias, quotes the exact line, and gives a fix. On our sample it led
with anchoring and loss aversion and quoted "it will clearly return to $80".
Already wrapped in prompts: https://consultance.ai/library/finance-ai-complete-guide

<role>Model validator who reads reasoning, not conclusions.</role>
<task>Use the bias-detection skill on {{MEMO}}. For each bias: the quoted line, why it matters
here, and a fix.</task>
<trap>A memo that cites its own purchase price as fair value reads as conviction. It is
anchoring. The skill catches it; do not soften it.</trap>
<stop>If no memo is attached, ask once by name and stop.</stop>
<output_format>Table: bias, quoted line, why it matters, fix. Then one line: send or not yet.</output_format>
<review_gate>Every flag must quote a real line from the memo. A flag with no quote is removed.</review_gate>
Click to copy
CARD. empyrical-reloaded (risk and performance metrics).
https://github.com/stefan-jansen/empyrical-reloaded (Apache 2.0)
Status: EXECUTED, no key. 0.5.12, installed and run 2026-10-02.
Does (TIER 1, its README): Sharpe, Sortino, max drawdown, alpha, beta, VaR and rolling
versions, from a returns series.
Does not: fetch returns unless you add the yfinance extra.
Install, verbatim from the README:
pip install empyrical-reloaded
On a Mac, quote the extra, or zsh breaks the line:
pip install "empyrical-reloaded[yfinance]"
First run, the README sample:
returns = np.array([.01, .02, .03, -.4, -.06, -.02])
benchmark_returns = np.array([.02, .02, .03, -.35, -.05, -.01])
max_drawdown(returns)
alpha, beta = alpha_beta(returns, benchmark_returns)
PASS: max_drawdown about -0.447 and beta about 1.12 on that sample.
Already wrapped in prompts: https://consultance.ai/library/manager-backtest-stress-test

<role>Model validator who recomputes the risk line before it goes in a deck.</role>
<task>Compute max drawdown, beta and alpha for {{RETURNS}} against {{BENCHMARK}}, and compare
with the figures the deck shows.</task>
<trap>Monthly and daily returns give different drawdowns. Use the same frequency as the figure
you are checking.</trap>
<stop>If the returns and the benchmark cover different dates, list the gap and stop.</stop>
<output_format>Deck figure, recomputed figure, difference, frequency used.</output_format>
<review_gate>A drawdown that differs from the deck by more than 1 point blocks the deck line.</review_gate>
Click to copy
CARD A. The backtest gate in quant-desk: https://consultance.ai/library/quant-desk (prompt 09)
Status: pack. A rule the AI cannot override: no strategy moves on unless it clears stated tests.
CARD B. TraceArena (auditable multi-agent investment evaluation).
https://github.com/tonyhyworld/TraceArena (Apache 2.0)
Status: EXECUTED, no key. Main branch, run 2026-10-02. Young project, one maintainer.
Does (TIER 1, its README): records every agent action with its evidence and settles against a
simulated ledger. It never connects to a brokerage.
Does not: use real data in the no-key replay. The fixture is synthetic.
Get the code. The README has no clone line; this is the repository's own address:
git clone https://github.com/tonyhyworld/TraceArena.git
cd TraceArena
Install, verbatim from the README (manual path). On a Mac, type python3 for the first line
only; after activate, python works:
python -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev]"
PYTHONPATH=backend python backend/scripts/market_replay.py \
  --fixture examples/market_replay/fixture.json \
  --output ./runs/market_replay_demo
PASS: "brokerage: disabled", "network: disabled" and "verification: passed" with a digest. We
saw 6 ticks and verification passed.

<role>Risk committee member who signs only what can be replayed.</role>
<task>Run the replay twice. Confirm the digest matches both times, then read summary.md and
list each action with its evidence.</task>
<trap>A replay that passes on synthetic data proves the trail works, not that any strategy
works. Keep the two apart in the write up.</trap>
<stop>If the two digests differ, the run is not deterministic. Stop and report both.</stop>
<output_format>Digest run 1, digest run 2, match yes or no, actions with evidence.</output_format>
<review_gate>Nothing passes the gate without a trail a second person can replay.</review_gate>

Got the prompts. Want them wired into your actual stack? We map that on a free AI audit.

Book the free audit

Rent it forever, or own it once.

For allocators, CFOs and research teams: ten open source finance AI tools mapped to five research jobs, each with a tested install, a first run, and which ones need no key.

Path A · free

You just did it

The setup rail and every prompt above are free and stay free. The cost is your time, and the risk of wiring it wrong on live data.

Back to the prompts ↑
Path B · done with you

We wire it into your business

We would pick the tools that fit your desk, install them on a managed machine, wire filings and returns in on a schedule, and turn the review gates into checks your team signs. Done with you, then handed over so you own it.

Book a build call →
data safety

Before you use live numbers

  • • Run last quarter's numbers first. Live data is not a test bed.
  • • Nothing here uploads to us. It runs in your own Claude account, on your own machine.
  • • A named human reviews and signs every output before it reaches a board, lender, or client.
  • • Mask account numbers and names to the minimum the task needs.
the fine print

Straight answers on ownership

Map authored by consultance.ai. Every tool belongs to its authors and carries its own licence (MIT, Apache 2.0, BSD 3-Clause); read each before building on it. No affiliation implied. Tested on 2026-10-02; open projects change weekly, so run each install yourself. Nothing here places an order. Your files stay in your own Claude account and on your own machine; we never see them. Not investment advice; a named human signs off anything acted on.

Want this running in your business, not just your laptop? We build it and hand you the keys.

Book a build callBack to the library

Want this wired into your stack instead of running it yourself? That is our AI deal desk and finance automation service.

the newsletter

AI news worth opening.

The AI tools, launches, and shifts that actually matter, in plain English. New library drops the moment they land.

100% freeNo paywall, everUnsubscribe anytime

More like this

Other builds worth a weekend

All repos →
Finance and data

Free Portfolio Quant Research Desk

For family offices and serious individual investors: backtest an idea on your own portfolio history with free market data, a scheduled tax loss harvest, and a deflated Sharpe model risk gate, in your own Claude.

Setup guide →
Finance and data

Private Equity Deal Sourcing Playbook

For lower and mid market private equity origination teams: turn one mandate into a ranked, owner verified proprietary deal flow pipeline. Six Claude agents with Exa and Scrapling replace a rented deal sourcing subscription.

Setup guide →
Finance and data

Free Jira Alternative for Deal Teams

For PE deal teams and IC members still tracking a live process on a sprint board: a self hosted deal tracker your Claude can write to, plus 10 prompts that move a workstream only when the document actually lands.

Setup guide →
Get the free kitBook a call

Forward this to whoever owns the workflow.

The person drowning in this every week is the one who'll actually want it.

Forward by email
in one line

What is Free Open Source Finance AI Tools?

Free Open Source Finance AI Tools is a finance and data build in the consultance.ai AI Build Library. For allocators, CFOs and research teams: ten open source finance AI tools mapped to five research jobs, each with a tested install, a first run, and which ones need no key. It fits allocators, family office principals and their analysts, CFOs and finance teams, and small research desks who want to run open source finance tools on their own machine and know which ones work today. Setup difficulty is Medium, with 4 plain-English steps.

What does Free Open Source Finance AI Tools do?

For allocators, CFOs and research teams: ten open source finance AI tools mapped to five research jobs, each with a tested install, a first run, and which ones need no key.

Who is Free Open Source Finance AI Tools for?

It fits allocators, family office principals and their analysts, CFOs and finance teams, and small research desks who want to run open source finance tools on their own machine and know which ones work today.

How hard is Free Open Source Finance AI Tools to set up?

Medium to set up — one guided setup instruction covering 4 plain-English steps, plus 14 ready-to-run prompts on the resource page.

How would consultance.ai build this out?

We would pick the tools that fit your desk, install them on a managed machine, wire filings and returns in on a schedule, and turn the review gates into checks your team signs. Done with you, then handed over so you own it.

What are the licensing terms?

Map authored by consultance.ai. Every tool belongs to its authors and carries its own licence (MIT, Apache 2.0, BSD 3-Clause); read each before building on it. No affiliation implied. Tested on 2026-10-02; open projects change weekly, so run each install yourself. Nothing here places an order. Your files stay in your own Claude account and on your own machine; we never see them. Not investment advice; a named human signs off anything acted on.

Want this built into your workflow?

Free Open Source Finance AI Tools is the starting point. On a free AI audit we map where it fits your stack and what consultance.ai would build around it.

This build comes from our AI consulting and AI implementation practice — see the full AI in finance guide and how we work with CFO teams.

Book your free AI audit