Skip to content

Install

pip install sillon

That is the whole toolchain: the logging client, the CLI, and the analysis library. There is no server to configure and no account to create.

Optional extras

pip install "sillon[analysis]"   # + pandas, for to_dataframe()

Figures need matplotlib, which sillon does not install for you — if you are plotting, you already have it.

Requirements

  • Python 3.11 or newer
  • Linux, macOS or Windows

The client and the daemon talk over a Unix domain socket where one is available, and over a loopback TCP port on Windows, where CPython does not expose AF_UNIX. You do not configure this — sillon picks the right one. Set SILLON_TRANSPORT=unix|tcp only if you want to force it (the test suite does, to exercise the Windows path on Linux).

Check it worked

sillon --version

You get two commands on your PATH:

Command What it is
sillon the CLI you use to explore runs
sillon-server-daemon the background logging daemon — you never start this yourself

What gets created, and where

Nothing until you log something. The first time a script calls sillonpy, sillon creates a .sillon/ folder next to it:

.sillon/
  config.toml             the project's name and id
  database.sql            SQLite: one row per run
  glob/<uuid>/glob.hdf5   heavy arrays
  artifact/<uuid>/        files you logged
  figure/<uuid>/          figures you logged
  sources/<sha256>        the code behind each run
  daemon.log              the background daemon's log

That folder is your project. Back it up like any other data, and mv it wherever you like — it carries its own identity, so sillon notices the next time you use it. To move runs rather than the whole directory, see Moving runs between machines.

Add it to your .gitignore — it holds results, not source:

.sillon/

One file lives outside the project: a registry of every project on this machine, so sillon projects can tell you where they all are. It goes in ~/.config/sillon/ (or %APPDATA%\sillon on Windows).

Install from source

git clone https://github.com/balerat/sillon
cd sillon
pip install -e ".[dev]"     # or: make install
make test

See Development setup for the layout of the repository.