Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python.announce > #4361
| Path | csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail |
|---|---|
| From | Daniel Graham <dnlgrhm@gmail.com> |
| Newsgroups | comp.lang.python.announce |
| Subject | [Python-announce] Subject: [ANN] tklr — local, keyboard-first tickler file (0.0.51) |
| Date | Sat, 14 Feb 2026 15:33:02 -0500 |
| Lines | 42 |
| Approved | python-announce-list@python.org |
| Message-ID | <DAF2DE03-C53C-4FA0-BECD-548B2995BA48@gmail.com> (permalink) |
| Reply-To | python-list@python.org |
| Mime-Version | 1.0 (Mac OS X Mail 16.0 \(3864.300.41.1.7\)) |
| Content-Type | text/plain; charset=us-ascii |
| Content-Transfer-Encoding | quoted-printable |
| X-Trace | news.uni-berlin.de 30VAhpvJfLFuGqicVXdZmAYhGT8Up/XOvS5Au3p/QuCA== |
| Cancel-Lock | sha1:0yqfQR5JTK3vPRm2m5Ok8Ah6HXY= sha256:J426X8A0AqaSOXDtulVQdvq6i07lIij8yZXpFbINBkA= |
| Delivered-To | python-announce-list@x.python.org |
| Authentication-Results | mail.python.org; dkim=pass reason="2048-bit key; unprotected key" header.d=gmail.com header.i=@gmail.com header.b=jpm+eyXQ; dkim-adsp=pass; dkim-atps=neutral |
| X-Spam-Status | OK 0.011 |
| X-Spam-Evidence | '*H*': 0.98; '*S*': 0.00; 'projects,': 0.03; 'pip': 0.04; 'subject:first': 0.09; 'tasks,': 0.09; 'to:addr:python- announce-list': 0.09; 'url:master': 0.09; 'announce': 0.15; 'url- ip:140/8': 0.15; 'classic': 0.16; 'fri': 0.16; 'inspired': 0.16; 'license:': 0.16; 'notes,': 0.16; 'prompts': 0.16; 'received:apple': 0.16; 'received:smtpclient.apple': 0.16; 'scheduling': 0.16; 'subject:ANN': 0.16; 'subject:local': 0.16; 'textual': 0.16; 'url:project': 0.16; 'url:pypi': 0.16; 'github': 0.17; 'url-ip:140.82/16': 0.17; 'subject:] ': 0.18; 'message- id:@gmail.com': 0.18; 'subject:: [': 0.19; 'subject:file': 0.22; 'install': 0.23; 'url:github': 0.23; 'views': 0.23; 'local': 0.27; 'discussions': 0.32; "i'm": 0.32; 'received:google.com': 0.34; 'from:addr:gmail.com': 0.35; 'url-ip:151.101.0.223/32': 0.37; 'url-ip:151.101.128.223/32': 0.37; 'url-ip:151.101.192.223/32': 0.37; 'url-ip:151.101.64.223/32': 0.37; 'example': 0.37; 'file': 0.38; 'hello,': 0.39; 'url-ip:185.199.108.153/32': 0.39; 'url- ip:185.199.108/24': 0.39; 'url-ip:185.199/16': 0.39; 'forms': 0.40; 'daniel': 0.61; 'skip:k 10': 0.64; 'email': 0.64; 'pleased': 0.67; 'live': 0.68; 'contact:': 0.70; 'links:': 0.76; 'subjectcharset:utf-8': 0.80; 'local,': 0.84; 'navigation': 0.84; 'reminders': 0.84; 'type,': 0.84; 'url:demo': 0.84; 'flexible': 0.91; 'goals,': 0.91; 'priority.': 0.91; 'goals': 0.96 |
| DKIM-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771101214; x=1771706014; darn=python.org; h=to:date:message-id:subject:mime-version:content-transfer-encoding :from:from:to:cc:subject:date:message-id:reply-to; bh=MLgm5vmGIz/Q+BXacjujVmVdKCOlMyYmBOt7GkJRS8o=; b=jpm+eyXQ1LPljXcwMI2CDIGf3bF1YvSfV/VNb1Yt8Fg9oj/vh3PUTQ4Ooe1ujcAPbK EIAb3rbjes0/dLVeOOJu+pGjQ01r99vnAL6DlCMFklmPzW+S2cmbizMah+NRk1Oc+EGL Kx5edbtv0fHgI+X3A2C0NX0GBDIHyahClf1ZPKtECqx/oJsI9HX1pqDag+nwpoaymzAb uVbaEfV1FleDc4sgZAZ38IAEUJ/iYm3adOHkcEjK6GS56xMS+e9j3I09CyV77HbtIpRQ 6L65WO9tsREbUKQN7Kbn3/UZTxozIz6iYkGDV6/x/RKLAgT/RwpBb77h+IlbxYKm9L6n pG4A== |
| X-Google-DKIM-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771101214; x=1771706014; h=to:date:message-id:subject:mime-version:content-transfer-encoding :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=MLgm5vmGIz/Q+BXacjujVmVdKCOlMyYmBOt7GkJRS8o=; b=amX+6ekUs5pceEY9MQQpf4rCxtrLWFKLE6IGyZM9UBbWHj5NR9MA4gS3oHb6GmHWeJ Hmon/V0dh2SuUmATi9BFHct8eVI7I+VwZdU2tMqVApkNKr/8y85MLhC2eTA0sSclSsvr rk6LvV4thsOiQyvGWBveGO/1gQFUN5aKmrmx8EKCBDCQYmiE3sRXYsBVlcDjh0FOPQ57 NBNErZz86cAwfDM1LiD3jtd3VxLcewHG5f5WUYnIvfyDwC2NaAE2SE7yLWjv8A3WJnSd aa86oJubqkUzBLnRwrKh/kDlmL2PvqSJBfrH5itbTXs1uwHzxUiQtcd7Xwmha9GEHGD+ flKQ== |
| X-Gm-Message-State | AOJu0YwJSOUUuWFLATtcGGdaZMJyDgS71UguyRZwG4N9jnhTon0yFVCM lokUzr4cfCAQcck74u7qLzl+Xx5R53YSX0ux4aH3l6P4klDe+LAuZ0ERz3sSNPln |
| X-Gm-Gg | AZuq6aIG0TkPqpn7kWaOe/M+iUpDYcVlqmR5iJXeI6xS5uIAYjPCXY5e7C79CxtQfon Tkl79UZ2S5MU5c+kEuPMQCjD0ipfiKsTOj0pWQ3qCvFjkymiHqV3s9Mq4y/4h2rAnT9YniPB6Y0 DgT068GeGGG9jmIxAm4vzCV3Eqx6MySIEo7b2gOFJ8KM26gEIavFt4AnNKOqYTSO1eIn+rTQyhM 6t6XgVJtFZ6GdJe0AD7H6TaqpkC8icl3Yifku/jTppvWlEqbk5P4bmGbYYSel0Qm1QhkcIOqruC SwBwBcHt1h/IuM3n4znOpxRvH6lpHqv5EksjTpvsRqaweIn0ViBZSpuBhNLbHv6X+tP2s2I/OU4 z0TT9sMDowjEDiRY5Ax37k5yM55mPvcjxXcTmGUbEC1rDFrNtnTU9gUUSGvg54x+DJG99JWfXHT V/qLEz5fSAbIyGUUIUYzJQZROitfS30e6Rz7I1VZTIvR2wRB8hzA381Fia1vWkBsB6JkyHEkSGp xMWQ8lyKIZaooc= |
| X-Received | by 2002:a05:690c:62c1:b0:795:e46:4eef with SMTP id 00721157ae682-797aa6d8419mr39831097b3.0.1771101213804; Sat, 14 Feb 2026 12:33:33 -0800 (PST) |
| X-Mailer | Apple Mail (2.3864.300.41.1.7) |
| X-MailFrom | dnlgrhm@gmail.com |
| X-Mailman-Rule-Hits | emergency |
| X-Mailman-Rule-Misses | dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-python-announce-list.python.org-0; header-match-python-announce-list.python.org-1; header-match-python-announce-list.python.org-2; header-match-python-announce-list.python.org-3; header-match-python-announce-list.python.org-4 |
| Message-ID-Hash | BTNF6FASFPZLZVQL5I36PYH6QWBN2HAF |
| X-Message-ID-Hash | BTNF6FASFPZLZVQL5I36PYH6QWBN2HAF |
| X-Mailman-Approved-At | Sat, 14 Feb 2026 15:39:04 -0500 |
| X-Mailman-Version | 3.3.11b1 |
| Precedence | list |
| List-Id | Announcement-only list for the Python programming language <python-announce-list.python.org> |
| Archived-At | <https://mail.python.org/archives/list/python-announce-list@python.org/message/BTNF6FASFPZLZVQL5I36PYH6QWBN2HAF/> |
| List-Archive | <https://mail.python.org/archives/list/python-announce-list@python.org/> |
| List-Help | <mailto:python-announce-list-request@python.org?subject=help> |
| List-Owner | <mailto:python-announce-list-owner@python.org> |
| List-Post | <mailto:python-announce-list@python.org> |
| List-Subscribe | <mailto:python-announce-list-join@python.org> |
| List-Unsubscribe | <mailto:python-announce-list-leave@python.org> |
| Xref | csiph.com comp.lang.python.announce:4361 |
Show key headers only | View raw
Hello, I'm pleased to announce tklr, a local reminder system inspired by the classic tickler file. You enter reminders in plain text; tklr parses dates, recurrence, and metadata as you type, then ranks tasks by urgency and goals by priority. Highlights: - Form-free entry with live prompts (no forms to fill) - CLI and Textual UI with mouse-free navigation - Multiple reminder types: events, tasks, projects, goals, notes, jots, drafts - Flexible scheduling with fuzzy dates, recurrence, and time zones - Organized views (Agenda, Next/Last, Queries, bins, hashtags) Install: pip install -U tklr-dgraham pipx install tklr-dgraham Example entry: * lunch with Ed @s 12p fri @e 1h30m @a 15m: n Links: PyPI: https://pypi.org/project/tklr-dgraham/ GitHub: https://github.com/dagraham/tklr-dgraham Docs: https://dagraham.github.io/tklr-dgraham/ Demo: https://raw.githubusercontent.com/dagraham/tklr-dgraham/master/screenshots/demo.gif License: GPL-3.0-or-later Version: 0.0.51 Contact: Daniel Graham <dnlgrhm@gmail.com> Follow-ups: GitHub Discussions or email <P><A HREF="https://dagraham.github.io/tklr-dgraham/">tklr 0.0.51</A> - local, keyboard-first tickler file reminder system with CLI and Textual UI. (14-Feb-26) Daniel Graham
Back to comp.lang.python.announce | Previous | Next | Find similar
[Python-announce] Subject: [ANN] tklr — local, keyboard-first tickler file (0.0.51) Daniel Graham <dnlgrhm@gmail.com> - 2026-02-14 15:33 -0500
csiph-web