{"id":21316101,"url":"https://github.com/cjsaylor/jrnl","last_synced_at":"2025-07-12T01:31:37.304Z","repository":{"id":49646620,"uuid":"112976932","full_name":"cjsaylor/jrnl","owner":"cjsaylor","description":"Quick and easy CLI journaling tool for Github wiki journals.","archived":false,"fork":false,"pushed_at":"2023-02-24T10:58:37.000Z","size":383,"stargazers_count":20,"open_issues_count":5,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-08T22:05:40.945Z","etag":null,"topics":["frontmatter","github","hacktoberfest","index","journal","wiki"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cjsaylor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-04T00:45:15.000Z","updated_at":"2025-05-14T17:30:42.000Z","dependencies_parsed_at":"2024-06-20T02:57:03.992Z","dependency_job_id":"83d78642-0dd7-4d5b-a639-677d157c33de","html_url":"https://github.com/cjsaylor/jrnl","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/cjsaylor/jrnl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjsaylor%2Fjrnl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjsaylor%2Fjrnl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjsaylor%2Fjrnl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjsaylor%2Fjrnl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cjsaylor","download_url":"https://codeload.github.com/cjsaylor/jrnl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjsaylor%2Fjrnl/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264923080,"owners_count":23683716,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["frontmatter","github","hacktoberfest","index","journal","wiki"],"created_at":"2024-11-21T18:29:42.941Z","updated_at":"2025-07-12T01:31:36.920Z","avatar_url":"https://github.com/cjsaylor.png","language":"Go","readme":"# jrnl [![Test Application Status](https://github.com/cjsaylor/jrnl/workflows/Test%20Application/badge.svg)](https://github.com/cjsaylor/jrnl/actions)\n\nA quick and easy CLI journaling tool that uses Github Wiki repos for organizing journal entries.\n\n![](jrnl.gif)\n---\n\n[View an example wiki journal](https://github.com/cjsaylor/jrnl/wiki)\n\n---\n\n[![GoDoc](https://godoc.org/github.com/cjsaylor/jrnl?status.svg)](https://godoc.org/github.com/cjsaylor/jrnl)\n\n* [Requirements](#requirements)\n* [Installation](#installation)\n* [Quick Start](#quick-start)\n* [Options](#options)\n* [Commands](#commands)\n\t* [Tag Journal Entries](#tag)\n\t* [Generate Index](#index)\n\t* [Append Images](#append-an-image)\n* [Tips \u0026 Tricks](#tips--tricks)\n\t* [Use `find` command to create a book](#use-find-command-to-create-a-book)\n\t* [Use `find` and `tag` commands to add a common tag](#use-find-and-tag-commands-to-add-a-common-tag)\n* [Development](#development)\n\n## Requirements\n\n* Git\n* Github account (and access to a repo for the wiki)\n\n## Installation\n\n### MacOS\n\n```bash\nbrew install cjsaylor/tap/jrnl\n```\n\n### Windows \u0026 Linux\n\nDownload the binary from the [latest release](https://github.com/cjsaylor/jrnl/releases/latest)\n\n### Compiling from source\n\n```bash\ngo get -u github.com/cjsaylor/jrnl/cmd/jrnl\n```\n\n## Quick start\n\n[Install `jrnl`](#installation)\n\n```bash\ngo get -u github.com/cjsaylor/jrnl/cmd/jrnl\n```\n\nClone a github wiki you want to act as the store of your journal:\n\n```bash\ngit clone https://github.com/\u003cyourname\u003e/\u003cjournel_repo\u003e.wiki.git ~/journal.wiki\n```\n\nQuickly drop into the editor of your choice (default `vim` but configurable via `$JRNL_EDITOR`):\n\n```bash\njrnl\n```\n\nWrite your entry and then \"memorize\":\n\n```bash\njrnl memorize\n```\n\n## Options\n\nYou can configure `jrnl` with the following environment variables:\n\n* `JRNL_EDITOR` (`vim`) - Editor to use\n* `JRNL_EDITOR_OPTIONS` (`\"\"`) - Additional CLI flags for your editor. IE, for VS Code: `-n $HOME/journal.wiki/`\n* `JOURNAL_PATH` (`~/journal.wiki`) - Path to your cloned Github wiki repo.\n\n## Commands\n\n### Tag\n\n`jrnl` has the ability to tag a journal entry so that it can be easily referenced and found.\n\n```bash\njrnl tag -t sometag\n```\n\nThis would append \"sometag\" to the journal entry in `frontmatter` format:\n\n```yaml\n---\ntags:\n- sometag\n---\n```\n\n### Index\n\n`jrnl` has the ability to generate an `Index.md` that allows you to easily reference any journal entry by a tag.\n\nYou can use the `tag` command specified above to specify tags.\n\n```bash\njrnl tag -t cooltag -t another cool tag -d \"2017-12-01\"\n```\n\nThen run the index command:\n\n```bash\njrnl index\n```\n\nWhich generates:\n\n\u003e ~/journal.wiki/Index.md\n\n\u003e * *cooltag* [2017-12-01]()\n\u003e * *another cool tag* [2017-12-01]()\n\nIf there is more than one journal entry that uses the same tag:\n\n```bash\njrnl tag -t cooltag -t -d \"2017-12-04\"\n```\n\nThen `jrnl index` would generate:\n\n\u003e ~/journal.wiki/Index.md\n\n\u003e * *cooltag* [2017-12-01](), [2017-12-04]()\n\u003e * *another cool tag* [2017-12-01]()\n\n### Append an image\n\nMany developers use hand-written notes (or a whiteboard) and want to store it in a common journal.\n\nYou can use the `jrnl image /path/to/image` command to quickly add an image to the journal repo and append it to the current journal entry.\n\n## Tips \u0026 Tricks\n\n### Use Find Command to Create a Book\n\nYou can use the `find` command (as of `v0.3.0`) to create a single document of all journal entries related to a tag (or tags):\n\n```bash\njrnl find --tag sometag --tag somerelatedtag | xargs cat \u003e sometag.md\n```\n\n### Use `find` command to add a common tag\n\nYou can use the `find` (as of `v0.3.0`) command and the `tag` command (as of `v0.4.0`) to add a common tag or tags:\n\n```bash\njrnl tag -t newtag $(jrnl find -tag existingtag | xargs -I {} echo \"-f {}\")\n```\n\n## Development\n\nTo compile the CLI tool:\n\n```bash\ngo build -o jrnl cmd/jrnl/main.go\n```\n\nTo run the unit tests:\n\n```bash\ngo test $(go list ./... | grep -v /vendor/)\n```\n\nTo add a dependency use [`go modules`](https://blog.golang.org/using-go-modules)\n\nFor distribution, the [`goreleaser` tool](https://goreleaser.com/) is used. Tag a new version and run `goreleaser --rm-dist` to tag and distribute.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcjsaylor%2Fjrnl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcjsaylor%2Fjrnl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcjsaylor%2Fjrnl/lists"}