https://github.com/maraloon/pickdate
date picker for your terminal
https://github.com/maraloon/pickdate
Last synced: about 2 months ago
JSON representation
date picker for your terminal
- Host: GitHub
- URL: https://github.com/maraloon/pickdate
- Owner: maraloon
- Created: 2025-01-02T03:02:43.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-10-27T14:06:00.000Z (5 months ago)
- Last Synced: 2025-12-18T07:27:01.471Z (3 months ago)
- Language: Go
- Homepage:
- Size: 2.99 MB
- Stars: 41
- Watchers: 4
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-cli-apps-in-a-csv - tui-datepicker - Select date in terminal with vim-motions and copy to buffer. (<a name="option-picker"></a>Fuzzy finders and option pickers)
- awesome-cli-apps - tui-datepicker - Select date in terminal with vim-motions and copy to buffer. (<a name="option-picker"></a>Fuzzy finders and option pickers)
README
# Pickdate
fastly select date via vim-motions and print it to `stdout`

## Install
### arch linux:
``` bash
yay -S install pickdate
```
### manualy:
```bash
git clone git@github.com:maraloon/pickdate.git
cd pickdate
go install
```
## Usage idea
It's for what i develop this app. Terminal-based notes. Open (or create) file for selected date
> After time i rewrite my bash scripts to one project: [tty-diary](https://github.com/maraloon/tty-diary), so if you want to diarize like me, check it
```bash
#!/usr/bin/env sh
prev_selected_date=$(date +"%Y/%m/%d")
while true
do
selected_date=$(pickdate -m --start-at $prev_selected_date) || exit 1
nvim "$HOME/diary/$selected_date.md" # opens diary/2025/01/15.md
prev_selected_date=$selected_date # alows to stay in selected date after quit editor
done
```

## Flags
```
Usage: pickdate [OPTIONS]
Options:
-f, --format string Format of date output (default "yyyy/mm/dd")
-h, --help Help
-m, --monday Monday as first day of week
--start-at string Pointed date on enter (default today)
-s, --sunday Sunday as first day of week (default true)
```
### `--format` values
You can use both left and right format types
| Format | Go Layout |
|--------------|-------------------|
| `yyyy/mm/dd` | `2006/01/02` |
| `Y/m/d` | `2006/01/02` |
| `yyyy-mm-dd` | `2006-01-02` |
| `Y-m-d` | `2006-01-02` |
| `F j, Y` | `January 2, 2006` |
| `m/d/y` | `01/02/06` |
| `M-d-y` | `Jan-02-06` |
| `l` | `Monday` |
| `D` | `Mon` |
| `d` | `02` |
| `j` | `2` |
| `F` | `January` |
| `M` | `Jan` |
| `m` | `01` |
| `n` | `1` |
| `Y` | `2006` |
| `y` | `06` |
## Set custom colors for days
You can send string to stdin to set custom colors for each day.
String format: `color1:day1,day2;color2:day3,day31`
`color` - `[0-15]` or hex (`#b16286`)
`day` - `2006/01/02`
example: `echo "#b16286:2025/08/10,2025/08/11;#d79920:2025/08/12" | pickdate`
## TODO
- [x] stable
- [ ] git version
- [x] decoupling to bubble component
## Made with
It depends on [datepicker](https://github.com/maraloon/datepicker) bubble, which you can use in your go apps too