granola-cli 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Granola CLI
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/granola-cli.svg)](https://www.npmjs.com/package/granola-cli)
4
+ [![npm downloads](https://img.shields.io/npm/dm/granola-cli.svg)](https://www.npmjs.com/package/granola-cli)
5
+ [![license](https://img.shields.io/npm/l/granola-cli.svg)](https://github.com/magarcia/granola-cli/blob/main/LICENSE)
6
+ [![CI](https://github.com/magarcia/granola-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/magarcia/granola-cli/actions/workflows/ci.yml)
7
+
3
8
  > [!IMPORTANT]
4
9
  > **Disclaimer**: This is an **unofficial, open-source community project** and is **not affiliated with, endorsed by, or connected to Granola Labs, Inc.** (the company behind [Granola.ai](https://www.granola.ai/)). Granola is a registered trademark of Granola Labs, Inc. This CLI is an independent tool that uses the publicly available Granola API to provide command-line access to your own meeting data.
5
10
 
@@ -119,11 +124,23 @@ granola meeting list [options]
119
124
  |--------|-------------|
120
125
  | `-l, --limit <n>` | Number of meetings to show (default: 20) |
121
126
  | `-w, --workspace <id>` | Filter by workspace ID |
122
- | `-f, --folder <id>` | Filter by folder ID (requires folder support; the CLI warns if folders are unavailable) |
127
+ | `-f, --folder <id>` | Filter by folder ID |
128
+ | `-s, --search <query>` | Search in meeting titles (case-insensitive) |
129
+ | `-a, --attendee <name>` | Filter by attendee name or email (partial match) |
130
+ | `-d, --date <date>` | Filter meetings on a specific date |
131
+ | `--since <date>` | Filter meetings from date (inclusive) |
132
+ | `--until <date>` | Filter meetings up to date (inclusive) |
123
133
 
124
- **Example:**
134
+ **Date formats supported:**
135
+ - Keywords: `today`, `yesterday`, `tomorrow`
136
+ - Relative: `3 days ago`, `2 weeks ago`, `last week`, `last month`
137
+ - ISO: `2024-12-20`, `2024/12/20`
138
+ - Simple: `Dec 20`, `Dec 20 2024`, `20 Dec`
139
+
140
+ **Examples:**
125
141
 
126
142
  ```bash
143
+ # Basic listing
127
144
  $ granola meeting list --limit 5
128
145
 
129
146
  Showing 5 meetings
@@ -132,6 +149,24 @@ ID TITLE DATE
132
149
  a1b2c3d4 Q4 Planning Session Dec 18, 2025
133
150
  e5f6g7h8 1:1 with Sarah Dec 18, 2025
134
151
  i9j0k1l2 Sprint Retrospective Dec 17, 2025
152
+
153
+ # Search by title
154
+ $ granola meeting list --search "planning"
155
+
156
+ # Filter by attendee
157
+ $ granola meeting list --attendee john
158
+
159
+ # Filter by date
160
+ $ granola meeting list --date today
161
+ $ granola meeting list --date yesterday
162
+ $ granola meeting list --date "Dec 20"
163
+
164
+ # Filter by date range
165
+ $ granola meeting list --since "last week"
166
+ $ granola meeting list --since 2024-12-01 --until 2024-12-15
167
+
168
+ # Combine filters
169
+ $ granola meeting list --search standup --attendee john --since yesterday
135
170
  ```
136
171
 
137
172
  #### View meeting details
@@ -583,7 +618,6 @@ DEBUG=granola:cli:* granola meetings
583
618
  | ------------------- | ---------------------------- |
584
619
  | `granola:cli` | CLI entry point, startup |
585
620
  | `granola:cli:alias` | Alias expansion |
586
- | `granola:cli:subcommand` | External subcommand discovery |
587
621
  | `granola:service:*` | All service layer operations |
588
622
  | `granola:lib:*` | All library utilities |
589
623
  | `granola:cmd:*` | All command handlers |
@@ -603,7 +637,19 @@ DEBUG=granola:cli:* granola meetings
603
637
 
604
638
  ```bash
605
639
  # See today's meetings
606
- granola meeting list --limit 5
640
+ granola meeting list --date today
641
+
642
+ # See yesterday's meetings
643
+ granola meeting list --date yesterday
644
+
645
+ # Find meetings from last week
646
+ granola meeting list --since "last week"
647
+
648
+ # Find all standups
649
+ granola meeting list --search standup
650
+
651
+ # Find meetings with a specific person
652
+ granola meeting list --attendee "sarah"
607
653
 
608
654
  # Review AI-enhanced summary from a meeting
609
655
  granola meeting enhanced a1b2c3d4
@@ -639,8 +685,16 @@ for id in $(granola meeting list --workspace abc12345 --output json | jq -r '.[]
639
685
  granola meeting export "$id" > "meetings/${id}.json"
640
686
  done
641
687
 
642
- # Find meetings mentioning a keyword
643
- granola meeting list --output json | jq '.[] | select(.title | test("planning"; "i"))'
688
+ # Export all meetings from last month
689
+ for id in $(granola meeting list --since "last month" --output json | jq -r '.[].id'); do
690
+ granola meeting export "$id" > "meetings/${id}.json"
691
+ done
692
+
693
+ # Find meetings with title search (built-in)
694
+ granola meeting list --search "planning"
695
+
696
+ # Find meetings with a specific attendee
697
+ granola meeting list --attendee "john.smith@example.com" --output json
644
698
  ```
645
699
 
646
700
  ### Integration with Other Tools
@@ -687,7 +741,7 @@ npm install
687
741
 
688
742
  ### Testing
689
743
 
690
- The project uses [Vitest](https://vitest.dev/) for testing with 100% code coverage.
744
+ The project uses [Vitest](https://vitest.dev/) for testing with high code coverage (95%+ threshold).
691
745
 
692
746
  ```bash
693
747
  # Run tests
@@ -720,7 +774,9 @@ granola-cli/
720
774
  │ ├── api.ts # Granola API client
721
775
  │ ├── auth.ts # Credential management
722
776
  │ ├── config.ts # Configuration management
777
+ │ ├── date-parser.ts # Natural date parsing
723
778
  │ ├── debug.ts # Debug logging utilities
779
+ │ ├── filters.ts # Meeting filter utilities
724
780
  │ ├── http.ts # HTTP client with retry
725
781
  │ ├── output.ts # Table formatting
726
782
  │ ├── pager.ts # Pager integration