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 +14 -0
- package/README.md +81 -154
- package/assets/skills/debate-with-gemini/SKILL.md +2 -2
- package/assets/skills/gemiterm/SKILL.md +1 -1
- package/package.json +5 -4
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
|
[](https://opencode.ai)
|
|
4
15
|
[](https://www.npmjs.com/package/opencode-gemiterm-skills)
|
|
5
16
|
[](LICENSE)
|
|
6
17
|
|
|
7
|
-
|
|
18
|
+
[Quick Start](#quick-start) · [Skills](#bundled-skills) · [Examples](#examples) · [Requirements](#requirements) · [Contributing](CONTRIBUTING.md)
|
|
19
|
+
|
|
20
|
+
</div>
|
|
8
21
|
|
|
9
|
-
|
|
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 |
|
|
14
|
-
|
|
15
|
-
|
|
|
16
|
-
|
|
|
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
|
|
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
|
|
24
|
-
bunx opencode-gemiterm-skills install
|
|
40
|
+
# Install skills via bunx
|
|
41
|
+
bunx opencode-gemiterm-skills install [--scope global]
|
|
25
42
|
|
|
26
|
-
# Or
|
|
27
|
-
|
|
28
|
-
```
|
|
43
|
+
# Or with npx
|
|
44
|
+
npx opencode-gemiterm-skills install [--scope global]
|
|
29
45
|
|
|
30
|
-
|
|
46
|
+
# Or skills.sh
|
|
47
|
+
npx skills add expert-vision-software/opencode-gemiterm-skills --skill [gemiterm/debate-with-gemini]
|
|
48
|
+
```
|
|
31
49
|
|
|
32
|
-
|
|
50
|
+
That's it — skills are available immediately.
|
|
33
51
|
|
|
34
|
-
##
|
|
52
|
+
## Examples
|
|
35
53
|
|
|
36
|
-
###
|
|
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,
|
|
58
|
+
Agent loads the `gemiterm` skill, searches your Gemini history, and exports matches:
|
|
41
59
|
|
|
42
|
-
```
|
|
43
|
-
|
|
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
|
-
|
|
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
|
|
68
|
+
Agent lists and exports chats in parallel:
|
|
57
69
|
|
|
58
|
-
```
|
|
59
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
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
|
-
|
|
104
|
+
## Installation
|
|
163
105
|
|
|
164
|
-
### CLI
|
|
106
|
+
### CLI install (any agent)
|
|
165
107
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
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
|
-
|
|
112
|
+
# Via npx
|
|
113
|
+
npx opencode-gemiterm-skills install
|
|
114
|
+
```
|
|
173
115
|
|
|
174
|
-
|
|
116
|
+
### OpenCode plugin
|
|
175
117
|
|
|
176
|
-
|
|
118
|
+
Add to your `opencode.json`:
|
|
177
119
|
|
|
178
|
-
```
|
|
179
|
-
|
|
120
|
+
```json
|
|
121
|
+
{
|
|
122
|
+
"plugins": ["opencode-gemiterm-skills"]
|
|
123
|
+
}
|
|
180
124
|
```
|
|
181
125
|
|
|
182
|
-
|
|
126
|
+
## Why this plugin?
|
|
183
127
|
|
|
184
|
-
-
|
|
185
|
-
-
|
|
186
|
-
-
|
|
187
|
-
-
|
|
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
|
-
- [
|
|
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
|
-
|
|
209
|
-
npm version patch # or minor / major
|
|
210
|
-
npm publish --access public
|
|
211
|
-
```
|
|
138
|
+
---
|
|
212
139
|
|
|
213
|
-
|
|
140
|
+
<div align="center">
|
|
214
141
|
|
|
215
|
-
|
|
142
|
+
**[📦 Install from npm](https://www.npmjs.com/package/opencode-gemiterm-skills)** · **[🤝 Contribute](CONTRIBUTING.md)** · **[📄 License](LICENSE)**
|
|
216
143
|
|
|
217
|
-
|
|
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
|
-
|
|
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.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"module": "index.ts",
|
|
6
|
-
"description": "
|
|
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": "
|
|
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": {
|