Profile

There are only five fields, and every one is optional. Filling them out takes about a minute and turns generic analysis into something grounded, like "you're 12 years from FIRE, your current pace gets you 75% there, and here's the gap."

firma already knows your portfolio, balance sheet, and cash flow. What it cannot infer is what you actually want. That part has to come from you. Without a profile, Claude can only give generic answers like "your portfolio is up 60%." With one, it can frame every number against your real situation.
All five fields are optional. We deliberately avoid asking for things we can already derive. External assets and liabilities come from your balance sheet, monthly expenses come from cash flow, and income gives us a rough tax picture.
birth_yearThe year you were born. It gives Claude a real time horizon, which matters a lot for risk.
retirement_target_yearWhen you want to stop depending on a paycheck. It shapes every projection.
target_net_worth_usdYour personal "enough" number. Gap analysis depends on it.
risk_toleranceconservative · moderate · aggressive. This helps Claude call out when your actions don't match your stated risk appetite.
notesAnything else Claude should remember: preferences like "ESG only," constraints like "can't sell RSUs until vested," or tax context.
There are two ways to set it up. Use whichever feels more natural.

Option 1 · Through Claude

In Claude Desktop, type /setup-profile. Claude asks conversationally and skips anything you don't want to share.
Claude Desktop · firma MCP connected

You

/setup-profile

Claude

Let's set up your goals. What year were you born? (skip if you'd rather not say)

You

1988. I want to retire by 50 with around $1M. Pretty aggressive risk-wise. I hold a lot of TSLA from RSU vesting.

Claude

Got it. Saving birth_year 1988, retirement_target_year 2038, target_net_worth_usd $1M, risk_tolerance aggressive, and notes "TSLA concentration from RSU vesting". From now on, every analysis will frame numbers against your 12-year runway and $1M target instead of generic benchmarks.

Option 2 · Through the CLI

$firma profile
Press Enter to keep the current value. Optional fields can be left blank.
◆ Birth year1988
◆ Retirement target year2038
◆ Target net worth (USD)1000000
◆ Risk toleranceaggressive
◆ NotesTSLA concentration from RSU vesting
Anchored numbers
"$441K net worth" becomes "$441K = 44% of $1M target, 12 years to go, current pace gets you 75% there."
Behavioral contradiction flags
If your risk_tolerance is "moderate" but TSLA is 80% of your portfolio, Claude points out the mismatch instead of congratulating you on the gain.
Time-aware projections
Claude reasons about your actual horizon. A 22-year-old with a 40-year horizon gets different advice than a 55-year-old approaching retirement.
Constraints respected
Notes like "ESG only" or "no leveraged products" are honored across every recommendation. Claude will not suggest things you've already ruled out.
MIT License