Skip to main content

A plain-text task manager and time tracker with pluggable AI parsing (Ollama / OpenAI-compatible / Anthropic).

Project description

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               # 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.
  • CalendarJASEM_JALALI=true shows & reads dates in the Persian (Jalali) calendar; files on disk stay Gregorian ISO.
  • ColorJASEM_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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jasem-1.1.0.tar.gz (56.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jasem-1.1.0-py3-none-any.whl (56.8 kB view details)

Uploaded Python 3

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

Hashes for jasem-1.1.0.tar.gz
Algorithm Hash digest
SHA256 04312b618fb04d5bfc226397667fc7aaa1ce896ac0ab982fc69d7cdd0e51910c
MD5 8652fcfb0ab705117a8970e9002aeec3
BLAKE2b-256 45c9990cb7991e05820122b84e62d5db2c0461c83460392853d64eadc08924da

See more details on using hashes here.

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

Hashes for jasem-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 465da17e5fd1150126eb9bf9530c4eee37691c4e1b370b874c878b627bc31520
MD5 44aad8b1fb87b66dd57262d977075b69
BLAKE2b-256 c9c7291cceeb8cc59f682d3830777cf46d0b557f1a84f2366c43c7d753b9b006

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page