Open source · self-host or Cloud · v0.9

Every account.
One calm dashboard.

Serin is the open-source portfolio tracker — run it yourself, or sign in and Serin Cloud runs it for you. Read-only broker sync, AI morning briefings, screenshot imports, and real returns math. Your data stays yours: on your hardware, or one click from leaving ours.

$ docker compose up ★ Star on GitHub See pricing →
Docker is the only prerequisite — copy grabs the full quickstart, clone included · 2-minute guide →
Everything in one place

A tracker that respects your weekends

Wire up your accounts once. Serin keeps score, flags what changed, and briefs you every morning — without selling, sharing, or even seeing your data.

A connector platform, not a walled garden

Market data, brokerages, and insights are all plugins. Toggle them in the portal — or write your own in ~40 lines of Python and open a PR.

Yahoo Finance free default
SnapTrade — 20+ brokers read-only, can never trade
CoinGecko crypto routes here, stocks don't

AI briefings with a cost guard

Operator, Analyst, or Executive style — every morning, in plain language. You see the expected price before every run.

~$0.02/run

Smart Import

Drop any broker CSV or a screenshot — AI extracts the rows, you review every cell before anything is saved.

Drop statement.png3 positions found → review → import

Returns you can defend

Time-weighted and money-weighted returns computed from your actual transaction log — not vibes.

REAL RETURNS TWR +21.0% MWR +20.6%

Multi-currency

Hold in dollars, euros, yen — totals convert to your display currency; native prices stay labeled.

USDEURGBPJPYCHF

Private by design

Self-hosted, one file of data, zero telemetry. Security is a feature, not a settings page.

  • Secrets AES-256-GCM encrypted at rest
  • Optional passphrase app lock + bearer tokens
  • Read-only broker access — no trade path exists
Up and running in minutes

Three steps to a calmer portfolio

1

Run it

Docker is the only prerequisite. Clone the repo, bring it up, open localhost:8890 — one container serves everything. Full guide →

$ git clone https://github.com/aviary-ai-labs/serin
$ cd serin && docker compose up
2

Fill it

Connect brokers read-only via SnapTrade, drop a CSV, or snap a screenshot with Smart Import.

statement.png → 12 positions ✓
3

Take it with you

Build the open-source app onto your phone, scan the pairing QR, and it mirrors everything — Face ID lock included. Mobile →

▣ paired · briefing push on
iOS & Android

Your portfolio,
in your pocket

The native app is a client for your server — pair it with one QR scan. No accounts, no middleman, and it works offline with the last synced snapshot.

  • Snap a statement → Smart Import from your camera
  • Face ID / biometric app lock
  • Push when your morning briefing is ready
  • Charts, add/edit, connector status — full parity
AGPLv3 · community-built

The best connector
is the one you write

Serin's health metric isn't revenue — it's connectors. Copy the template, implement three methods, open a PR. The portal UI, config forms, encryption, and docs button come free.

Write a connector Read the SDK docs
# backend/connectors/market_data/myprovider.py
@register
class MyProvider(MarketDataConnector):
  manifest = ConnectorManifest(
    id="myprovider", kind="market_data",
    config_schema=[ConfigField(key="api_key", secret=True)],
  )

  def refresh_prices(self, positions): ...
  def fetch_history(self, period, symbols, by_symbol): ...
  def quote(self, symbol, asset_type): ...

# that's the whole plugin — the portal UI is generated
Pricing

Simple, honest pricing

The open-source core is a complete product. Paid plans add managed services and institutional-grade analysis on top — never by taking something away.

The one-way-door pledge: everything in the open-source repo stays AGPL and free, forever. Features never move from free to paid. If a subscription lapses, Serin degrades gracefully to open-source behavior — your data is never held hostage.

Self-host

The complete tracker, on your hardware
$0 forever
AGPLv3 · unlimited everything
  • All connectors + SDKAll connectors, plus the full SDK & plugin loader.
  • Read-only broker syncWith your own SnapTrade keys.
  • AI briefings & Smart ImportWith your own API keys.
  • Real TWR / MWRReal TWR / MWR, multi-currency, tax lots.
  • Mobile appBuild & pair it yourself.
  • Backups & app lockBackups, app lock, secrets encrypted at rest.
Start self-hosting — free
Available now — and always will be ·
WORKS ON SELF-HOST

Intelligence

The closed-source insight pack
$6/mo
or $60/yr · cancel anytime
  • Everything in Self-host
  • Managed AIBriefings & Smart Import with zero API-key setup.
  • X-ray reportsConcentration, factor & fee drag.
  • Tax intelligenceLoss-harvest candidates, wash-sale windows.
  • Benchmarks + Monte CarloBenchmarks vs. SPY/ACWI + Monte Carlo projections.
  • AlertingPrice/dividend/risk rules → push & email.
Key arrives by email · cancel anytime

Cloud

We run it — Intelligence included
$8/mo
or $80/yr · nothing to run, sign in anywhere
  • Everything in Intelligence
  • Hosted & upgraded for youHosted & upgraded for you — TLS, uptime.
  • Bundled market dataNo FMP key.
  • Your account, on any deviceNo server to keep running.
  • Full export anytimeLeave with your data in one click.
No card to start · then $8/mo · your data exports even if you don’t stay
Will features ever move from free to paid?

No. That's the one-way door: anything shipped in the open-source repo stays there under AGPLv3. Paid tiers only ever add new things.

What happens if I stop paying?

Serin keeps working as the open-source core. No lockouts, no kill switches, no data hostage-taking — an expired license simply means the pro features step aside. Cloud customers can export everything at any time, including after cancellation. Cancelling takes two clicks at serin.money/cancel.

Who can see my data on Cloud?

Cloud customers share one managed database rather than each getting a private machine. Every row carries an owner, every query filters on it, and Postgres row-level security enforces the same rule underneath — a query that forgot to filter returns nothing rather than someone else's holdings. That is strong separation inside shared infrastructure, not physical isolation, and we would rather say so than imply otherwise. If you want your data on hardware nobody else touches, self-host — that stays free forever.

Can I get a refund?

No — all sales are final, for first charges and renewals alike. You can cancel anytime: you keep what you've paid for until the period ends, and you aren't charged again. Full detail in the terms.

Do self-hosters need a license?

Never. Self-hosting the core is free forever, for any use, under AGPLv3. The Intelligence pack is an optional add-on that also works on self-hosted instances.

Is my data used to train anything?

No. Serin sends nothing anywhere unless you configure it to. Briefings go to an AI provider — DeepSeek by default, Anthropic if you set an Anthropic key instead — with your key, when you run one or on the schedule you set. It names the provider before every run, and the privacy policy spells out what leaves your machine.

Own your numbers.

The core is free forever. Your data is yours forever. Five minutes to first dashboard.

$ git clone https://github.com/aviary-ai-labs/serin Open the app → See pricing →