groupme
Use when a task touches GroupMe in any way - searching or reading group chats or DMs for historical reference ("what did the group chat say about X", "find…
Skill by alexjmiller5
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/alexjmiller5-groupme
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/groupme
What's inside
- Skill name
groupme- Description
- Use when a task touches GroupMe in any way - searching or reading group chats or DMs for historical reference ("what did the group chat say about X", "find the message about the refund", "which chat was that in"), listing groups or DM threads, or anything mentioning GroupMe or api.groupme.com. Load BEFORE calling the GroupMe API.
- License
- MIT
- Instructions
- 90 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (3)
- SKILL.md
- groupme · scripts/
- test_groupme.py · scripts/
SKILL.md (first lines)
# GroupMe - read and search chat history from the shell
GroupMe's official REST API (`https://api.groupme.com/v3`, the same one its
web app uses) serves full history for every group you are still in and every
DM thread, but it has no search endpoint, and neither does the web app.
`scripts/groupme` fills the gap: stdlib Python, GET requests only, NDJSON on
stdout, scan accounting on stderr. Searches run against a local archive
(below), so only the first search of a conversation is slow.
## Setup
- **Token:** sign in at dev.groupme.com (email or phone plus password, then
a one-time PIN by SMS), open the account menu > **Access token**, then
**Show**. Accounts that sign in with Microsoft, Apple or Google need a
GroupMe password first ("Forgot password"). The token has full account
access, including sending; the script only reads.
- Pass it as `GROUPME_TOKEN` for the command. A private companion skill, if
present, says where your setup keeps it.
- **First run on a machine: build the archive.** `$G sync all` pages every
group you are in into the archive. A 300,000-message account across 40
groups took about 30 minutes and 225 MB. Run it in the background (or as a launchd one-shot
where shells die after a few hours), and check whether it is finished
before you promise fast searches. It resumes where it stopped, so rerun it
after an interruption. After that, each search fetches only the newest
pages (well under a second) before querying locally.
## Commands
```bash
G="python3 ~/.claude/skills/groupme/scripts/groupme"
$G groups # {id,name,former,messages,last}: groups you are in, then groups you left
$G chats # DM threads; id is dm:<other_user_id>
$G search <conv> 'refund|reimburs' # case-insensitive regex over message text, newest first
$G search <conv> '' --from 'sam' # everything one sender wrote ('' matches all)
$G search all 'refund' --since 2024-01-01 # every group you are in; hits carry "group"
$G sync all # build or top up the archive for every group (sync <conv> for one)
$G history <conv> --before-id <msg> --limit 20 # context older than a hit (newest first)
$G history <conv> --after-id <msg> --limit 20 # context newer than a hit (oldest first, groups only)
```
`<conv>` is a group id, `dm:<user id>`, or a piece of a group's name that
matches exactly one group you are in (`'book club'`); an ambiguous
name exits listing the candidates. A message row is
`{id, at (UTC), name, text, likes, attachments}`.
## Working method
1. Name the conversation, or run `search all` when you don't know which
chat it was in.
2. Search with a broad regex (stems and synonyms: `refund|reimburs|venmo`).
People rarely use the word you expect, so pair a topic with a person
(`--from`) or a money word. The stderr line says how far back each scan
went; zero hits over the full history is a real negative, zero hits under
`--since` is not.
3. Read around each hit with `history --before-id` / `--after-id` before
answering. A single message rarely carries the whole story.
## The archive
`search` and `sync` keep a SQLite cache at `GROUPME_ARCHIVE` (default
`${XDG_CACHE_HOME:-~/.cache}/groupme/archive.sqlite`, owner-only): the raw
message JSON per conversation plus a backfill cursor. It is a cache, not a
record: delete it and the next search rebuilds it. Every search re-reads the
newest pages until one is fully archived, so new messages and changed likes
show up, but an edit deep in history only appears after a rebuild.
`history` always reads live.
## Where it works and where it doesn't
| Need | Status |
|---|---|
| Groups you are in, full history | Works, back to the group's first message |
| DM threads | Works (20 per page, so long threads are slower) |
| Groups you left | `groups` lists them, but their messages answer HTTP 404. Rejoin in the app, or use GroupMe's data export |
| Big groups | The first search or sync pages the whole history: 1,000 requests and about 15 minutes per 100,000 messages. After that, searches take under a second |
| Search across everything | `search all` over 300,000 archived messages takes about 8 seconds, mostly the per-group refresh |
| Images, polls, events | Only image and file URLs and reply ids show in `attachments`; poll and event bodies are not searched |
| Topics (subgroups) | Not searched (`/groups/<id>/subgroups` lists them) |
| Sending, liking, reactions | Deliberately absent: posting is outward-facing |
GroupMe's own data export (Settings > Export Data) emails a zip of every
conversation as JSON. Use it for bulk analysis or for groups you left.
## Gotchas
- HTTP 429 backs off and retries three times, then exits.
- Group names change and repeat, so resolve them each time.
- Message ids are not strictly ordered by time; trust `at`, not id order.From alexjmiller5/agent-config-public, MIT.
More from alexjmiller5/agent-config-public
- 0.570score
language-selection
alexjmiller5
Use when choosing a programming language or app stack, comparing Go, Rust, Zig or other languages, starting a new app whose stack is undecided, or proposing a…
SkillAFreshness: AClaude Code +9 - 0.570score
forge-skill
alexjmiller5
Use when creating, rewriting or improving an agent skill (a SKILL.md) - "make a skill for X", "turn this workflow into a skill", "improve this skill", "this…
SkillAFreshness: AClaude Code +9 - 0.570score
bug-hunt
alexjmiller5
Use when asked to bug-hunt, dogfood, exploratory-test, or check a website for broken interactions and responsive UI problems, especially without an existing…
SkillAFreshness: AClaude Code +9 - 0.567score
apple-contacts
alexjmiller5
Read, search, create, update, or delete Apple Contacts (Contacts.app / iCloud address book) from the shell on macOS, including bulk exports and importing…
SkillAFreshness: AClaude Code +9 - 0.566score
cherri
alexjmiller5
The Cherri programming language - write, compile, and debug iOS Shortcuts as code (.cherri files).
SkillAFreshness: AClaude Code +9 - 0.565score
afk
alexjmiller5
Use when the user is leaving and wants work to continue without them - "I have to leave", "I'll be back in a few hours", "do as much as you can before you…
SkillAFreshness: AClaude Code +9 - 0.565score
discounts
alexjmiller5
Use when the user is about to buy something and wants it cheaper - "find a discount", "promo code for X", "any deals on this", "can I get this cheaper"…
SkillAFreshness: AClaude Code +9 - 0.565score
herdr-crew
alexjmiller5
Use when one agent should coordinate other coding agents in Herdr tabs - dispatching a batch of tasks to parallel agents the user can watch, monitoring them…
SkillAFreshness: AClaude Code +9 - 0.565score
icons
alexjmiller5
the user's icon standard - which set to use for every icon job (mono UI, colorful/object, brand logos), all delivered via Iconify URLs, plus the one design…
SkillAFreshness: AClaude Code +9 - 0.565score
mac-control
alexjmiller5
See and drive a Mac's screen from a shell - screenshots, accessibility tree, clicking, typing, key presses, dismissing dialogs - locally or on a…
SkillAFreshness: AClaude Code +9 - 0.565score
coordinator
alexjmiller5
Use when an agent is dispatched as the coordinator of a batch of tasks - a high-capability model that reads, designs, decides and reviews, and hands…
SkillAFreshness: AClaude Code +9 - 0.560score
apple-dev
alexjmiller5
Build, run, test, verify and install iOS and macOS apps as an agent - the just verbs of the Apple templates, the verification ladder (unit tests, SwiftUI…
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 13, 2026 (15 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from alexjmiller5
- 0.570score
language-selection
alexjmiller5
Use when choosing a programming language or app stack, comparing Go, Rust, Zig or other languages, starting a new app whose stack is undecided, or proposing a…
SkillAFreshness: AClaude Code +9 - 0.570score
bug-hunt
alexjmiller5
Use when asked to bug-hunt, dogfood, exploratory-test, or check a website for broken interactions and responsive UI problems, especially without an existing…
SkillAFreshness: AClaude Code +9 - 0.570score
forge-skill
alexjmiller5
Use when creating, rewriting or improving an agent skill (a SKILL.md) - "make a skill for X", "turn this workflow into a skill", "improve this skill", "this…
SkillAFreshness: AClaude Code +9 - 0.567score
apple-contacts
alexjmiller5
Read, search, create, update, or delete Apple Contacts (Contacts.app / iCloud address book) from the shell on macOS, including bulk exports and importing…
SkillAFreshness: AClaude Code +9 - 0.566score
cherri
alexjmiller5
The Cherri programming language - write, compile, and debug iOS Shortcuts as code (.cherri files).
SkillAFreshness: AClaude Code +9 - 0.565score
mac-control
alexjmiller5
See and drive a Mac's screen from a shell - screenshots, accessibility tree, clicking, typing, key presses, dismissing dialogs - locally or on a…
SkillAFreshness: AClaude Code +9
Cite this page
groupme skill. Agent Mart. https://agentmart.dev/skills/alexjmiller5-groupme (last updated 2026-10-24)