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.2.tar.gz (57.4 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.2-py3-none-any.whl (36.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: studylife_cli-1.8.2.tar.gz
  • Upload date:
  • Size: 57.4 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.2.tar.gz
Algorithm Hash digest
SHA256 921197012b89aa30cbc94e9ddc0a70e59d1512b337c576c8dfa3bb770db753f4
MD5 5e57c3835c3ede945d73d8d44855c399
BLAKE2b-256 10a1512eee011e31bd26d31603b4983e74d7478735a7307933d4cec85fad6dbe

See more details on using hashes here.

Provenance

The following attestation bundles were made for studylife_cli-1.8.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: studylife_cli-1.8.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1fc74ff42c01f99624d2f76d11a3abf91b83cd696db0a0a6e12caa50d5935c70
MD5 ced11c7f66114e1ac5b498341df96b99
BLAKE2b-256 7e335b0d5d35565856c2acb15e0dece1bd43affc1151f10039bcf2b2d2bc0851

See more details on using hashes here.

Provenance

The following attestation bundles were made for studylife_cli-1.8.2-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

This release

1.8.2 This release

2 files

1.8.1

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