English | δΈζ | νκ΅μ΄ | ζ₯ζ¬θͺ
"Every great professor needs a great teaching assistant."
Gyoshu (κ΅μ, Professor) orchestrates. Jogyo (μ‘°κ΅, Teaching Assistant) executes.
Together, they form an end-to-end research automation system for OpenCode that turns your research goals into reproducible Jupyter notebooksβcomplete with hypotheses, experiments, findings, and publication-ready reports.
| Agent | Role | Korean | What They Do |
|---|---|---|---|
| Gyoshu | π© Professor | κ΅μ | Plans research, orchestrates workflow, manages sessions |
| Jogyo | π Teaching Assistant | μ‘°κ΅ | Executes Python code, runs experiments, generates outputs |
| Baksa | π PhD Reviewer | λ°μ¬ | Adversarial verifier β challenges claims, calculates trust scores |
| Jogyo Paper Writer | βοΈ Grad Student | μ‘°κ΅ | Transforms raw findings into narrative research reports |
Think of it like a research lab:
- The Professor (Gyoshu) sets the research direction and reviews progress
- The TA (Jogyo) does the actual experiments and analysis
- The PhD Reviewer (Baksa) plays devil's advocate, questioning every claim
- When it's time to publish, a Grad Student writes up the findings beautifully
π¬ Demo coming soon! Try the Quick Tutorial to see Gyoshu in action.
- π¬ Hypothesis-Driven Research β Structure your work with
[OBJECTIVE],[HYPOTHESIS],[FINDING]markers - π Persistent Python REPL β Variables survive across sessions, just like a real Jupyter kernel
- π Auto-Generated Notebooks β Every experiment is captured as a reproducible
.ipynb - π€ Autonomous Mode β Set a goal, walk away, come back to results
- π Adversarial Verification β PhD reviewer challenges every claim before acceptance
- π― Two-Gate Completion β SUCCESS requires both evidence quality (Trust Gate) AND goal achievement (Goal Gate)
- π AI-Powered Reports β Turn messy outputs into polished research narratives
- π Session Management β Continue, replay, or branch your research anytime
Gyoshu works with Claude Code via the Model Context Protocol (MCP). Install in one command:
# Clone and build the MCP server
git clone https://github.com/Yeachan-Heo/My-Jogyo.git
cd My-Jogyo/src/mcp
npm install && npm run build
# Register with Claude Code
claude mcp add gyoshu-mcp "$(pwd)/build/index.cjs"Verify installation:
claude mcp list
# Should show: gyoshu-mcp: β ConnectedAvailable MCP Tools:
| Tool | Purpose |
|---|---|
python_repl |
Execute Python code with marker detection |
research_manager |
Create/manage research sessions |
gyoshu_snapshot |
Capture research state snapshots |
checkpoint_manager |
Save/restore research checkpoints |
notebook_writer |
Jupyter notebook operations |
notebook_search |
Search across notebooks |
Note: The MCP server exposes 12 research tools. See src/mcp/ for details.
Add Gyoshu to your opencode.json:
{
"plugin": ["gyoshu"]
}That's it! OpenCode will auto-install Gyoshu from npm on next startup.
# Using bunx (no global install needed)
bunx gyoshu install
# Or install globally first
npm install -g gyoshu
gyoshu installThe CLI automatically adds Gyoshu to your opencode.json.
π¦ Development installation (for contributors)
Clone & link locally:
git clone https://github.com/Yeachan-Heo/My-Jogyo.git
cd My-Jogyo && bun installThen in your opencode.json:
{
"plugin": ["file:///path/to/My-Jogyo"]
}Verify installation:
# Check status via CLI
bunx gyoshu check
# Or in OpenCode
opencode
/gyoshu doctorUsing Claude Code, OpenCode, or another AI coding assistant? This section is for you.
For Claude Code: Install the MCP server (Option 1 above). The tools are automatically available.
For OpenCode: Run bunx gyoshu install or add "gyoshu" to your plugin array. Then give your LLM the context it needs:
-
Point your LLM to the guide:
"Read
AGENTS.mdin the Gyoshu directory for full context on how to use the research tools." -
Or paste this quick start prompt:
I've installed Gyoshu. Read AGENTS.md and help me run /gyoshu to analyze my data.
Key commands your LLM should know:
| Command | What It Does |
|---|---|
/gyoshu |
Start interactive research |
/gyoshu-auto <goal> |
Autonomous research (hands-off) |
/gyoshu doctor |
Check system health and diagnose issues |
Tip: AGENTS.md contains everything an LLM needs β agents, commands, markers, troubleshooting, and more.
# Start OpenCode
opencode
# π Say hi to the Professor
/gyoshu
# π― Start a new research project
/gyoshu analyze customer churn patterns in the telecom dataset
# π€ Or let it run autonomously (hands-off!)
/gyoshu-auto classify iris species using random forest
# π Generate a report
/gyoshu report
# π Continue where you left off
/gyoshu continueReal-world example: Comprehensive exploratory data analysis of Binance USD-M futures data with multi-dimensional visualizations.
What it shows:
- 3D volume-price-time analysis
- Correlation heatmaps with dendrograms
- Rolling statistics and volatility surfaces
- Cross-pair scatter density plots
- Performance radar charts and candlestick analysis
# Binance futures analysis (API or local data)
/gyoshu-auto perform comprehensive EDA on binance futures data
# Titanic classification (classic ML workflow)
/gyoshu-auto analyze Titanic survival data and build classification model
# Iris clustering (no download needed - sklearn built-in)
/gyoshu-auto cluster iris dataset and visualize results| Command | What It Does |
|---|---|
/gyoshu |
Show status and what to do next |
/gyoshu <goal> |
Start interactive research |
/gyoshu-auto <goal> |
Autonomous mode (set it and forget it!) |
/gyoshu plan <goal> |
Just create a plan, don't execute |
/gyoshu continue |
Pick up where you left off |
/gyoshu report |
Generate research report |
/gyoshu list |
See all your research projects |
/gyoshu search <query> |
Find stuff across all notebooks |
/gyoshu doctor |
Check system health and diagnose issues |
| Mode | Best For | Command |
|---|---|---|
| π Interactive | Learning, exploring, iterating | /gyoshu <goal> |
| π€ Autonomous | Clear goals, hands-off execution | /gyoshu-auto <goal> |
| π§ REPL | Quick exploration, debugging | /gyoshu repl <query> |
/gyoshu analyze wine quality factors and build a predictive model
Gyoshu creates a structured research plan with clear objectives and hypotheses.
Jogyo runs Python code, using structured markers to organize output:
print("[OBJECTIVE] Predict wine quality from physicochemical properties")
print("[HYPOTHESIS] Alcohol content is the strongest predictor")
# ... analysis code ...
print(f"[METRIC:accuracy] {accuracy:.3f}")
print("[FINDING] Alcohol shows r=0.47 correlation with quality")
print("[CONCLUSION] Hypothesis supported - alcohol is key predictor")Everything is captured in notebooks/wine-quality.ipynb with full reproducibility.
The Paper Writer agent transforms markers into a narrative report:
"Our analysis of 1,599 wine samples revealed that alcohol content emerges as the dominant predictor of quality ratings (r = 0.47). The final Random Forest model achieved 87% accuracy..."
your-project/
βββ notebooks/ # π Research notebooks
β βββ wine-quality.ipynb
β βββ customer-churn.ipynb
βββ reports/ # π Generated reports
β βββ wine-quality/
β βββ report.md # AI-written narrative report
β βββ figures/ # Saved plots
β βββ models/ # Saved models
βββ data/ # π Your datasets
βββ .venv/ # π Python environment
Runtime files (sockets, locks) go to OS temp directoriesβnot your project! π§Ή
When you run research, Gyoshu creates these artifacts in your project:
your-project/
βββ notebooks/
β βββ your-research.ipynb β Research notebook (source of truth)
βββ reports/
β βββ your-research/
β βββ figures/ β Saved plots (.png, .svg)
β βββ models/ β Trained models (.pkl, .joblib)
β βββ report.md β Generated research report
βββ (your existing files untouched!)
Note: Gyoshu never modifies your
.venv/,data/, or other existing project files.
The TA uses structured markers to organize research output:
| Marker | Purpose | Example |
|---|---|---|
[OBJECTIVE] |
Research goal | [OBJECTIVE] Classify iris species |
[HYPOTHESIS] |
What you're testing | [HYPOTHESIS] H0: no difference; H1: petal length predicts species |
[DATA] |
Dataset info | [DATA] Loaded 150 samples |
[FINDING] |
Key discovery | [FINDING] Setosa is linearly separable (d=2.1, p<0.001) |
[CONCLUSION] |
Final verdict | [CONCLUSION] Hypothesis confirmed with large effect |
| Marker | Purpose | Example |
|---|---|---|
[STAT:ci] |
Confidence interval | [STAT:ci] 95% CI [0.82, 0.94] |
[STAT:effect_size] |
Effect magnitude | [STAT:effect_size] Cohen's d = 0.75 (medium) |
[STAT:p_value] |
Statistical significance | [STAT:p_value] p = 0.003 |
[SO_WHAT] |
Practical significance | [SO_WHAT] This means 15% cost reduction |
[LIMITATION] |
Threats to validity | [LIMITATION] Small sample size (n=50) |
| Marker | Purpose | Example |
|---|---|---|
[METRIC:baseline_*] |
Dummy model benchmark | [METRIC:baseline_accuracy] 0.33 |
[METRIC:cv_*] |
Cross-validation scores | [METRIC:cv_accuracy_mean] 0.95 |
Quality Gate: Findings without
[STAT:ci]and[STAT:effect_size]are marked as "Exploratory" in reports.
Gyoshu enforces senior data scientist level quality through automated quality gates. Every claim requires statistical evidence.
β οΈ No[FINDING]is accepted without:
[STAT:ci]β Confidence interval (within 10 lines before)[STAT:effect_size]β Effect magnitude (within 10 lines before)
Findings that fail these checks are downgraded to "Exploratory Observations" in reports.
| Requirement | Penalty if Missing | Why It Matters |
|---|---|---|
| CI for findings | -30 trust | Point estimates without uncertainty are misleading |
| Effect size for findings | -30 trust | Statistical significance β practical significance |
| Baseline for ML | -20 trust | Can't claim improvement without a reference point |
| Cross-validation for ML | -25 trust | Single train/test split can be lucky |
| Score | Status | What Happens |
|---|---|---|
| β₯ 80 | β Verified | Finding accepted as key result |
| 60-79 | Accepted with caveats | |
| < 60 | β Rejected | Marked as exploratory, requires rework |
Learn more: See AGENTS.md for complete marker reference and statistical requirements.
Gyoshu uses your project's .venv/ virtual environment:
| Priority | Type | How It's Detected |
|---|---|---|
| 1οΈβ£ | venv | .venv/bin/python exists |
Quick setup:
python3 -m venv .venv
.venv/bin/pip install pandas numpy scikit-learn matplotlib seabornNote: Gyoshu uses your project's virtual environment. It never modifies system Python.
- Claude Code or OpenCode v0.1.0+
- Python 3.10+
- Node.js 18+ (for MCP server)
- Optional:
psutil(for memory tracking)
| Platform | Status | Notes |
|---|---|---|
| Linux | β Primary | Tested on Ubuntu 22.04+ |
| macOS | β Supported | Intel & Apple Silicon |
| Windows | Native Windows not supported |
Gyoshu is distributed via npm. OpenCode automatically handles plugin updates.
Force update:
# Clear OpenCode's cache
rm -rf ~/.cache/opencode/node_modules/gyoshu
# Or reinstall with latest version
bunx gyoshu@latest installThen restart OpenCode.
Verify: opencode then /gyoshu doctor
Uninstall:
bunx gyoshu uninstallSee CHANGELOG.md for what's new.
In Korean academia:
- κ΅μ (Gyoshu/Kyosu) = Professor β the one who guides, plans, and oversees
- μ‘°κ΅ (Jogyo) = Teaching Assistant β the one who executes, experiments, and does the heavy lifting
This reflects the architecture: Gyoshu is the orchestrator agent that plans and manages research flow, while Jogyo is the executor agent that actually runs Python code and produces results.
It's a partnership. The Professor has the vision. The TA makes it happen. Together, they publish papers. π
Gyoshu works completely standalone. It has its own agent stack and requires no other OpenCode extensions (like oh-my-opencode).
For data-driven product development workflows, you can optionally combine Gyoshu with Oh-My-OpenCode:
| Tool | Focus | Independent? |
|---|---|---|
| Gyoshu (this project) | π Research & Analysis | β Fully standalone |
| Oh-My-OpenCode | ποΈ Product Development | β Fully standalone |
Gyoshu includes everything it needs for research:
| Agent | Role | What They Do |
|---|---|---|
@gyoshu |
Professor | Plans research, orchestrates workflow |
@jogyo |
TA | Executes Python code, runs experiments |
@baksa |
PhD Reviewer | Challenges claims, verifies evidence |
@jogyo-insight |
Evidence Gatherer | Searches docs, finds examples |
@jogyo-feedback |
Learning Explorer | Reviews past sessions for patterns |
@jogyo-paper-writer |
Report Writer | Transforms findings into narrative reports |
If you choose to use both tools together:
-
Research with Gyoshu:
/gyoshu-auto analyze user behavior and identify churn predictorsβ Produces insights: "Users who don't use feature X within 7 days have 3x churn rate"
-
Build with Oh-My-OpenCode:
/planner implement onboarding flow that guides users to feature Xβ Ships the feature that addresses the insight
Data informs decisions. Code ships solutions. π
Note: You do NOT need Oh-My-OpenCode to use Gyoshu. Each tool works independently.
| Issue | Solution |
|---|---|
| "No .venv found" | Create a virtual environment: python3 -m venv .venv && .venv/bin/pip install pandas numpy |
| "Bridge failed to start" | Check Python version (need 3.10+): python3 --version. Check socket path permissions. |
| "Session locked" | Use /gyoshu unlock <sessionId> after verifying no process is running |
| OpenCode not in PATH | Install from opencode-ai/opencode |
Still stuck? Run /gyoshu doctor to diagnose issues.
MIT β Use it, fork it, teach with it!
Made with π for researchers who'd rather think than type
