Self-hosted · Source available

Your Scalable portfolio.
Live on your own server.

Scalable Live polls the official Scalable CLI during market hours, records your daily result and portfolio value, builds monthly and yearly Excel charts — and sends you the current curve any time via Telegram. No broker password in the tool, no cloud, no orders.

no broker password in the tool data stays local official Scalable CLI Linux · Pi · NAS · VPS
SL
Scalable Live Bot
online
/value
Portfolio value · Today
09:0012:0015:3017:30
248.162 €  (+362 €) · 412
/status
Collector: OK · Session: OK
Last value: +9.278,75 · 128 days
/today/value/month/year/login
~30 s
poll interval
Mon–Fri
market hours only
16
Telegram commands
0 €
running cost
What it does

Record, visualise, notify.

One lean background service collects the values, a second one drives Telegram. Both read the same config — all of it changeable live, without SSH.

01

Collect

  • Polls sc broker overview at a chosen interval
  • Mon–Fri during market hours only, holidays skipped
  • A separate log for daily result and portfolio value
  • Real closing value captured at market close
02

Analyse

  • Monthly and yearly Excel files with charts
  • Metrics: best/worst day, average, median
  • Green/red days, cumulative result
  • One sheet per trading day, plus a terminal chart
03

Notify & control

  • A chart image with every query
  • Day, range, month, year, cumulative
  • Automatic daily summary via job
  • Session login straight from the chat
Which values

Two views, cleanly separated.

From a single overview call, Scalable Live pulls two different numbers — the daily result (starts near 0 each day) and the absolute portfolio value (the wealth curve).

1

Daily result

performance[].simpleAbsoluteReturn
  · timeframe = INTRADAY

The intraday return in euros. A day's closing value is effectively the result for that day.

2

Portfolio value

valuation.total
  · 248.161,70 €

The absolute portfolio value, logged in parallel. securities or crypto can be chosen instead.

3

Daily close

FINAL_POLL

On the switch to “market closed”, the collector fetches the real closing value once — not the last tick before it.

Deliberately not logged

The rolling timeframes (MAX, ONE_YEAR, SIX_MONTHS …) are not written as an intraday series — within a day they would be nearly constant and redundant to the value/return curve.

How it works

From broker to phone.

A straight pipeline, no cloud detour. Only the collector talks to the CLI; viewer and bot read the logs.

01

Scalable CLI

sc broker overview --json returns your broker's performance & portfolio value.

02

Collector

Polls during market hours, writes a daily log for return and portfolio value.

03

Charts & Excel

On day rollover the monthly and yearly files are rebuilt with charts.

04

Telegram

On demand by command or automatic daily summary — chart included.

Prerequisite

How to get sc .

Scalable Live uses the official command-line tool by Scalable Capital (ScalableCapital/scalable-cli). It is in beta and requires a one-time allowlisting of your account. Login stays deliberately manual — nobody but you gets access to your portfolio.

Source

All info & releases: github.com/ScalableCapital/scalable-cli

1

Install (Linux, headless)

Download the tar.gz for your architecture (x86_64 or aarch64) from the release, extract it and put sc on your PATH.

tar -xzf scalable-cli-*-linux.tar.gz
sudo install -m 755 sc /usr/local/bin/sc
sc --version
Verify integrity

Releases include checksums and a minisign signature — verify before installing.

2

Get your account allowlisted

Generate an installation code (works without login) and request access by email from your Scalable address.

sc installation-code

# Mail to: cli.beta@scalable.capital
# Subject: Scalable CLI Allowlisting
# Body:    the installation code
3

Log in & verify

Login via OAuth device code: sc shows a URL and code, you confirm in the browser. The broker connection is then live.

sc login        # confirm URL + code in the browser
sc whoami
sc broker overview --json
4

Session as a file (for services)

On a headless server the keyring is usually locked. Switch the session to file storage so the systemd service can see it.

# ~/.config/scalable-cli/config.toml
[auth]
session_backend = "file"
Hardening (optional)

For more isolation, sc can run as a dedicated Unix user with a narrowly scoped sudoers rule — see the official README.

Installation

Set up in a few minutes.

You need Python 3.10+, the configured Scalable CLI (above) and a Telegram account. The steps target a Linux/headless server.

1

Extract the project & install dependencies

A virtual environment keeps the packages cleanly isolated from the system Python.

tar -xzf scalable-live-1.0.0.tar.gz
cd scalable-live-1.0.0
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
2

Create a Telegram bot & find the chat ID

In Telegram open @BotFather, send /newbot, note the token. Then run the helper and message your bot “hi” — it prints chat and user ID.

python find_chat_id.py
3

Configure via wizard

setup_wizard.py asks for every value, validates it and writes config.json — or create it by hand.

python setup_wizard.py     # asks everything -> config.json
# or by hand:
nano config.json           # TELEGRAM_TOKEN, TELEGRAM_CHAT_ID, SC_BIN
4

As systemd services (24/7 headless)

Collector and bot as services — auto-start on boot, auto-restart on crash.

sudo cp *.py /opt/scalable-live/
sudo cp scalable-live.service scalable-telegram.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now scalable-live.service scalable-telegram.service
Important: same user

Both services must run as the same Unix user as your sc login — only then do they share the Scalable session.

5

Get going

In the bot run /login (confirm the device code), then /status and /today. From then on the collector gathers data during market hours on its own. If the session expires after ~7 days, the bot tells you to run /login.

Control

Everything by command — or keyboard.

Only allowlisted chats are served. Every query returns the matching chart as an image.

/todaytoday's intraday chart (live)
/valueportfolio-value curve (today or a date)
/day YYYY-MM-DDa specific day
/days [n]the last n days
/month · /yearwith paging & cumulative toggle
/cumulativecumulative result across all days
/range A Bany chosen range
/statuscollector, session, last value, jobs
/login · /whoami · /logoutmanage the Scalable session
/config [KEY=value]change settings live
Honest upfront

Is this for you?

A fit if …

  • you have a Scalable broker account and want to document your daily performance
  • you have a small Linux server, Pi or NAS that can run continuously
  • you want to keep your data local and not feed a third-party service
  • Telegram as the interface is enough and you want to be able to adapt the code

Not a fit if …

  • you want a bot that places orders automatically — Scalable Live does not trade
  • you don't want to set anything up technically or occasionally log in again
  • you can't or won't get allowlisted for the Scalable CLI beta
  • you expect investment advice or guaranteed returns (none here)
Scope

Everything included. No extra cost.

  • Live config — all settings in config.json, editable via /config and active without restart.
  • Session handling — detects the 7-day logout, warns specifically and throttles polling until the next /login.
  • Excel export — monthly and yearly files with curves, a metrics box and per-day sheets.
  • Terminal live chart — intraday right in the terminal, read-only.
  • Error alerts — reports failed polls via Telegram, including the all-clear.
  • Auto-push & daily summary — optional periodic chart and a summary at market close.
  • systemd services — single-instance lock, rotating logs, clean stop behaviour.
  • Holidays — exchange holidays are skipped automatically.
Security & privacy

Your numbers. Your machine.

No broker password in the tool

Authentication is handled by the official sc CLI in its own secure session store. Scalable Live stores no credentials.

No orders

Only read commands are called. Trading is done solely by you in the Scalable app.

Allowlisted chats only

Only the chat/user IDs set in the config are served. Everyone else just sees their own ID.

Local & verifiable

Logs, charts and Excel files live in your data folder. The entire Python code is open in front of you — no telemetry.

FAQ

Frequently asked.

Yes. Scalable Live reads its values exclusively through the official sc CLI. You need a one-time beta allowlisting for it (see “How to get sc”). Without an active sc session, no data arrives.

No. It only calls read commands (broker overview, whoami). It records your performance — you trade yourself in the Scalable app.

The sc session expires after about 7 days — that's how the CLI is built. Scalable Live detects it, sends a clear “please /login” message and keeps polling at a throttled pace until you log in again. One /login in the bot is enough.

Yes, that's exactly what it's for. Two things matter: session_backend = "file" in the CLI's config.toml (otherwise the service can't see the session), and both services running as the same Unix user as the sc login.

Very little. A Raspberry Pi, a small NAS or a VPS from ~€3/month is plenty. The collector uses almost nothing when idle; load only rises briefly while building Excel files.

Nothing — no subscription, no API fees. Telegram and the Scalable CLI are free. On your own Pi just electricity, on a VPS its rent.
Download

Download Scalable Live.

Complete Python project: collector, Telegram bot, Excel export, terminal viewer, systemd services and commented configuration.

scalable-live-1.0.0Python project · collector · bot · tests · docs
Stable
Verify integrity: SHA-256 checksum
In the packageCollector, bot, export, viewer, services, README.
PrerequisitePython 3.10+ and the configured Scalable CLI.
Headless-readysystemd services, file session, no desktop needed.

Instant download · no account · self-hosted · proprietary licence