opencode-gemiterm-skills 0.5.0 → 0.5.1

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/CHANGELOG.md CHANGED
@@ -4,6 +4,20 @@ All notable changes to `opencode-gemiterm-skills` will be documented in this fil
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [0.5.1] - 2026-06-07
8
+
9
+ ### Added
10
+ - `CONTRIBUTING.md` — developer-facing docs with architecture, file layout, coding rules, and troubleshooting (extracted from README)
11
+
12
+ ### Changed
13
+ - **README rewrite** — refocused for end-users and SEO: HTML meta comment with keywords, centered hero header, streamlined examples with emoji headers, "Why this plugin?" value-proposition section, call-to-action footer
14
+ - README generalized to be agent-agnostic: describes "any AI agent" instead of only OpenCode-specific framing; shows both `bunx` and `npx` install commands; "CLI install (any agent)" as the primary install method
15
+ - `debate-with-gemini` skill frontmatter: removed `metadata.requires` field; added `compatibility` and `license` fields
16
+ - `gemiterm` skill frontmatter: added `compatibility` and `license` fields
17
+
18
+ ### Removed
19
+ - Test for `metadata.requires: gemiterm` on `debate-with-gemini` (field no longer exists)
20
+
7
21
  ## [0.5.0] - 2026-06-07
8
22
 
9
23
  _Initial public release._
package/README.md CHANGED
@@ -1,217 +1,144 @@
1
+ <!--
2
+ SEO description: AI agent skills for Google Gemini — list, search, export Gemini chats and run
3
+ structured debates with Gemini. Works with OpenCode, Claude Code, and any skill-compatible AI agent.
4
+ Keywords: Gemini CLI, gemiterm, AI agent skills, Google Gemini terminal, Gemini chat export,
5
+ AI debate, multi-turn debate, terminal AI, agent skills, Gemini terminal
6
+ -->
7
+
8
+ <div align="center">
9
+
1
10
  # opencode-gemiterm-skills
2
11
 
12
+ **Gemini terminal skills for AI agents — chat export, search & AI-powered debates**
13
+
3
14
  [![OpenCode Plugin](https://img.shields.io/badge/OpenCode-Plugin-blue?link=https://opencode.ai)](https://opencode.ai)
4
15
  [![npm version](https://img.shields.io/npm/v/opencode-gemiterm-skills?label=npm)](https://www.npmjs.com/package/opencode-gemiterm-skills)
5
16
  [![MIT License](https://img.shields.io/badge/License-MIT-green?link=LICENSE)](LICENSE)
6
17
 
7
- Local OpenCode plugin package that bundles the `gemiterm` and `debate-with-gemini` skills for OpenCode agents. Install once and the skills are available to every OpenCode session on the machine.
18
+ [Quick Start](#quick-start) · [Skills](#bundled-skills) · [Examples](#examples) · [Requirements](#requirements) · [Contributing](CONTRIBUTING.md)
19
+
20
+ </div>
8
21
 
9
- [`gemiterm`](https://github.com/Expert-Vision-Software/gemiterm) is a CLI for interacting with Google Gemini from the terminal — listing, fetching, exporting, and managing Gemini chat history. This plugin wraps it into OpenCode skills so agents can use Gemini conversational data directly in workflows.
22
+ ---
23
+
24
+ Bring the power of [Google Gemini](https://gemini.google.com) directly into your AI agent sessions. This package bundles two skills — **gemiterm** and **debate-with-gemini** — so any compatible agent can search your Gemini chats, export conversation history, and run structured multi-turn debates with Gemini to validate ideas before you commit to code.
25
+
26
+ Works with [OpenCode](https://opencode.ai), and any agent that supports the `skill` tool or can invoke CLI-installed skills via `bunx`/`npx`.
10
27
 
11
28
  ## Bundled skills
12
29
 
13
- | Skill | Purpose |
14
- |-------|---------|
15
- | `gemiterm` | Google Gemini Terminal CLI wrapper for listing, fetching, exporting, and managing Gemini chat history. |
16
- | `debate-with-gemini` | Conducts structured multi-turn technical debates with Gemini AI via the `gemiterm` CLI, delegating the back-and-forth to a subagent. |
30
+ | Skill | What it does |
31
+ |-------|-------------|
32
+ | **gemiterm** | Search, list, export, and manage your Google Gemini chat history from the terminal. |
33
+ | **debate-with-gemini** | Run structured multi-turn technical debates with Gemini AI perfect for validating architecture decisions, trade-offs, and design choices. |
17
34
 
18
- Both skills are loaded on demand via the native `skill` tool. The metadata of each skill (name + description) is pre-loaded at session start; the full `SKILL.md` body is loaded only when the agent decides the skill is relevant.
35
+ Both skills are loaded on demand. Metadata (name + description) is pre-loaded at session start; the full skill body loads only when the agent decides it's relevant zero overhead when not in use.
19
36
 
20
37
  ## Quick start
21
38
 
22
39
  ```bash
23
- # Install skills and register them with OpenCode
24
- bunx opencode-gemiterm-skills install
40
+ # Install skills via bunx
41
+ bunx opencode-gemiterm-skills install [--scope global]
25
42
 
26
- # Or globally (for all projects on this machine)
27
- bunx opencode-gemiterm-skills install --scope global
28
- ```
43
+ # Or with npx
44
+ npx opencode-gemiterm-skills install [--scope global]
29
45
 
30
- That's it. After install, both `gemiterm` and `debate-with-gemini` appear in the `skill` tool's `<available_skills>` list. No restart needed — OpenCode loads skills on demand.
46
+ # Or skills.sh
47
+ npx skills add expert-vision-software/opencode-gemiterm-skills --skill [gemiterm/debate-with-gemini]
48
+ ```
31
49
 
32
- For global install, skills are placed in `~/.config/opencode/skills/`. For local install (default), they are placed in `{project}/.opencode/skills/`.
50
+ That's it skills are available immediately.
33
51
 
34
- ## Example use cases
52
+ ## Examples
35
53
 
36
- ### List and search Gemini chats (`gemiterm` skill)
54
+ ### 🔍 Search and export Gemini chats
37
55
 
38
56
  > **You:** "Find my Gemini chats about React Server Components and export them."
39
57
 
40
- Agent loads the `gemiterm` skill, then:
58
+ Agent loads the `gemiterm` skill, searches your Gemini history, and exports matches:
41
59
 
42
- ```bash
43
- gemiterm list --all-profiles --format json
44
- # → filters chats by title/keyword "React Server Components"
45
- gemiterm export <chat_id> --output ./exports/rsc-chat.md
60
+ ```
61
+ Found 3 matching chats. Exported all to ./exports/ — here's a summary of each…
46
62
  ```
47
63
 
48
- **Agent:** "Found 3 matching chats. Exported all to `./exports/` — here's a summary of each…"
49
-
50
- ---
51
-
52
- ### Bulk export for analysis (`gemiterm` skill)
64
+ ### 📦 Bulk export for offline analysis
53
65
 
54
66
  > **You:** "Export all my recent Gemini chats so I can grep through them."
55
67
 
56
- Agent loads the `gemiterm` skill, then:
68
+ Agent lists and exports chats in parallel:
57
69
 
58
- ```bash
59
- gemiterm list --limit 20 --sort recent --format json
60
- gemiterm export-all --output ./gemini-exports --format md --parallel 4
70
+ ```
71
+ Exported 18 chats to ./gemini-exports/ in Markdown. Search with: grep -r "topic" ./gemini-exports/
61
72
  ```
62
73
 
63
- **Agent:** "Exported 18 chats to `./gemini-exports/` in Markdown. You can search them with `grep -r "topic" ./gemini-exports/`."
64
-
65
- ---
66
-
67
- ### Structured debate with Gemini (`debate-with-gemini` skill)
74
+ ### 🗣️ Structured debate with Gemini
68
75
 
69
76
  > **You:** "Debate Gemini for/against using SQLite as the primary database for a SaaS app. Context: docs/arch.md. 5 turns."
70
77
 
71
- Agent loads both skills, verifies auth, reads context, seeds a new Gemini chat with the opposing stance, and spawns a subagent that runs 5 rounds of back-and-forth autonomously.
72
-
73
- **Agent:** "Debate complete (5 turns). Gemini argued **for** SQLite (simplicity, zero-config, adequate for early-stage). I argued **against** (concurrency limits, no network access, scaling ceiling). Key agreements: fine for prototyping, migrate to Postgres before 100+ concurrent users. Full transcript saved via `gemiterm export`."
78
+ Agent reads your context, seeds a new Gemini chat with the opposing stance, and runs 5 rounds of autonomous back-and-forth:
74
79
 
75
- ---
80
+ ```
81
+ Debate complete (5 turns). Gemini argued FOR SQLite (simplicity, zero-config).
82
+ I argued AGAINST (concurrency limits, no network access, scaling ceiling).
83
+ Key agreements: fine for prototyping, migrate to Postgres before 100+ concurrent users.
84
+ ```
76
85
 
77
- ### Continue a previous debate (`debate-with-gemini` skill)
86
+ ### 🔄 Continue a previous debate
78
87
 
79
88
  > **You:** "Continue that SQLite debate for 3 more turns. Here's the chat_id: c_abc123."
80
89
 
81
- Agent loads the `debate-with-gemini` skill, fetches the existing chat to resume context, and picks up where the last round left off.
82
-
83
- **Agent:** "Resumed debate on chat `c_abc123`. Ran 3 additional turns. Gemini conceded on the replication point but raised WAL-mode mitigations. Updated debate report ready."
84
-
85
- ## Requirements
86
-
87
- | | Component | Notes |
88
- | --- | --- | --- |
89
- | **Runtime** | [`gemiterm`](https://github.com/Expert-Vision-Software/gemiterm) CLI | Must be installed and authenticated. Both bundled skills depend on it. |
90
- | **Optional** | Bun `>=1.0.0` | Required only for the CLI installer (`bunx opencode-gemiterm-skills install`) and the test suite (`bun test`). |
91
-
92
- ## Troubleshooting
90
+ Agent picks up exactly where the last round left off:
93
91
 
94
- | Symptom | Likely cause | Fix |
95
- | --- | --- | --- |
96
- | Skill not in `<available_skills>` list | Not installed yet | Run `bunx opencode-gemiterm-skills install` (or `--scope global`) |
97
- | Skill not in `<available_skills>` list after install | `gemiterm` auth expired or incomplete | Run `gemiterm status` and re-authenticate if needed |
98
- | `bunx opencode-gemiterm-skills` not found | Bun `<1.0.0` or package not in PATH | Ensure Bun `>=1.0.0` is installed; try `npx opencode-gemiterm-skills` as fallback |
99
-
100
- ## Install (file:// reference)
101
-
102
- For local development against a checkout of this repo, reference the package directory directly from the consumer's `opencode.json`:
103
-
104
- ```json
105
- {
106
- "$schema": "https://opencode.ai/config.json",
107
- "plugins": [
108
- "file:///absolute/path/to/opencode-gemiterm-skills"
109
- ]
110
- }
111
92
  ```
112
-
113
- This skips the npm install. OpenCode will auto-install skills from the local checkout on first load.
114
-
115
- ## File layout
116
-
117
- ```
118
- opencode-gemiterm-skills/
119
- ├── .opencode/
120
- │ └── opencode.json # self-config: skills.paths + permission.skill
121
- ├── assets/
122
- │ └── skills/
123
- │ ├── gemiterm/
124
- │ │ ├── SKILL.md
125
- │ │ └── REFERENCE.md
126
- │ └── debate-with-gemini/
127
- │ ├── SKILL.md
128
- │ └── REFERENCE.md
129
- ├── src/
130
- │ ├── cli.ts # CLI entry: install / uninstall / status
131
- │ ├── commands/
132
- │ │ ├── install.ts
133
- │ │ ├── uninstall.ts
134
- │ │ └── status.ts
135
- │ └── installer.ts # core install logic
136
- ├── tests/
137
- │ └── skills.test.ts # smoke test
138
- ├── .gitignore
139
- ├── AGENTS.md
140
- ├── CHANGELOG.md
141
- ├── LICENSE
142
- ├── README.md
143
- ├── index.ts # module entry: re-exports plugin.ts
144
- ├── package.json
145
- ├── plugin.ts # plugin entry with config hook (auto-install on load)
146
- └── tsconfig.json
93
+ Resumed debate on chat c_abc123. Ran 3 additional turns.
94
+ Gemini conceded on the replication point but raised WAL-mode mitigations.
147
95
  ```
148
96
 
149
- ## How it works
150
-
151
- ### Install command
152
-
153
- `bunx opencode-gemiterm-skills install` copies skill files to the target `skills/` directory and registers the package in `opencode.json`:
154
-
155
- - **Local** (default): copies to `{project}/.opencode/skills/{gemiterm,debate-with-gemini}/` and updates `{project}/.opencode/opencode.json`
156
- - **Global**: copies to `~/.config/opencode/skills/{gemiterm,debate-with-gemini}/` and updates `~/.config/opencode/opencode.json`
157
-
158
- It also pre-grants `permission.skill: "allow"` for both skills and writes a `.version` marker to skip re-install on subsequent loads.
97
+ ## Requirements
159
98
 
160
- ### Plugin auto-install
99
+ | Component | Notes |
100
+ |-----------|-------|
101
+ | **[gemiterm](https://github.com/Expert-Vision-Software/gemiterm) CLI** | Must be installed and authenticated. Both skills depend on it. |
102
+ | **Google Account** | Required for gemini web. Expiring cookie is stored locally only. |
161
103
 
162
- When OpenCode loads the package via `opencode.json` plugins array, `plugin.ts` runs the same (local) install logic with a version-marker check — so the package auto-installs skills on first use if not already installed.
104
+ ## Installation
163
105
 
164
- ### CLI commands
106
+ ### CLI install (any agent)
165
107
 
166
- | Command | Description |
167
- | --- | --- |
168
- | `bunx opencode-gemiterm-skills install` | Install skills locally (or `--scope global`) |
169
- | `bunx opencode-gemiterm-skills uninstall` | Remove installed skills |
170
- | `bunx opencode-gemiterm-skills status` | Check install status and version |
108
+ ```bash
109
+ # Via bunx
110
+ bunx opencode-gemiterm-skills install
171
111
 
172
- `index.ts` is the module entry, a one-line re-export of `plugin.ts`.
112
+ # Via npx
113
+ npx opencode-gemiterm-skills install
114
+ ```
173
115
 
174
- ## Development
116
+ ### OpenCode plugin
175
117
 
176
- Run the test suite:
118
+ Add to your `opencode.json`:
177
119
 
178
- ```bash
179
- bun test
120
+ ```json
121
+ {
122
+ "plugins": ["opencode-gemiterm-skills"]
123
+ }
180
124
  ```
181
125
 
182
- The smoke test verifies:
126
+ ## Why this plugin?
183
127
 
184
- - Both `assets/skills/*/SKILL.md` files exist and parse as valid YAML frontmatter.
185
- - `name` matches the directory name.
186
- - `description` is non-empty and within the 1024-character limit.
187
- - The `metadata.requires: gemiterm` link on `debate-with-gemini` is preserved.
188
- - The `metadata.tool: gemiterm` link on `gemiterm` is preserved.
189
- - `.opencode/opencode.json` exists and registers at least one skill path.
190
- - `package.json` points `opencode.plugin` at `.opencode/opencode.json`.
191
-
192
- ## Notes for consumers
193
-
194
- - The `metadata.requires: gemiterm` field is preserved verbatim on `debate-with-gemini`. OpenCode does not enforce skill-to-skill dependencies — the agent must check `metadata.requires` and the prerequisites above before invoking `debate-with-gemini`.
195
- - The `metadata.tool`, `metadata.requires`, and `metadata.workflow` fields are stored under the `metadata` map (which OpenCode recognises). Sub-keys beyond `metadata` itself are not formally specified in the OpenCode skill schema, so they may be ignored by some agents — this package treats them as documentation only.
196
- - The CLI is exposed as `opencode-gemiterm-skills` via the `bin` field, implemented in `src/cli.ts`. Run it with `bunx opencode-gemiterm-skills` or `npx opencode-gemiterm-skills`.
128
+ - **No context switching** access your Gemini conversations without leaving your agent.
129
+ - **Zero-config debates** let your agent argue both sides of a technical decision with real Gemini responses.
130
+ - **Portable chat data** export Gemini history to Markdown for grep, archival, or feeding into other tools.
131
+ - **Lightweight** pure skill bundle, no runtime dependencies, loads on demand.
197
132
 
198
133
  ## Acknowledgments
199
134
 
200
135
  - [OpenCode](https://opencode.ai) — plugin architecture and skill loader
201
- - [Bun](https://bun.sh) — fast JS runtime used as the package's CLI host
202
- - [DeepWiki](https://deepwiki.com) — research and context tool for codebase exploration
203
-
204
- ## Publishing
205
-
206
- This package is published to npm as `opencode-gemiterm-skills`. To cut a new release:
136
+ - [gemiterm](https://github.com/Expert-Vision-Software/gemiterm) — underlying Gemini CLI
207
137
 
208
- ```bash
209
- npm version patch # or minor / major
210
- npm publish --access public
211
- ```
138
+ ---
212
139
 
213
- The `prepublishOnly` script runs `tsc --noEmit` and `bun test` before publishing.
140
+ <div align="center">
214
141
 
215
- ## License
142
+ **[📦 Install from npm](https://www.npmjs.com/package/opencode-gemiterm-skills)** · **[🤝 Contribute](CONTRIBUTING.md)** · **[📄 License](LICENSE)**
216
143
 
217
- MIT. See [LICENSE](LICENSE).
144
+ </div>
@@ -2,9 +2,9 @@
2
2
  name: debate-with-gemini
3
3
  description: Conduct structured multi-turn technical debates with Gemini AI via gemiterm CLI. Delegates a subagent to argue a position (for/against) autonomously for up to N turns. Use when user says "debate gemini", "argue with gemini", "have gemini defend/attack X", "continue debate", or wants a technical position stress-tested against Gemini. Triggers on: debate, argue, gemini, position, for/against, stress-test, counter-argument. Requires gemiterm CLI installed and authenticated.
4
4
  license: MIT
5
- compatibility: opencode
5
+ compatibility: opencode, claude-code, and any skill-compatible agent
6
6
  metadata:
7
- requires: gemiterm
7
+ tool: gemiterm
8
8
  workflow: debate
9
9
  ---
10
10
 
@@ -2,7 +2,7 @@
2
2
  name: gemiterm
3
3
  description: Google Gemini Terminal CLI wrapper for listing chats, fetching transcripts, exporting conversations, and managing profiles via the gemiterm Python CLI. Use when the user asks to read, list, export, or interact with Gemini chat history from a terminal, or invokes "gemiterm" commands.
4
4
  license: MIT
5
- compatibility: opencode
5
+ compatibility: opencode, claude-code, and any skill-compatible agent
6
6
  metadata:
7
7
  tool: gemiterm
8
8
  ---
package/package.json CHANGED
@@ -1,21 +1,22 @@
1
1
  {
2
2
  "name": "opencode-gemiterm-skills",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "type": "module",
5
5
  "module": "index.ts",
6
- "description": "OpenCode plugin bundling the gemiterm and debate-with-gemini skills.",
6
+ "description": "AI agent skills for Google Gemini — list, search, export Gemini chats and run structured debates with Gemini. Works with OpenCode, Claude Code, and any skill-compatible AI agent.",
7
7
  "license": "MIT",
8
8
  "publisher": "Expert Vision Software",
9
9
  "keywords": [
10
10
  "opencode",
11
11
  "opencode-plugin",
12
12
  "opencode-skills",
13
+ "agent-skills",
13
14
  "gemiterm",
14
15
  "gemini",
15
16
  "debate"
16
17
  ],
17
18
  "bin": {
18
- "opencode-gemiterm-skills": "./src/cli.ts"
19
+ "opencode-gemiterm-skills": "src/cli.ts"
19
20
  },
20
21
  "engines": {
21
22
  "bun": ">=1.0.0"
@@ -46,7 +47,7 @@
46
47
  },
47
48
  "repository": {
48
49
  "type": "git",
49
- "url": "https://github.com/Expert-Vision-Software/opencode-gemiterm-skills.git"
50
+ "url": "git+https://github.com/Expert-Vision-Software/opencode-gemiterm-skills.git"
50
51
  },
51
52
  "homepage": "https://github.com/Expert-Vision-Software/opencode-gemiterm-skills#readme",
52
53
  "bugs": {