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.10

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.10
File Size Uploaded
studylife_cli-1.9.10.tar.gz 68.7 kB Details

Built distribution (wheel)

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

Total release size: 105.8 kB

Release files / studylife_cli-1.9.10.tar.gz

Download URL studylife_cli-1.9.10.tar.gz
Size 68.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4cafba715241837969d44955c14b84fcd581b5c899ecc63b92296bb052a62004
BLAKE2b-256 checksum
How to use checksums
85fe4e3a70881a8b564bd7dd634b7aaccd097542240da72e7067aed15dc62ad5
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 25, 2026.

Transparency log

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

Download URL studylife_cli-1.9.10-py3-none-any.whl
Size 37.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
77a4455fd5e4b72f423a3245496d45475874cb787678be3388425239e97ed1cd
BLAKE2b-256 checksum
How to use checksums
ace2e6a3d1aeca3b542c2c77e17fb78ed4c2e8c3959b8d55a19163b5dc8989c4
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 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.9.10 This release

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

1.9.2

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