Skip to content

takymt/memo

Repository files navigation

memo

A Go-based CLI for writing ideas down immediately.

Core Policy

  • Single binary written in Go
  • Interactive memo creation with memo
  • Explicit memo creation with memo create <description>
  • File name format: yyyymmdd_<description>.md
  • Unicode (Japanese, etc.) is supported in memo titles and search

Usage

Install

go install github.com/takymt/memo@latest

1) Initialize

memo init

Configure memo directory interactively. If left empty, current working directory is used. Configure memo directory interactively. If left empty, XDG data path is used: $XDG_DATA_HOME/memo (fallback: ~/.local/share/memo).

2) Create a memo (interactive)

memo

Prompts for a description and creates a Markdown file.

3) Create a memo (non-interactive)

memo create buy milk

Example output file: 20260216_buy_milk.md

4) Search memos

memo search bmk

Performs simple fuzzy matching (in-order character match) against memo file names.

5) Edit a memo

memo edit bmk

Finds matching memos and opens one in $EDITOR (vi fallback). If multiple memos match, you can choose from an interactive list. memo open <query> is kept as a compatibility alias.

6) Show revision

memo version

Prints the embedded revision value.

7) List recent memos

memo list --today
memo list --week

Prints memo file paths.

  • memo list: all memos (up to list_limit, default 100, max 100)
  • memo list --today: memos created today
  • memo list --week: memos created within the last 7 days

~/.memo/config.json supports list_limit (clamped to 100):

{
  "memo_dir": "/path/to/memos",
  "list_limit": 50
}

Development

mise run all

Tooling

  • goreleaser: release artifact generation/signing/SBOM (.goreleaser.yaml)
  • lefthook: local Git hooks (lefthook.yml)
  • renovate: dependency update automation (.github/renovate.json)
  • golangci-lint: linting (.golangci.yml)

About

Simple CLI for immediate memo

Resources

Stars

Watchers

Forks

Packages

No packages published