Skip to main content

jasem

jasem

A plain-text task manager, time tracker, and spending log for your terminal — natural-language input, pluggable AI parsing, zero dependencies. Your data stays in human-readable Markdown under ~/.jasem/.

📖 Full guide & command reference → the wiki

Install

Needs Python 3.8+.

pipx install jasem   # or: pip install jasem

Quick start

# Capture — write naturally; jasem reads the deadline, amount & tags for you
jasem todo  "pay rent next friday, high priority, finance"
jasem track "1h30min code review, work"
jasem acc   "50k lunch with the team, food"

# Review
jasem todo            # open tasks, soonest deadline first
jasem track report    # time totals, by-tag & timeline
jasem acc report      # spending totals, by-tag & timeline
jasem                 # welcome screen
jasem --help          # full command reference

If no AI model is reachable, entries still save (dates parsed by regex).

Commands

Three symmetric namespaces, same verbs in each — prefix every command with jasem:

Action todo — tasks track — time acc — spending
Add (natural language) todo "pay rent friday, finance" track "1h30min review, work" acc "50k lunch, food"
List todo list [tag] track list [period] [tag] acc list [period] [tag]
Report (totals · by-tag · timeline) — track report [period] [tag] acc report [period] [tag]
Filtered views todo today · week · overdue · all — —
Named lists todo @work … · todo lists · todo move <id> <list> — —
Search todo find "rent" — —
Categories todo tags track tags acc tags
Mark done todo done <id> — —
Edit a field todo set <id> deadline tomorrow track set <id> time 2h acc set <id> amount 60k
Remove todo rm <id> track rm <id> acc rm <id>

period = today · week · month · all. Lists and reports render as aligned tables with bar charts and sparklines.

Task lists

Keep work and home apart — prefix any todo command with @<list>:

jasem todo @work "ship the release friday, high priority"
jasem todo @work            # only work's open tasks
jasem todo @work overdue    # every view works the same way
jasem todo lists            # all lists, with open counts
jasem todo move 3 work      # move a task between lists

export JASEM_LIST=work      # make work the default; @default gets you back

A list is created by its first task and stored in its own file (~/.jasem/tasks-work.md), numbering its tasks from 1.

AI backend

Parsing is the only step that uses a model. Default is local Ollama (free, private, offline).

# Local (default)
ollama serve && ollama pull qwen2.5:3b

# OpenAI-compatible (OpenAI, Groq, OpenRouter, LM Studio, …)
export JASEM_PROVIDER=openai JASEM_API_KEY=sk-...
export JASEM_OPENAI_API_BASE=https://openrouter.ai/api/v1   # for non-OpenAI hosts

# Anthropic (Claude)
export JASEM_PROVIDER=anthropic JASEM_API_KEY=sk-ant-...

Persian (Jalali) calendar

Set JASEM_JALALI=true to read and show every date in the Persian (Jalali/Shamsi) calendar:

export JASEM_JALALI=true
jasem todo "pay rent 1405-04-10, finance"   # type dates in Jalali
jasem todo list                              # dates shown in Jalali

Dates you type and dates jasem shows are Jalali, but files on disk stay Gregorian ISO (YYYY-MM-DD) — so the same data works with or without the flag. Relative phrases (tomorrow, next friday, in 3 days) work in both modes. Leave it unset (or false) for the default Gregorian calendar.

Config

  • Storage — ~/.jasem/*.md; grep, edit, sync, or version-control it freely.
  • Color — JASEM_ACCENT recolors the accent; NO_COLOR forces plain text.

Run jasem --help for every command, option, and environment variable.

A note on AI

I used AI to create some parts of Jasem, but I carefully reviewed all the code written by AI rather than blindly copy-pasting.

License

MIT — see LICENSE.

Release files for jasem 1.2.1

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

Source distribution (sdist)

Source distribution for jasem 1.2.1
File Size Uploaded
jasem-1.2.1.tar.gz 63.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jasem 1.2.1
File Interpreter ABI Platform
jasem-1.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 124.7 kB

Release files / jasem-1.2.1.tar.gz

Download URL jasem-1.2.1.tar.gz
Size 63.3 kB
Tags Source
SHA-256 checksum
How to use checksums
92270516e7410ec321df95683096e1c381b50eee651927fb51c5c2165f60c421
BLAKE2b-256 checksum
How to use checksums
afb53c69aa500ca04a8e300bc9b8483876b651f6810d909ac08cafce252cf83e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / jasem-1.2.1-py3-none-any.whl

Download URL jasem-1.2.1-py3-none-any.whl
Size 61.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f7dbf38d40dac53a19b3bd36c05de7fb718ed62aac639710751c587e4d056e81
BLAKE2b-256 checksum
How to use checksums
3c97280943c1c8d9f3dd152f5b8088124fb732eddd1c29ee575098a3ea21ac4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

1.2.1 This release

2 release files

1.2.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

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