README 未说明具体依赖版本要求;加密功能需自行保管密码,README 未说明找回机制
命令行日记工具,用纯文本记录、搜索和查看日志,支持 AES 加密
命令行里随手记日记和笔记的工具,支持加密存储与标签检索,不用离开终端就能收集想法。
核心能力
- 用 yesterday: 等时间戳前缀快速创建条目
- 自动将首句识别为标题、其余作为正文
- 日记以人类可读的纯文本存储
- 支持 AES 加密保护日记内容
- 不传参数时提示交互式撰写,也可配置外部编辑器
容易踩的坑
- v4.6最新正式版2026-08-07 · 2026-08-07 10:26 UTC
Fixed security issue:
- https://github.com/jrnl-org/jrnl/security/advisories/GHSA-rhx6-37mm-5q9r, fixed in https://github.com/jrnl-org/jrnl/commit/94c7763986636053d92dd901e91e49596dcf239f
Fixed bugs:
- Icelandic letters in UTF-8 not working. #2113
--config-filebroken on latest build #2099- Bug Report #2082
- KeyError: date #2077
- 6 Tests failed because 'v' is missing in front of '4.3.0' #2065
- Version tests failing on 4.3-beta release due to beta/b0 tags #2060
- jrnl crashes when
colors.tagsis not configured #2021 - Bug: Using time format "%H:%m" overwrites old entries on a day #2006
Packaging:
- Drop Python 3.10 support #2055
- Update dependency cryptography to v50 #2114 (renovate[bot])
- Update dependency tox to v4.58.0 #2108 (renovate[bot])
- Update actions/setup-python action to v7 #2102 (renovate[bot])
- Update dependency ruff to v0.15.22 #2098 (renovate[bot])
- Update dependency rich to v15 #2094 (renovate[bot])
- Update actions/checkout action to v7 - autoclosed #2093 (renovate[bot])
- Update actions/cache action to v6 #2092 (renovate[bot])
- Update heinrichreimer/action-github-changelog-generator action to v2.4 #2078 (renovate[bot])
- Update dependency tox to v4.57.0 #2017 (renovate[bot])
Merged pull requests:
- Enable automerge for Renovate PRs #2116 (alichtman)
- Derive folder-journal entry dates from the folder path #2115 (youdie006)
- docs: add gedit to external editors #2107 (natejswenson)
- fix: guarantee editor tempfile cleanup and add debug logging #2106 (alichtman)
- fix: don't crash on invalid UTF-8 from stdin when writing an entry #2104 (alichtman)
- fix: don't overwrite the default config when using --config-file #2101 (alichtman)
- fix: write journal files atomically to avoid corruption on crash #2096 (alichtman)
- fix: emit error when running --decrypt on an unencrypted journal #2095 (alichtman)
- chore: upgrade all deps #2091 (alichtman)
- fix: don't crash on missing or invalid color config valu
- v4.6-betapre-release2026-08-06 · 2026-08-06 12:42 UTC
查看更新说明
Implemented enhancements:
- Feature Request: VJOURNAL Backend #2083
- Feature Request: Add a config option to output any new entries to the terminal after submission. #1871
Fixed bugs:
- Icelandic letters in UTF-8 not working. #2113
--config-filebroken on latest build #2099- Bug Report #2082
- KeyError: date #2077
- 6 Tests failed because 'v' is missing in front of '4.3.0' #2065
- Version tests failing on 4.3-beta release due to beta/b0 tags #2060
- jrnl crashes when
colors.tagsis not configured #2021
Packaging:
- Drop Python 3.10 support #2055
- Update actions/setup-python action to v7 #2102 (renovate[bot])
- Update dependency ruff to v0.15.22 #2098 (renovate[bot])
- Update dependency rich to v15 #2094 (renovate[bot])
- Update actions/checkout action to v7 - autoclosed #2093 (renovate[bot])
- Update actions/cache action to v6 #2092 (renovate[bot])
- Update heinrichreimer/action-github-changelog-generator action to v2.4 #2078 (renovate[bot])
- Update dependency tox to v4.57.0 #2017 (renovate[bot])
Merged pull requests:
- fix: guarantee editor tempfile cleanup and add debug logging #2106 (alichtman)
- fix: don't crash on invalid UTF-8 from stdin when writing an entry #2104 (alichtman)
- fix: don't overwrite the default config when using --config-file #2101 (alichtman)
- fix: write journal files atomically to avoid corruption on crash #2096 (alichtman)
- fix: emit error when running --decrypt on an unencrypted journal #2095 (alichtman)
- chore: upgrade all deps #2091 (alichtman)
- fix: don't crash on missing or invalid color config values #2089 (alichtman)
- Drop Python 3.10 support #2088 (alichtman)
- docs: add CLAUDE.md #2086 (alichtman)
- fix: prevent ValueError when upgrading with no journals configured #2080 (miloquinn)
- Minor fixes to docstrings of functions #1868 (MuditJ)
- v4.22024-11-18 · 2024-11-18 00:06 UTC
查看更新说明
Implemented enhancements:
Fixed bugs:
- -contains doesn't accept multiple search terms, doesn't work with -and #1877
- Tests failing on develop branch starting with pytest-bdd 7.1.2 #1875
- Ignore color when used in a pipeline #1839
- Fix -contains to allow multiple terms with "OR" logic unless -and is added #1890 (eigenric)
Documentation:
- Recommend pipx as default installation method #1888
- Remove documentation recommendation to install pipx through brew or pip #1886
- Document security risks of using a computer that someone else has admin access to #1793
- Recommend pipx as easiest installation method for all OSes and remove warning about apt #1889 (micahellison)
- Docs accessibility checker failure - contrast ratio #1934
- Docs accessibility test runner failing #1932
Packaging:
- Update actions/cache action to v4 #1847 (renovate[bot])
- Update actions/setup-python action to v5 #1848 (renovate[bot])
- Update dependency black to v24.8.0 #1923 (renovate[bot])
- Update dependency cryptography to v43.0.3 #1942 (renovate[bot])
- Update dependency jinja2 to v3.1.4 #1892 (renovate[bot])
- Update dependency keyring to v25.4.1 #1924 (renovate[bot])
- Update dependency mkdocs to v1.6.1 #1895 (renovate[bot])
- Update dependency pa11y-ci to v3.1.0 #1831 (renovate[bot])
- Update dependency parse-type to v0.6.4 #1936 (renovate[bot])
- Update peter-evans/create-pull-request action to v7 #1929 (renovate[bot])
- Update dependency poethepoet to v0.29.0 #1925 (renovate[bot])
- Update dependency pytest to v7.4.4 #1845 (renovate[bot])
- Update dependency pytest-bdd to v7.3.0 #1896 (renovate[bot])
- Update dependency pytest-xdist to v3.6.1 #1897 (renovate[bot])
- Update dependency python-dateutil to v2.9.0 #1898 (renovate[bot])
- Update dependency requests to v2.32.3 #1899 (renovate[bot])
- Update dependency rich to v13.9.2 [#
- v4.2-betapre-release2024-10-19 · 2024-10-19 22:06 UTC
查看更新说明
Implemented enhancements:
Fixed bugs:
- -contains doesn't accept multiple search terms, doesn't work with -and #1877
- Tests failing on develop branch starting with pytest-bdd 7.1.2 #1875
- Ignore color when used in a pipeline #1839
- Fix -contains to allow multiple terms with "OR" logic unless -and is added #1890 (eigenric)
Documentation:
- Recommend pipx as default installation method #1888
- Remove documentation recommendation to install pipx through brew or pip #1886
- Document security risks of using a computer that someone else has admin access to #1793
- Recommend pipx as easiest installation method for all OSes and remove warning about apt #1889 (micahellison)
- Docs accessibility checker failure - contrast ratio #1934
- Docs accessibility test runner failing #1932
Packaging:
- Update actions/cache action to v4 #1847 (renovate[bot])
- Update actions/setup-python action to v5 #1848 (renovate[bot])
- Update dependency black to v24.8.0 #1923 (renovate[bot])
- Update dependency cryptography to v43.0.3 #1942 (renovate[bot])
- Update dependency jinja2 to v3.1.4 #1892 (renovate[bot])
- Update dependency keyring to v25.4.1 #1924 (renovate[bot])
- Update dependency mkdocs to v1.6.1 #1895 (renovate[bot])
- Update dependency pa11y-ci to v3.1.0 #1831 (renovate[bot])
- Update dependency parse-type to v0.6.4 #1936 (renovate[bot])
- Update peter-evans/create-pull-request action to v7 #1929 (renovate[bot])
- Update dependency poethepoet to v0.29.0 #1925 (renovate[bot])
- Update dependency pytest to v7.4.4 #1845 (renovate[bot])
- Update dependency pytest-bdd to v7.3.0 #1896 (renovate[bot])
- Update dependency pytest-xdist to v3.6.1 #1897 (renovate[bot])
- Update dependency python-dateutil to v2.9.0 #1898 (renovate[bot])
- Update dependency requests to v2.32.3 #1899 (renovate[bot])
- Update dependency rich to v13.9.2 [#
- v4.12023-11-04 · 2023-11-04 20:00 UTC
查看更新说明
v4.1 (2023-11-04)
Build:
- Add Python 3.12 support #1761 (micahellison)
- Set new required build fields in the ReadTheDocs config file #1803 (micahellison)
- Replace flake8 and isort with ruff linter and add
black --checkto linting step #1763 (micahellison)
Documentation:
- Add note about messages going to
stderrand the implication for piping #1768 (micahellison)
Packaging:
- Drop/replace ansiwrap dependency #1191
- Use rich instead of ansiwrap to wrap text #1693 (micahellison)
- Update actions/checkout action to v4 #1788 (renovate[bot])
- Update dependency black to v23.10.1 #1811 (renovate[bot])
- Update dependency cryptography to v41.0.5 #1815 (renovate[bot])
- Update dependency keyring to v24.2.0 #1760 (renovate[bot])
- Update dependency mkdocs to v1.5.3 #1795 (renovate[bot])
- Update dependency parse-type to v0.6.2 #1762 (renovate[bot])
- Update dependency poethepoet to v0.24.1 #1806 (renovate[bot])
- Update dependency pytest to v7.4.3 #1816 (renovate[bot])
- Update dependency pytest-bdd to v7 #1807 (renovate[bot])
- Update dependency rich to v13.6.0 #1794 (renovate[bot])
- Update dependency ruamel.yaml to v0.18.3 #1813 (renovate[bot])
- Update dependency ruff to v0.1.3 #1810 (renovate[bot])
- Update dependency tox to v4.11.3 #1782 (renovate[bot])
- Update dependency tzlocal to v5.2 #1814 (renovate[bot])
Special thanks:
- jrnl uses UTC instead of local time for entries in WSL/Ubuntu #1607 investigated and reported upstream by giuseppedandrea
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
jrnl

To get help, submit an issue on GitHub.
jrnl is a simple journal application for the command line.
You can use it to easily create, search, and view journal entries. Journals are stored as human-readable plain text, and can also be encrypted using AES encryption.
In a Nutshell
To make a new entry, just enter
jrnl yesterday: Called in sick. Used the time to clean the house and write my
book.
yesterday: is interpreted by jrnl as a timestamp. Everything until the
first sentence ending (either ., ?, or !) is interpreted as the title, and
the rest as the body. In your journal file, the result will look like this:
[2012-03-29 09:00] Called in sick.
Used the time to clean the house and write my book.
If you just call jrnl, you will be prompted to compose your entry - but you
can also configure jrnl to use your external editor.
For more information, please read the documentation.
Contributors
Maintainers
Our maintainers help keep the lights on for the project:
- Jonathan Wren (wren)
- Micah Ellison (micahellison)
- Aaron Lichtman (alichtman)
Please thank them if you like jrnl!
Code Contributors
This project is made with love by the many fabulous people who have contributed.
jrnl couldn't exist without each and every one of you!
If you'd also like to help make jrnl better, please see our contributing
documentation.
Financial Backers
Another way show support is through direct financial contributions. These funds
go to covering our costs, and are a quick way to show your appreciation for
jrnl.
Become a financial contributor and help us sustain our community.