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.
One lean background service collects the values, a second one drives Telegram. Both read the same config — all of it changeable live, without SSH.
sc broker overview at a chosen intervalFrom 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).
performance[].simpleAbsoluteReturn
· timeframe = INTRADAYThe intraday return in euros. A day's closing value is effectively the result for that day.
valuation.total
· 248.161,70 €The absolute portfolio value, logged in parallel. securities or crypto can be chosen instead.
FINAL_POLLOn the switch to “market closed”, the collector fetches the real closing value once — not the last tick before it.
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.
A straight pipeline, no cloud detour. Only the collector talks to the CLI; viewer and bot read the logs.
sc broker overview --json returns your broker's performance & portfolio value.
Polls during market hours, writes a daily log for return and portfolio value.
On day rollover the monthly and yearly files are rebuilt with charts.
On demand by command or automatic daily summary — chart included.
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.
All info & releases: github.com/ScalableCapital/scalable-cli
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
Releases include checksums and a minisign signature — verify before installing.
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
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
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"
For more isolation, sc can run as a dedicated Unix user with a narrowly scoped sudoers rule — see the official README.
You need Python 3.10+, the configured Scalable CLI (above) and a Telegram account. The steps target a Linux/headless server.
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
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
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
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
Both services must run as the same Unix user as your sc login — only then do they share the Scalable session.
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.
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 liveconfig.json, editable via /config and active without restart./login.Authentication is handled by the official sc CLI in its own secure session store. Scalable Live stores no credentials.
Only read commands are called. Trading is done solely by you in the Scalable app.
Only the chat/user IDs set in the config are served. Everyone else just sees their own ID.
Logs, charts and Excel files live in your data folder. The entire Python code is open in front of you — no telemetry.
sc CLI. You need a one-time beta allowlisting for it (see “How to get sc”). Without an active sc session, no data arrives.broker overview, whoami). It records your performance — you trade yourself in the Scalable app.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.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.Complete Python project: collector, Telegram bot, Excel export, terminal viewer, systemd services and commented configuration.
Instant download · no account · self-hosted · proprietary licence