A plain-text task manager and time tracker with pluggable AI parsing (Ollama / OpenAI-compatible / Anthropic).
Project description
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 # welcome screen
jasem --help # full command reference
If no AI model is reachable, entries still save (dates parsed by regex).
Commands
Three symmetric namespaces, each sharing the same verbs — a quoted "<text>" adds; then list, tags, rm, set:
| Namespace | Tracks | Example |
|---|---|---|
todo |
tasks | jasem todo "submit report by friday, work" |
track |
time | jasem track "1h30min debugging, work" |
acc |
spending | jasem acc "50k lunch, food" |
Views & reports — list · today · week · overdue · find · report [period] [tag] — render as aligned tables with bar charts and sparklines.
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-...
Config
- Storage —
~/.jasem/*.md; grep, edit, sync, or version-control it freely. - Calendar —
JASEM_JALALI=trueshows & reads dates in the Persian (Jalali) calendar; files on disk stay Gregorian ISO. - Color —
JASEM_ACCENTrecolors the accent;NO_COLORforces 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jasem-1.1.0.tar.gz.
File metadata
- Download URL: jasem-1.1.0.tar.gz
- Upload date:
- Size: 56.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04312b618fb04d5bfc226397667fc7aaa1ce896ac0ab982fc69d7cdd0e51910c
|
|
| MD5 |
8652fcfb0ab705117a8970e9002aeec3
|
|
| BLAKE2b-256 |
45c9990cb7991e05820122b84e62d5db2c0461c83460392853d64eadc08924da
|
File details
Details for the file jasem-1.1.0-py3-none-any.whl.
File metadata
- Download URL: jasem-1.1.0-py3-none-any.whl
- Upload date:
- Size: 56.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
465da17e5fd1150126eb9bf9530c4eee37691c4e1b370b874c878b627bc31520
|
|
| MD5 |
44aad8b1fb87b66dd57262d977075b69
|
|
| BLAKE2b-256 |
c9c7291cceeb8cc59f682d3830777cf46d0b557f1a84f2366c43c7d753b9b006
|