Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ed Forum Ops Skill

A Codex skill for reading, searching, exporting, creating, editing, replying to, resolving, and deleting Ed Discussion forum threads and comments through your saved browser session.

This is the generic version (course-agnostic). It is the same skill that powers cs6300-forum for GT's CS6300 - just without the course id baked in.

What you get

  • SKILL.md - the skill instructions Codex reads
  • scripts/ed_forum_ops.py - the Python wrapper around Ed's API
  • references/endpoints.md - the Ed API reference
  • agents/openai.yaml - the skill manifest

No third-party Python dependencies. Stdlib only.

Install

The fastest path is the bundled skill-installer skill:

# In a Codex session
$skill-installer github.com/bmendonca3/ed-forum-ops-skill

Manual install (no Codex CLI):

mkdir -p ~/.codex/skills
git clone https://github.com/bmendonca3/ed-forum-ops-skill.git \
  ~/.codex/skills/ed-forum-ops

One-time setup: saved browser session

The skill authenticates as you by reusing a saved Ed login session. Generate it once with playwright:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://edstem.org/us/login")
    # ... complete SSO/email login, then:
    context.storage_state(path="storage_state.json")
    browser.close()

Then move the file into place:

mkdir -p ~/.edstem-handsfree
mv storage_state.json ~/.edstem-handsfree/storage_state.json
chmod 600 ~/.edstem-handsfree/storage_state.json

The session token is what authenticates you - keep this file private.

Usage

python3 ~/.codex/skills/ed-forum-ops/scripts/ed_forum_ops.py \
  list-threads --course-id YOUR_COURSE_ID --sort new

Other commands: get-thread, create-thread, edit-thread, delete-thread, add-comment, edit-comment, delete-comment, reply, accept, unaccept, star, watch, vote, search.

Run python3 ... ed_forum_ops.py --help for the full surface.

Tip: try commands on a test thread first. The skill supports direct Ed API operations, so a wrong target id can post, edit, or delete real content.

Finding your course id

Open Ed in your browser and navigate to the course. The URL looks like:

https://edstem.org/us/courses/COURSE_ID/...

The COURSE_ID segment is what you pass as --course-id.

Troubleshooting

  • "storage state not found" - the path is ~/.edstem-handsfree/storage_state.json. Re-run the playwright snippet above.
  • 401 / redirected to login - your session expired. Refresh storage_state.json.
  • Course id rejected - double-check the URL segment and that you are a member of that course.

Credits

Built by bmendonca3. Inspired by the cs6300-forum skill for GT CS6300.

About

Generic Ed Discussion forum skill for Codex - read, search, export, create, edit, reply, resolve, delete threads and comments via a saved browser session.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages