{"id":36539724,"url":"https://github.com/shamimbinnur/jerd","last_synced_at":"2026-01-25T13:02:54.816Z","repository":{"id":330774161,"uuid":"1123116021","full_name":"shamimbinnur/jerd","owner":"shamimbinnur","description":"A terminal-first journaling tool that syncs just fine with your favourite editors — Vim to VS Code ","archived":false,"fork":false,"pushed_at":"2025-12-31T13:14:23.000Z","size":45,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-22T17:53:42.176Z","etag":null,"topics":["cli","journaling","journaling-app","node-cli","nvim","vim"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shamimbinnur.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-26T08:02:36.000Z","updated_at":"2025-12-31T13:09:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/shamimbinnur/jerd","commit_stats":null,"previous_names":["shamimbinnur/jerd"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/shamimbinnur/jerd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shamimbinnur%2Fjerd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shamimbinnur%2Fjerd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shamimbinnur%2Fjerd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shamimbinnur%2Fjerd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shamimbinnur","download_url":"https://codeload.github.com/shamimbinnur/jerd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shamimbinnur%2Fjerd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28753411,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T10:25:12.305Z","status":"ssl_error","status_checked_at":"2026-01-25T10:25:11.933Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","journaling","journaling-app","node-cli","nvim","vim"],"created_at":"2026-01-12T05:40:53.142Z","updated_at":"2026-01-25T13:02:54.810Z","avatar_url":"https://github.com/shamimbinnur.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jerd - A terminal-first journaling tool\n\nA terminal-first journaling tool that syncs just fine with your favourite editors — Vim to VS Code\n\n## Overview\n\nIn Details: Jerd is a terminal-first journaling tool that allows users to do daily journaling right from their terminals. It works from terminal-based editors like Nano/Vim to GUI-based editors like VS Code. Its commands are simple and intuitive, letting you navigate journals directly from the terminal in a fast and convenient way.\n\nJerd follows a folder-based hierarchy and uses Markdown for journal files, which naturally lets you build content-first blogging sites on top of your journals using tools like Astro, Hugo, or Eleventy.\n\n## Features\n\n- Simple, filesystem-based journal management\n- Predictable structure: `Jerd/YYYY/YYYY-MM/YYYY-MM-DD.md`\n- Customizable templates via JSON\n- Cross-platform support (macOS, Linux, Windows)\n- Opens entries in your preferred editor\n\n## Installation\n\n```bash\nnpm install -g jerd\n```\n\n## Quick Start\n\n### 1. Initialize Jerd\n\n```bash\njerd init\n```\n\nThis creates:\n\n- `jerd/` directory in your current location\n- `config.json` with default settings\n- `templates.json` with a default template\n\n### 2. Create a Journal Entry\n\n```bash\n# Create today's entry\njerd new\n\n# Create entry for specific date\njerd new 2024-12-25\n\n# Use keywords\njerd new today\njerd new yesterday\njerd new tomorrow\n\n# Use a specific template\njerd new --template default\n```\n\n### 3. Open Existing Entries\n\n```bash\n# Open today's entry\njerd open\n\n# Open specific dates\njerd open yesterday\njerd open monday\njerd open 25 dec 2024\n```\n\n### 4. List Your Entries\n\n```bash\n# Show all entries\njerd list\n\n# Show specific year or month\njerd list 2025\njerd list december\njerd list dec 2024\n```\n\n## Commands\n\n### `jerd init`\n\nInitializes a new Jerd journal in the current directory.\n\n- Creates `./jerd` folder\n- Creates `jerd-config.json` with default editor settings\n- Creates `templates.json` with default template\n\nIf Jerd is already initialized, it will prompt before overwriting.\n\n### `jerd new [date] [--template \u003cname\u003e] [--editor \u003ceditor\u003e]`\n\nCreates a new journal entry for the specified date (or today if not specified).\n\n**Arguments:**\n\n- `date` - Optional date in various formats (see Date Formats below)\n\n**Options:**\n\n- `-t, --template \u003cname\u003e` - Template to use (default: from config.json)\n- `-e, --editor \u003ceditor\u003e` - Override default editor for this entry\n\n**Behavior:**\n\n- If the file exists, opens it without overwriting\n- If the file doesn't exist, creates it from the template\n- Opens the file in your configured editor\n\n**Examples:**\n\n```bash\n# Create today's entry\njerd new\njerd new today\n\n# Create entry for specific date\njerd new 2025-12-25\njerd new 25 dec\njerd new 25th december 2024\n\n# Use keywords\njerd new yesterday\njerd new tomorrow\njerd new monday\n\n# With custom template\njerd new --template work\njerd new today -t daily\n\n# With custom editor\njerd new -e vim\njerd new today --editor code\n```\n\n### `jerd open [date] [--editor \u003ceditor\u003e]`\n\nOpens an existing journal entry for the specified date.\n\n**Arguments:**\n\n- `date` - Optional date in various formats (see Date Formats below)\n\n**Options:**\n\n- `-e, --editor \u003ceditor\u003e` - Override default editor for this entry\n\n**Behavior:**\n\n- Opens the journal entry if it exists\n- Shows an error if the entry doesn't exist\n- Use `jerd new` to create entries that don't exist\n\n**Examples:**\n\n```bash\n# Open today's entry\njerd open\njerd open today\n\n# Open specific date\njerd open 2025-12-25\njerd open 25 dec 2024\n\n# Open recent entries\njerd open yesterday\njerd open monday\n\n# With custom editor\njerd open today -e vim\njerd open yesterday --editor code\n```\n\n### `jerd list [month|year] [year]`\n\nLists journal entries in a tree view format.\n\n**Arguments:**\n\n- No arguments - Shows all entries organized by year and month\n- `year` - 4-digit year (e.g., 2025) - Shows all entries for that year\n- `month` - Month name or abbreviation - Shows entries for that month (current year)\n- `month year` - Month and year - Shows entries for specific month and year\n\n**Options:**\n\n- `-a, --all` - Show all entries (same as no arguments)\n\n**Behavior:**\n\n- Displays entries in a hierarchical tree structure\n- Shows month names (e.g., \"December\") instead of numbers\n- Organized by Year → Month → Individual entries\n\n**Examples:**\n\n```bash\n# Show all entries\njerd list\njerd list --all\n\n# Show specific year\njerd list 2025\njerd list 2024\n\n# Show specific month (current year)\njerd list january\njerd list jan\njerd list december\njerd list dec\n\n# Show specific month and year\njerd list january 2025\njerd list dec 2024\njerd list feb 2023\n```\n\n**Supported Month Names:**\n\n- Full names: january, february, march, april, may, june, july, august, september, october, november, december\n- Abbreviations: jan, feb, mar, apr, may, jun, jul, aug, sep, sept, oct, nov, dec\n- Case insensitive: JANUARY, January, january all work\n\n### Date Formats\n\nAll date-accepting commands (`new` and `open`) support flexible date formats:\n\n**Keywords:**\n\n```bash\ntoday, now          # Current date\nyesterday           # Previous day\ntomorrow            # Next day\n```\n\n**Weekdays:**\n\n```bash\nmonday, mon         # Most recent Monday (including today)\nfriday, fri         # Most recent Friday\n# Searches backwards from today\n```\n\n**ISO Dates:**\n\n```bash\n2025-12-25          # YYYY-MM-DD format\n2025/12/25          # YYYY/MM/DD format\n```\n\n**Day Only (current month/year):**\n\n```bash\n25                  # 25th of current month\n15th                # 15th of current month\n1                   # 1st of current month\n```\n\n**Day + Month (current year):**\n\n```bash\n25 dec              # December 25th, current year\n25th december       # December 25th, current year\n12 feb              # February 12th, current year\n```\n\n**Day + Month + Year:**\n\n```bash\n25 dec 24           # December 25, 2024\n25th december 2024  # December 25, 2024\n12 feb 2025         # February 12, 2025\n```\n\n**Month Only (defaults to 1st, current year):**\n\n```bash\ndec                 # December 1st, current year\njanuary             # January 1st, current year\n```\n\n**Month + Year (defaults to 1st):**\n\n```bash\ndec 24              # December 1, 2024\ndecember 2025       # December 1, 2025\n```\n\n## File Structure\n\n```\nJerd/\n├── config.json\n├── templates.json\n├── 2025/\n│   ├── 2025-01/\n│   │   ├── 2025-01-01.md\n│   │   ├── 2025-01-02.md\n│   │   └── ...\n│   ├── 2025-02/\n│   │   └── ...\n│   └── 2025-12/\n│       ├── 2025-12-24.md\n│       └── 2025-12-25.md\n└── 2026/\n    └── ...\n```\n\n## Configuration\n\n### jerd.config.json\n\n```json\n{\n  \"editor\": \"nano\",\n  \"jerdPath\": \"./jerd\",\n  \"dateFormat\": \"YYYY-MM-DD\",\n  \"defaultTemplate\": \"default\"\n}\n```\n\n### templates.json\n\nTemplates define the structure of new journal entries.\n\n```json\n{\n  \"templates\": [\n    {\n      \"name\": \"default\",\n      \"sections\": [\n        {\n          \"type\": \"auto-date\",\n          \"title\": \"Date\",\n          \"format\": \"dddd, MMMM D, YYYY\"\n        },\n        {\n          \"type\": \"list\",\n          \"title\": \"What I'm grateful for\",\n          \"items\": []\n        },\n        {\n          \"type\": \"text\",\n          \"title\": \"Mood\",\n          \"content\": \"\"\n        },\n        {\n          \"type\": \"text\",\n          \"title\": \"Notes\",\n          \"content\": \"\"\n        }\n      ]\n    }\n  ]\n}\n```\n\n## Template Section Types\n\n### 1. auto-date\n\nAutomatically inserts a formatted date.\n\n```json\n{\n  \"type\": \"auto-date\",\n  \"title\": \"Date\",\n  \"format\": \"dddd, MMMM D, YYYY\"\n}\n```\n\nOutput:\n\n```markdown\n## Date\n\nThursday, December 25, 2025\n```\n\n### 2. list\n\nCreates a markdown list.\n\n```json\n{\n  \"type\": \"list\",\n  \"title\": \"Tasks\",\n  \"items\": []\n}\n```\n\nEmpty list output:\n\n```markdown\n## Tasks\n\n-\n```\n\nWith items:\n\n```json\n{\n  \"type\": \"list\",\n  \"title\": \"Tasks\",\n  \"items\": [\"Task 1\", \"Task 2\"]\n}\n```\n\nOutput:\n\n```markdown\n## Tasks\n\n- Task 1\n- Task 2\n```\n\n### 3. text\n\nInserts text content.\n\n```json\n{\n  \"type\": \"text\",\n  \"title\": \"Notes\",\n  \"content\": \"\"\n}\n```\n\nOutput:\n\n```markdown\n## Notes\n```\n\n## Creating Custom Templates\n\nEdit `jerd/templates.json` to add custom templates:\n\n```json\n{\n  \"templates\": [\n    {\n      \"name\": \"work-log\",\n      \"sections\": [\n        {\n          \"type\": \"auto-date\",\n          \"title\": \"Date\",\n          \"format\": \"YYYY-MM-DD\"\n        },\n        {\n          \"type\": \"list\",\n          \"title\": \"Completed\",\n          \"items\": []\n        },\n        {\n          \"type\": \"list\",\n          \"title\": \"In Progress\",\n          \"items\": []\n        },\n        {\n          \"type\": \"list\",\n          \"title\": \"Blocked\",\n          \"items\": []\n        },\n        {\n          \"type\": \"text\",\n          \"title\": \"Notes\",\n          \"content\": \"\"\n        }\n      ]\n    }\n  ]\n}\n```\n\nThen use it:\n\n```bash\njerd new --template work-log\n```\n\n## Editor Configuration\n\nJerd respects your system's `$EDITOR` environment variable.\n\n**Setting your editor:**\nnotepad\"\n\n````\n\nEdit `jerd/config.json` directly:\n\n```json\n{\n  \"editor\": \"vim\"\n}\n````\n\n**Supported editors:**\n\n- Terminal: nano, vim, vi, emacs, nvim, helix, micro\n- GUI: code (VS Code), subl (Sublime Text), atom, gedit\n\n## Examples\n\n### Daily Journaling Workflow\n\n```bash\n# Morning routine\njerd new\n# Opens today's entry, add morning thoughts\n\n# Later in the day\njerd new\n# Opens the same file, continue writing\n\n# Review yesterday's entry\njerd open yesterday\n```\n\n### Finding and Reviewing Entries\n\n```bash\n# List all your journal entries\njerd list\n\n# See what you wrote in December\njerd list december\njerd list dec 2024\n\n# See all entries from a specific year\njerd list 2024\n\n# Open last Monday's entry\njerd open monday\n\n# Open a specific date\njerd open 15 dec 2024\njerd open 2024-12-15\n```\n\n### Searching Your Journal\n\nSince entries are just markdown files, you can use standard Unix tools:\n\n```bash\n# View a specific entry\ncat jerd/2025/2025-12/2025-12-25.md\n\n# Search all entries for text\ngrep -r \"important note\" jerd/\ngrep -r \"meeting\" jerd/\ngrep -ri \"project alpha\" jerd/  # Case-insensitive\n\n# List all December entries\nls jerd/2025/2025-12/\n\n# Find entries modified in last 7 days\nfind jerd/ -name \"*.md\" -mtime -7\n\n# Count total entries\nfind jerd/ -name \"*.md\" | wc -l\n```\n\n## License\n\nMIT\n\n## Philosophy\n\nJerd follows a minimal, predictable, filesystem-based philosophy:\n\n- **No database** - Just markdown files\n- **Opinionated structure** - Predictable paths (YYYY/YYYY-MM/YYYY-MM-DD.md)\n- **External templates** - Easy to share and version control\n- **Cross-platform** - Works everywhere Node.js runs\n\n## Author\n\nShamim\n\n[X (formerly twitter)](https://x.com/shamim_10x) | [GitHub](https://github.com/shamimbinnur)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshamimbinnur%2Fjerd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshamimbinnur%2Fjerd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshamimbinnur%2Fjerd/lists"}