{"id":16344291,"url":"https://github.com/cidem/fish-journal","last_synced_at":"2025-07-25T00:08:59.597Z","repository":{"id":118785094,"uuid":"268592349","full_name":"cideM/fish-journal","owner":"cideM","description":"A minimal journal and diary tool written in Fish shell script. ","archived":false,"fork":false,"pushed_at":"2020-08-07T15:16:10.000Z","size":46,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-18T08:37:45.764Z","etag":null,"topics":["cli","diary","fish","fish-shell","journal","minimal","simple"],"latest_commit_sha":null,"homepage":"https://github.com/cideM/fish-journal/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cideM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2020-06-01T17:49:40.000Z","updated_at":"2020-08-07T15:16:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"0e91802a-3ce8-4914-b5c4-beb02746f3f8","html_url":"https://github.com/cideM/fish-journal","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cideM/fish-journal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cideM%2Ffish-journal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cideM%2Ffish-journal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cideM%2Ffish-journal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cideM%2Ffish-journal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cideM","download_url":"https://codeload.github.com/cideM/fish-journal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cideM%2Ffish-journal/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266929238,"owners_count":24008063,"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","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cli","diary","fish","fish-shell","journal","minimal","simple"],"created_at":"2024-10-11T00:27:44.456Z","updated_at":"2025-07-25T00:08:59.522Z","avatar_url":"https://github.com/cideM.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fish Journal :fish:\n\nA small (362 LOC as measured with `tokei`) CLI tool for keeping a journal or diary, written in Fish, tested on both MacOS and Linux.\n\n```fish\n$ fisher add cideM/fish-journal\n$ journal new -T \"This is a title\" -t some -t tags\nCreated new journal entry /some/path/123456/body\n$ journal search\n--------------------\n/Users/foo/.local/share/fish_journal/983220.md\n2020-06-20 08:49:12\nThis is a title\nwhatever you entered with $EDITOR when you called `journal new`\n```\n\n## Usage\n\n[![asciicast](https://asciinema.org/a/25ACAApawE5aH79hjd4c3QtZs.svg)](https://asciinema.org/a/25ACAApawE5aH79hjd4c3QtZs)\n\nBe sure to check out the help `journal help`!\n\n```text\njournal help/--help/-h     Show this help\n\njournal new                Open $EDITOR to create a new journal entry\n        -t/--tag   TAG     Can be passed multiple times\n                           Each passed value will be one tag of the new entry\n        -T/--title TITLE   Title for journal entry\n        -d/--date  DATE    Date to be used for date of entry\n                           Must be date with standard formatting\n                           Create journal entry for yesterday on MacOS/BSD:\n                           Example: journal -d (LANG=da_DK.iso_8859-1 date -v-1d)\n\n                           Using LANG has no effect, since the names in which\n                           date string components are written doesn't matter\n                           You just shouldn't change the order of the date components    \n                           Internally dates are reformatted anyway\n                           Also see --from help below\n\njournal search             List journal entries (without options, list all entries)\n        -n/--number        Maximum number of entries to show\n        -f/--filename-only Show only the filenames instead of the entire entry\n                           Useful for piping the output into other programs\n        -F/--from DATE     Show only entries where date is greater than or equal to\n                           DATE. The value of DATE depends on whether you (want?)\n                           to use BSD date (MacOS) or GNU date (Linux).\n\n                           All entries since yesterday:\n                           BSD/MacOS: journal list --from (date -v-1d)\n                           GNU/Linux: journal list --from (date -d yesterday)\n\n                           Either way, please pass a DATE using the standard formatting\n        -U/--until DATE    Show only entries where date is less than or equal to\n                           DATE. For the description of DATE, please see help text for\n                           --from flag\n        -t/--tags TAG      Can be passed multiple times\n                           Show only entries which match all values passed as TAG\n                           Show all entries matching foo AND bar\n                           journal search -t foo -t bar\n        -T/--title TITLE   Show only entries whose title is contained in TITLE\n                           Show all entries where title includes foo\n                           journal search -T foo\n```\n\n## Customziation\n\n### Default Template \n\nSet the text that will be shown when $EDITOR is opened.  Just override `__journal_entry_template`, like so: \n```fish\n$ function __journal_entry_template; echo \"foo\"; end; journal\n```\n\n### Default File Extension\n\nSet `FISH_JOURNAL_EXTENSION`, `set -x FISH_JOURNAL_EXTENSION \".md\"`\n\n### Default Directory\n\nSet `FISH_JOURNAL_DIR`, `set -x FISH_JOURNAL_DIR ~/my_journal`\n\n## FAQ\n\n### How does the whole `date` stuff work?\n\nAs a small and focused shell script, some things need to be outsourced to other\ncommands. One such area is handling dates. It's up to you to pass a valid date\nstring to `journal`, which can then be interpreted, and reformatted, through\nsomething like this:\n\n```fish\n# GNU\ndate -d $YOUR_DATE +\"%Y-%m-%d %T\"\n\n# BSD\ndate -j -f \"%a %b %d %T %Z %Y\" $YOUR_DATE +\"%Y-%m-%d %T\"\n```\n\nThe above code will take your date and reformat it so it's easy to sort\nlexicographically. For example, to show all entries since yesterday with BSD\ndate (MacOS), you can run `journal search --from (date -v-1d)`.\n\n### How can I delete all journal entries?\n\nEasiest would be to just delete the root folder of your journal. The default is\n`\"$XDG_DATA_DIR/fish_journal\"` and `XDG_DATA_DIR` defaults to\n`\"$HOME/.local/share\"`. Alternatively, you can leverage the `-f` flag, which\nwill return filenames of entries instead of the content. This snippet deletes\nall entries without the deleting the journal root folder:\n\n```fish \njournal search -f | while read -la v; rm -r (dirname $v) 2\u003e/dev/null; end \n```\n\n### How can I customize the template, file extension and base folder?\n\nSee 'Customization' above\n\n## TODO\n\n- [ ] Add option for only showing titles\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcidem%2Ffish-journal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcidem%2Ffish-journal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcidem%2Ffish-journal/lists"}