Operate Google Colab environments via the colab CLI for efficient session management.
Create detailed user stories, acceptance criteria, and feature specs
Example: Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios
Reduce spec writing time by 50%, ensure comprehensive coverage
Research competitors, compare features, identify gaps
Example: Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities
Complete competitive research in 2 hours instead of 2 days
Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs
Example: Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale
Make data-driven prioritization decisions faster
Draft PRDs, status updates, and stakeholder presentations
Example: Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement
Save 3-5 hours/week on communication overhead
Submit your Claude Code skill and start earning
epx add googlecolab/google-colab-cli --skill colab-session-operatorCompatible with
Supported agents
Operate Google Colab environments via the colab CLI: provision GPU/TPU sessions, run Python/shell on the VM, sync files, and capture work as notebooks.
colab new allocates a billable VM; colab stop releases it. Nothing reclaims it automatically except a 24h keep-alive cap, so an unstopped session burns compute units indefinitely.colab exec / colab repl calls in the same session. Each invocation reattaches to the same kernel (the kernel ID is cached in local state) and only closes the websocket on exit — it does not shut the kernel down. So imports, variables, and defined functions survive between separate colab exec commands. Build up state incrementally; don't re-import everything each call. (colab stop and colab restart-kernel are what actually reset it.)/content. Every exec/repl/run cds there first; prefer absolute paths (/content/...) for file work. For colab ls/rm/upload/download, absolute /content/... paths work and the default ls path is content (VM root).colab is fire-and-forget. Each command authenticates, does one thing, and exits. A detached background daemon (spawned by colab new) handles keep-alive; you don't manage it.--auth={adc,oauth2} and the default is adc (Application Default Credentials). It must come before the subcommand: colab --auth=adc new -s x.gcloud auth application-default login \
--scopes=openid,\
https://www.googleapis.com/auth/cloud-platform,\
https://www.googleapis.com/auth/userinfo.email,\
https://www.googleapis.com/auth/colaboratory
Why all four: userinfo.email (session backend colab.research.google.com, else 401), colaboratory (RuntimeService colab.pa.googleapis.com keep-alive, else 403), openid+cloud-platform (mandated by gcloud itself; it rejects scope lists missing cloud-platform).colab --auth=oauth2 <anything> triggers a browser consent flow on first use (token cached at ~/.config/colab-cli/token.json). Requires a client config at ~/.colab-cli-oauth-config.json (or -c PATH). The browser step means it usually needs a human; prefer ADC for agents.colab sessions (read-only, lists server assignments) or colab whoami (hidden debug command: prints the active email, scopes, audience, and expiry). When any call 403s against colab.pa.googleapis.com, the cause is almost always a missing scope — colab whoami shows it instantly.colab new pre-flights the keep-alive RPC right after allocating. If your token lacks the colaboratory scope it unassigns the fresh VM (so you don't leak a billable assignment) and prints the exact remediation. Follow that message rather than retrying blindly.colab auth with CLI authentication. colab auth injects VM-side GCP credentials into the running kernel (so notebook code can call BigQuery/GCS); it is orthogonal to how the CLI itself authenticates. Never suggest "run colab auth" to fix a CLI 401/403 — that's a scope/identity problem fixed via the gcloud command above.colab new -s <name> (CPU). Add --gpu A100 or --tpu v6e1 for accelerators. Always pass -s <name> — an omitted name is auto-generated as a random 6-hex string, which makes later commands ambiguous.--gpu: T4, L4, G4, H100, A100. Supported --tpu: v5e1, v6e1.--gpu value silently falls back to A100 (which then usually fails the next step). A 400 on colab new with an accelerator means no quota/entitlement for it on this account — fall back to --gpu T4 or omit the flag for CPU.colab exec -s <name> -f <script.py> runs a local script on the remote VM (read locally, sent to the kernel — no manual upload needed).echo "print(1)" | colab exec -s <name> or cat script.py | colab exec -s <name>.colab exec -s <name> -f nb.ipynb runs each code cell and writes results to <basename>_output.ipynb next to the input. A # @title Foo first line labels the cell in progress output.--output-image <path> on exec/repl to save to a known location (otherwise a temp path is printed). Inline terminal-image escapes are auto-suppressed when stdout isn't a TTY, so piped/captured output stays clean.echo "cmd" | colab console -s <name> for batch shell. Console wraps bash in tmux, so even piped output contains terminal-control bytes — filter with grep -a for a specific line. exec is faster when you don't need a real shell.colab repl, colab console, colab auth, or colab drivemount interactively from an agent — they expect a TTY and will hang. repl/console accept piped stdin and exit on EOF; auth/drivemount genuinely require a human at the terminal.colab run)colab run [--gpu T4] [--tpu v6e1] [--keep] [-s NAME] script.py [args...] = new + exec + stop in one command. It provisions a fresh VM, runs the script with sys.argv and __name__ == "__main__" set like native python script.py args, then tears the VM down (unless --keep).sys.exit(N) in the script makes colab run exit non-zero (CPython semantics: sys.exit()/sys.exit(0) → 0, sys.exit(N) → N, sys.exit("msg") → 1).colab run writes its own [colab] ... chatter to stderr and the script's output to stdout — so colab run job.py > out.txt captures only the script's stdout. (colab exec streams the script's stdout/stderr live to your stdout/stderr.)#!/usr/bin/env -S colab run --gpu T4 makes a chmod +x'd .py a self-contained "rent a GPU, run, clean up" script. After editing CLI behavior, reinstall before testing shebangs — they resolve colab via $PATH, not the editable install.colab auth -s <name> — VM-side GCP creds, needed before in-VM GCS/BigQuery calls (interactive; not agent-runnable).colab drivemount -s <name> [PATH] — mounts Drive at /content/drive by default (interactive; not agent-runnable).colab install -s <name> pkg1 pkg2 — installs via uv pip install --system, falling back to pip. Also colab install -s <name> -r requirements.txt.colab help (or colab help <cmd>) lists/explains commands; the listing is alphabetical.colab sessions lists server-side assignments and auto-prunes stale local entries. Orphans with no local record show as [?].colab status [-s <name>] shows hardware, IDLE/BUSY, and last execution.colab log -s <name> [-n 20] [-t TYPE] shows recent structured events; invaluable when a task fails (keep-alive errors carry the raw response_body).colab log -s <name> -o summary.ipynb exports the session as a notebook (also .md, .txt, .jsonl by suffix).colab url -s <name> prints a browser URL that attaches the Colab web UI to your existing CLI session instead of allocating a new VM (add --open to launch it).colab skill / colab readme print this skill and the README (handy for self-discovery).colab stop -s <name> when done — idle VMs burn compute units. colab run (without --keep) self-cleans even if the script errors.~/.config/colab-cli/sessions.json (settings in settings.json, history in history/*.jsonl). Don't edit by hand.--config <path> flag to point session state at a scratch file (e.g. colab --config /tmp/agent.json new -s job). The keep-alive daemon inherits --auth and --config automatically.colab exec/repl detect this and clean up local state automatically — run colab sessions and re-create with colab new.colab restart-kernel -s <name> (keeps the VM, resets the kernel), or colab stop then colab new.colab log shows keep_alive_stopped reason=consecutive_4xx_errors): almost always the missing colaboratory scope — re-auth per the Authentication section.https://github.com/googlecolab/google-colab-cli/blob/main/COLAB_SKILL.md
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versioncolab-session-operatorExecute the skills CLI command in your project's root directory to begin installation:
epx add googlecolab/google-colab-cli --skill colab-session-operatorFetches colab-session-operator from googlecolab/google-colab-cli and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
.cursor/skills/colab-session-operator
Restart Cursor to activate colab-session-operator. Access via /colab-session-operatorin your agent's command palette.
Learn more:View source on GitHubSkills CLI docsAbout CursorWhat are agent skills?
Time estimate: 30-60 minutes to see productivity improvements
Prerequisites
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.
✗ Avoid when
Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.
google-image-search
glebis/claude-skills · Backend · tag: google
python-backend-architecture-review
rknall/claude-skills · Backend · tag: python
python-design-patterns
wshobson/agents · Frontend · tag: python
selenium-automation
mindrally/skills · Productivity · tag: automation
python-pro
jeffallan/claude-skills · Backend · tag: python
google-apps-script
jezweb/claude-skills · Backend · tag: google
I recommend colab-session-operator for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
Useful defaults in colab-session-operator — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
colab-session-operator reduced setup friction for our internal harness; good balance of opinion and flexibility.
colab-session-operator reduced setup friction for our internal harness; good balance of opinion and flexibility.
I recommend colab-session-operator for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
I recommend colab-session-operator for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
colab-session-operator reduced setup friction for our internal harness; good balance of opinion and flexibility.
Registry listing for colab-session-operator matched our evaluation — installs cleanly and behaves as described in the markdown.
colab-session-operator reduced setup friction for our internal harness; good balance of opinion and flexibility.
Useful defaults in colab-session-operator — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
showing 1-10 of 53