Skip to main content

studylife-cli

CI OpenSSF Scorecard CodeQL Release License: AGPL-3.0 Python

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

Release files for studylife-cli 1.9.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for studylife-cli 1.9.2
File Size Uploaded
studylife_cli-1.9.2.tar.gz 64.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for studylife-cli 1.9.2
File Interpreter ABI Platform
studylife_cli-1.9.2-py3-none-any.whl Python 3 none any Details

Total release size: 101.7 kB

Release files / studylife_cli-1.9.2.tar.gz

Download URL studylife_cli-1.9.2.tar.gz
Size 64.6 kB
Tags Source
SHA-256 checksum
How to use checksums
94226a29ae4c6c0eb62c7db726450cac01128ab6961ecb0755adbf252b1b4d18
BLAKE2b-256 checksum
How to use checksums
c3c8e1c428bafc53d072c205d76cebcae49eada52a2fdc64e1aa10e672655b07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.

Transparency log

Release files / studylife_cli-1.9.2-py3-none-any.whl

Download URL studylife_cli-1.9.2-py3-none-any.whl
Size 37.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3aafc613858e22ea5161c13bbe10586ba14f4537500a8faae83fb4d86b8d7818
BLAKE2b-256 checksum
How to use checksums
5ef1b011ab235ec60c22af06c4fbb2cdd10fd10f3939c7153eea67d8545ddad2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.

Transparency log

Release history Release notifications | RSS feed

1.9.10

2 release files

1.9.9

2 release files

1.9.8

2 release files

1.9.7

2 release files

1.9.6

2 release files

1.9.5

2 release files

1.9.4

2 release files

1.9.3

2 release files

This release

1.9.2 This release

2 release files

1.9.1

2 release files

1.9.0

2 release files

1.8.3

2 release files

1.8.2

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release 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