Skip to main content

studylife-cli

A command-line client for StudyLife, the self-hosted study organizer. Manage notes, sessions, course goals, and webhooks from your terminal, get study time reports and exports, or watch a live dashboard - scripts and shells welcome.

Install

pip install studylife-cli

(or pipx install studylife-cli to keep it in its own isolated environment)

Register the CLI on your instance

studylife-cli connects to your StudyLife instance through the same add-on mechanism any third-party integration uses - there is no special-cased server support to set up. Register it once via your own studylife-developers portal:

  1. Open your studylife-developers instance and go to Register new add-on.
  2. Fill in:
    • Client ID: studylife-cli
    • Allowed redirect URIs (one per line):
      http://127.0.0.1:8765/callback
      http://127.0.0.1:8766/callback
      http://127.0.0.1:8767/callback
      http://127.0.0.1:8768/callback
      
    • Scopes: whichever of notes/sessions/course-goals/timer/courses/study-programs/webhooks you want the CLI to be able to use.
  3. Save.

Log in

studylife login https://studylife.example.com

This opens your browser to approve the connection, then stores a scoped API key locally at ~/.config/studylife-cli/credentials.json (owner-readable only, on POSIX).

Usage

studylife notes list
studylife notes search "exam"
studylife notes create "Title" "Content" --course-id 1

studylife sessions list
studylife sessions history --days 7
studylife sessions create 2026-08-30T14:00:00 --end 2026-08-30T15:00:00 --title "Focus block"

studylife goals list
studylife goals set 1 --target-ects 5
studylife goals due --within-days 14

studylife timer
studylife courses list
studylife programs list
studylife programs get 1

studylife webhooks list
studylife webhooks create https://example.com/hook session.completed
studylife webhooks delete 3

studylife report --period week
studylife export ./backup --notes-format markdown

studylife tui

Add --json to any command for machine-readable output:

studylife notes list --json | jq '.[] | .title'
  • studylife goals due - open goals with an upcoming (or overdue) target date, soonest first.
  • studylife report - study time by course for the past week or month, plus streak/ECTS progress if the "Read metrics summary" scope is granted.
  • studylife export - back up notes, sessions, course goals, courses, and study programs to local files (--notes-format json|markdown), independent of your instance operator's own backups.
  • studylife tui - a live terminal dashboard (today's study time, running timer, next session, open goals), auto-refreshing every 15s.

Development

uv sync
uv run pytest
uv run ruff check .
uv run ruff format --check .

License

AGPL-3.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

studylife_cli-1.8.1.tar.gz (57.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

studylife_cli-1.8.1-py3-none-any.whl (36.4 kB view details)

Uploaded Python 3

File details

Details for the file studylife_cli-1.8.1.tar.gz.

File metadata

  • Download URL: studylife_cli-1.8.1.tar.gz
  • Upload date:
  • Size: 57.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for studylife_cli-1.8.1.tar.gz
Algorithm Hash digest
SHA256 700e7ede224994d7774c80bd7d76adadf7fa86ef89bd674a5ee7f8c683247e87
MD5 7defcf2658c45820b44c85792a9b909b
BLAKE2b-256 52da04ce038595b4eb41111091ba50a62ee29ff1fa0b53d151bd94140c7428cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for studylife_cli-1.8.1.tar.gz:

Publisher: ci.yml on lukislp/studylife-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file studylife_cli-1.8.1-py3-none-any.whl.

File metadata

  • Download URL: studylife_cli-1.8.1-py3-none-any.whl
  • Upload date:
  • Size: 36.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for studylife_cli-1.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ee3e2ab7346a6431dacb258cd0162e0edf490608918e80fcd6021536a99338b9
MD5 ad8af7df8946b435ed137a814a5a0cd8
BLAKE2b-256 2fc9d83cd5c7d3a32321f6138ffc134c31af4d12e95a39c5371e8310886ed3de

See more details on using hashes here.

Provenance

The following attestation bundles were made for studylife_cli-1.8.1-py3-none-any.whl:

Publisher: ci.yml on lukislp/studylife-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.8.2

2 files

This release

1.8.1 This release

2 files

1.8.0

2 files

1.7.0

2 files

1.6.0

2 files

1.5.0

2 files

1.4.0

2 files

1.3.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page