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/edgevector-exemem-credentials
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, testing
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
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/exemem-credentials
What's inside
- Skill name
exemem-credentials- Description
- Mint Exemem invites. Preferred: a shareable join link (https://exemem.com/join/<token>) via the authenticated POST /api/invite/link endpoint — the link you hand to a person. Fallback: a raw EXM-XXXX-XXXX invite code written straight to DynamoDB for offline dogfooding/testing. Use when asked to "create an exemem invite link/code", "invite a friend to exemem", "generate an invite", "make a dogfood code", "create exemem credentials", or "I need an invite for prod/dev".
- License
- MIT
- Instructions
- 147 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Agent Skills spec issues
- allowed-tools: must be a space-separated string
Files (1)
- SKILL.md
SKILL.md (first lines)
# Exemem credentials
Mint an Exemem invite. There are two outputs you might want:
1. **A shareable join link** (`https://exemem.com/join/<token>`) — the
default, human-friendly output. This is what you hand to a person: they
click it, land on the `/join` page, and sign up. Mint these via the
authenticated `POST /api/invite/link` endpoint (see **Mint a shareable
join link** below). Prefer this whenever you have a session token.
2. **A raw `EXM-XXXX-XXXX` code** — the offline / dogfooding fallback,
written straight to DynamoDB. Use this only when you have no session token
(no portal login) and need a redeemable code right now (see **Raw code,
direct DynamoDB (fallback)** below).
> **Default to the link.** Tom's core ask is "create a link that goes to
> exemem that they can send to someone, rather than just showing the invite
> code." Print the `join_url` as the primary output; only fall back to the
> raw-code path when you genuinely can't authenticate.
## Mint a shareable join link (preferred)
`POST /api/invite/link` is authenticated (Bearer session token, same as the
developer API-key CRUD). It mints a real redeemable invite code under the
hood, stores a link row, and returns a ready-to-send URL.
| Env | API base |
|------|--------------------------------------------------------|
| dev | `https://ygyu7ritx8.execute-api.us-west-2.amazonaws.com` |
| prod | `https://exemem.com` |
You need an Exemem **session token** (from a passkey login). If you have a
portal browser session, it's in `localStorage.exemem_session_token`. Export it
as `EXEMEM_SESSION_TOKEN`.
```bash
ENV="${1:-prod}"
case "$ENV" in
dev) API="https://ygyu7ritx8.execute-api.us-west-2.amazonaws.com" ;;
prod) API="https://exemem.com" ;;
*) echo "ENV must be dev or prod"; exit 1 ;;
esac
: "${EXEMEM_SESSION_TOKEN:?set EXEMEM_SESSION_TOKEN (passkey session token)}"
# Optional: who's inviting (feeds the /join page's "invited by" card).
SENDER_NAME="${SENDER_NAME:-}"
CONTACT_HINT="${CONTACT_HINT:-}"
curl -fsS -X POST "$API/api/invite/link" \
-H "Authorization: Bearer $EXEMEM_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"sender_name\":\"$SENDER_NAME\",\"sender_contact_hint\":\"$CONTACT_HINT\"}"
# => {"ok":true,"token":"...","code":"EXM-XXXX-XXXX","join_url":"https://exemem.com/join/<token>","expires_at":...}
```
Hand the `join_url` to the recipient. The `code` in the response is the same
redeemable code (useful as a fallback if they can't open the link).
> The mint endpoint is implemented in `auth_service`
> (`fold/exemem_service/lambdas/auth_service/src/invite_links/`). If it returns
> `404`, that environment hasn't been deployed with the invite-link backend
> yet — use the raw-code fallback below until it ships.
## Raw code, direct DynamoDB (fallback)
When you have no session token (offline dogfooding, no portal login), write a
raw code straight into the `ExememInviteCodes-{env}` table. The auth_service
redeem path looks up the item by `code` and only checks
`attribute_exists(code) AND attribute_not_exists(redeemed_by)` — but the item
must use the schema written by `create_code`, otherwise some downstream paths
(listing, expiry sweeps) misbehave.
## Environments
| Env | Region | Table |
|------|-----------|--------------------------|
| dev | us-west-2 | `ExememInviteCodes-dev` |
| prod | us-east-1 | `ExememInviteCodes-prod` |
If the env isn't specified, ask before writing to prod.
## Code format
`EXM-XXXX-XXXX` where `X ∈ [A-HJ-KMNP-Z2-9]` (uppercase, excludes `0 1 I L O`
to avoid visual ambiguity). Match this format exactly — non-`EXM-` prefixes
or lowercase will be rejected by users / portal validators downstream.
## Required item schema
The auth_service writes items with these fields (see
[stores.rs:24-37](../../code/edgevector/exemem-infra/lambdas/auth_service/src/invite_codes/stores.rs)).
Match this schema; do **not** add `max_uses`, `used_count`, or `active` —
those are not part of the contract.
| Attribute | Type | Value |
|---------------------|------|---------------------------------------|
| `code` | S | `EXM-XXXX-XXXX` |
| `creator_user_hash` | S | identifier of who created it |
| `created_at` | S | RFC3339 (`date -u +%Y-%m-%dT%H:%M:%SZ`) |
| `expires_at` | N | unix epoch — table TTL drops past this |
## One-shot generator
```bash
ENV="${1:-prod}" # dev | prod
case "$ENV" in
dev) REGION=us-west-2; TABLE=ExememInviteCodes-dev ;;
prod) REGION=us-east-1; TABLE=ExememInviteCodes-prod ;;
*) echo "ENV must be dev or prod"; exit 1 ;;
esac
CODE="EXM-$(LC_ALL=C tr -dc 'A-HJ-KMNP-Z2-9' </dev/urandom | head -c4)-$(LC_ALL=C tr -dc 'A-HJ-KMNP-Z2-9' </dev/urandom | head -c4)"
EXPIRES_AT=$(($(date +%s) + 30*24*3600)) # 30 days
CREATED_AT=$(date -u +%Y-%m-%dT%H:%M:%SZ)
CREATOR="${USER:-manual}-manual"
aws dynamodb put-item \
--table-name "$TABLE" \
--item "{\"code\":{\"S\":\"$CODE\"},\"creator_user_hash\":{\"S\":\"$CREATOR\"},\"created_at\":{\"S\":\"$CREATED_AT\"},\"expires_at\":{\"N\":\"$EXPIRES_AT\"}}" \
--region "$REGION"From EdgeVector/last-stack, MIT.
More from EdgeVector/last-stack
- 0.565score
kanban
EdgeVector
Manage the kanban board — a kanban over LastDB.
SkillAFreshness: AClaude Code +9 - 0.565score
kanban-metrics-dashboard
EdgeVector
Build or refresh an ad-hoc metrics/benchmark view over kanban or LastDB ops data — velocity, throughput, write-timeout benchmarks, board-column funnels…
SkillAFreshness: AClaude Code +9 - 0.565score
board-closeout
EdgeVector
Drain stuck kanban doing cards — merged PRs/CRs to done, true zombies to todo — via the zero-LLM last-stack-board-closeout-sweep.
SkillAFreshness: AClaude Code +9 - 0.565score
factory-health
EdgeVector
Hourly Kanban Factory health check — ship rate, todo depth, doing age vs baselines; ra notify Tom when out of band.
SkillAFreshness: AClaude Code +9 - 0.560score
fix-it
EdgeVector
Find and land the permanent fix for a defect, papercut, failing signal, or leftover temporary repair.
SkillAFreshness: AClaude Code +9 - 0.560score
app-identity-dogfood
EdgeVector
Run the App Identity app-creation flow end-to-end against the DEV environment, autonomously.
SkillAFreshness: AClaude Code +9 - 0.560score
brain-doctor
EdgeVector
Read-only triage of the LastDB brain (Tom's primary brain/kanban daily-driver node — the desktop fold-app process or Mini daemon, reached over the Unix socket…
SkillAFreshness: AClaude Code +9 - 0.560score
diagram
EdgeVector
Draw a diagram in Tom's preferred style — technical black-and-white line drawings (thin uniform geometric strokes, hatch for solid/stored things, dimension…
SkillAFreshness: AClaude Code +9 - 0.551score
kanban-agent
EdgeVector
Drive a single kanban card all the way to a MERGED PR — a card only reaches `done` when its code is actually in the repo and its outcome is proven.
SkillAFreshness: AClaude Code +9 - 0.551score
close-out
EdgeVector
Run the full close-out loop after finishing a substantive change — worktree PR + auto-merge, file session papercuts, write a full brain report of what was…
SkillAFreshness: AClaude Code +9 - 0.524score
kanban-grooming
EdgeVector
Use when auditing or grooming Kanban board health: dependency-stub reconciliation, stale generated blockers, malformed Repo/Base/Kind headers, stale…
SkillBFreshness: BClaude Code +9 - 0.524score
last-stack-machine-leak-scan
EdgeVector
Scan Last Stack for host-machine identity leaks (usernames, home paths, emails, private IPs) that must not ship in the public installable product.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jul 16, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/EdgeVector/last-stack
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from EdgeVector
- 0.565score
board-closeout
EdgeVector
Drain stuck kanban doing cards — merged PRs/CRs to done, true zombies to todo — via the zero-LLM last-stack-board-closeout-sweep.
SkillAFreshness: AClaude Code +9 - 0.565score
kanban-metrics-dashboard
EdgeVector
Build or refresh an ad-hoc metrics/benchmark view over kanban or LastDB ops data — velocity, throughput, write-timeout benchmarks, board-column funnels…
SkillAFreshness: AClaude Code +9 - 0.565score
factory-health
EdgeVector
Hourly Kanban Factory health check — ship rate, todo depth, doing age vs baselines; ra notify Tom when out of band.
SkillAFreshness: AClaude Code +9 - 0.565score
kanban
EdgeVector
Manage the kanban board — a kanban over LastDB.
SkillAFreshness: AClaude Code +9 - 0.560score
fix-it
EdgeVector
Find and land the permanent fix for a defect, papercut, failing signal, or leftover temporary repair.
SkillAFreshness: AClaude Code +9 - 0.560score
app-identity-dogfood
EdgeVector
Run the App Identity app-creation flow end-to-end against the DEV environment, autonomously.
SkillAFreshness: AClaude Code +9
Cite this page
exemem-credentials skill. Agent Mart. https://agentmart.dev/skills/edgevector-exemem-credentials (last updated 2026-10-24)