A set of Anthropic Open Standard skill files for integrating the Edison Scientific
platform (edison-client) into Claude Code and Claude Cowork workflows.
Edison Scientific provides AI agents for scientific research tasks. This skill collection wraps the platform's REST API with structured skill definitions and ready-to-use Python scripts.
| Skill | Job | Use When |
|---|---|---|
edison-setup |
— | First-time setup, auth validation |
edison-literature |
LITERATURE |
Open scientific questions needing cited answers |
edison-precedent |
PRECEDENT |
"Has anyone ever done X?" binary queries |
edison-molecules |
MOLECULES |
Chemistry, synthesis, molecular design |
edison-analysis |
ANALYSIS |
Analysing your own biological datasets |
edison-async |
All | Running multiple queries concurrently |
edison-evaluation |
All | Health checks and performance evaluation |
# Unix/Mac
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
winget install --id=astral-sh.uv
# or: powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"git clone https://github.com/MungoHarvey/edison-api-skill.git
cd edison-api-skill
cp .env.example .env # then edit .env: EDISON_PLATFORM_API_KEY=<your-key>
# Get your key from: https://platform.edisonscientific.com/profileAlternatively, export the key without a file:
export EDISON_PLATFORM_API_KEY=<your-key>
# Or set EDISON_ENV_FILE=/path/to/.env.edison for a dedicated config file# Option A — user-level (available in all projects):
bash install.sh --user
# On Windows PowerShell: .\install.ps1 -User
# Option B — print the --plugin-dir flag for project-level use:
bash install.sh --plugin-dir
# Option C — pass --plugin-dir directly to Claude Code:
# Add --plugin-dir /path/to/edison-api-skill to your Claude Code commanduv run skills/edison-setup/scripts/check_environment.pyuv run skills/edison-literature/scripts/literature_search.py \
--query "What causes Alzheimer's?" --output results/answer.mdOnce installed, skills activate automatically based on your prompts — no need to
reference SKILL.md files manually. Ask a literature question, and Claude will invoke
edison-literature. Ask to design a molecule, and it invokes edison-molecules.
These instructions are for Claude Code to follow when a user asks to set up this plugin.
When the user asks to "set up Edison" or "configure the Edison plugin", execute these steps in order:
Step 1 — Check for uv
uv --versionIf missing, install it:
- macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh - Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
After installing, ask the user to restart their terminal or run source ~/.bashrc (or equivalent), then confirm uv is available before continuing.
Step 2 — Create the virtual environment
From the plugin root directory:
bash skills/edison-setup/scripts/setup_venv.shThis creates .venv/ and installs edison-client and python-dotenv. Only run once.
Step 3 — Configure the API key
Check whether .env already exists. If not:
cp .env.example .envThen check whether EDISON_PLATFORM_API_KEY is already set in .env. If it contains your_api_key_here or is missing, tell the user:
"Please get your API key from https://platform.edisonscientific.com/profile, then add it to
.envas:EDISON_PLATFORM_API_KEY=<your_key>"
Wait for the user to confirm before continuing.
Step 4 — Verify setup
uv run skills/edison-setup/scripts/check_environment.py --ping- Exit code
0= ready (includes a⚠warning if ping returned 404 — platform-side, key is fine). - Exit code
1= hard failure — show the error output and help the user fix it. - Exit code
2= API key missing or invalid — re-prompt the user to check.env.
Step 5 — Confirm to user
Report which checks passed (uv, .venv, .env, API key) and confirm Edison is ready for use. Suggest a test query:
uv run skills/edison-literature/scripts/literature_search.py \
--query "What is the role of TDP-43 in ALS pathogenesis?" \
--output results/test_literature.mdThe uv run path (above) handles everything automatically. If you prefer a persistent
venv, run bash skills/edison-setup/scripts/setup_venv.sh once, then invoke scripts
with .venv/bin/python (Unix/Mac) or .venv\Scripts\python.exe (Windows).
uv run skills/edison-literature/scripts/literature_search.py \
--query "What is the role of TDP-43 in ALS pathogenesis?" \
--output results/tdp43_literature.mdAll Edison skills work in both Claude Code and Claude Cowork with the same SKILL.md files and Python scripts. The environments differ in how they invoke scripts:
| Feature | Claude Code | Claude Cowork |
|---|---|---|
| Invocation | User gives Claude Code a prompt; Claude reads SKILL.md and invokes script | User creates desktop task flows; Cowork runs scripts via shell commands |
| Input | Natural language questions in chat | Template-based or manual task definitions |
| Output Handling | Results returned in chat; files saved to --output path |
Results saved to files and auto-imported to Obsidian/notes |
| Real-time feedback | Immediate (blocking, in chat) | Asynchronous (tasks complete in background) |
| Best for | Interactive research, quick lookups | Batch processing, automation workflows |
In Claude Code:
Read the edison-literature SKILL.md, then search for:
"What is the role of TDP-43 in ALS pathogenesis?"
Save results to ~/Documents/Edison-Outputs/tdp43.md
Claude Code reads SKILL.md, executes:
uv run skills/edison-literature/scripts/literature_search.py \
--query "What is the role of TDP-43 in ALS pathogenesis?" \
--output ~/Documents/Edison-Outputs/tdp43.mdIn Claude Cowork: Create a desktop task:
Task: TDP-43 Literature Search
1. Run command: uv run skills/edison-literature/scripts/literature_search.py
--query "What is the role of TDP-43 in ALS pathogenesis?"
--output ${EDISON_OUTPUT_DIR}/tdp43.md
2. Import to Obsidian from ~/Documents/Edison-Outputs/
Both use the same script and produce the same output — the skill is environment-agnostic.
edison-api-skill/
├── .claude-plugin/
│ └── plugin.json ← Claude Code plugin manifest
├── hooks/
│ ├── hooks.json ← SessionStart hook (auto-checks environment)
│ └── scripts/check_env.sh
└── skills/ ← Skill definitions and scripts (auto-discovered)
├── edison-setup/
│ ├── SKILL.md
│ ├── scripts/ ← setup_venv.sh, check_environment.py, test_connection.py
│ └── references/
├── edison-literature/
│ ├── SKILL.md
│ ├── scripts/ ← literature_search.py
│ └── references/
├── edison-precedent/
│ ├── SKILL.md
│ └── scripts/ ← precedent_search.py
├── edison-molecules/
│ ├── SKILL.md
│ └── scripts/ ← chemistry_task.py
├── edison-analysis/
│ ├── SKILL.md
│ ├── scripts/ ← data_analysis.py
│ └── references/
├── edison-async/
│ ├── SKILL.md
│ ├── scripts/ ← async_batch.py
│ └── references/
└── edison-evaluation/
├── SKILL.md
├── scripts/ ← evaluate_skills.py
└── test_queries/
Claude Code reads the SKILL.md files and invokes adjacent scripts. Example prompts:
# Literature search
Read the edison-literature SKILL.md, then search for evidence on:
"What mechanisms underlie TDP-43 nuclear depletion in ALS?"
Save the result to results/tdp43_nuclear.md
# Precedent check
Read the edison-precedent SKILL.md, then check:
"Has anyone performed DRUGseq screening in ALS iPSC motor neurons?"
# Async batch
Read the edison-async SKILL.md, then submit all queries in
edison-queries/als_targets.jsonl and save results to results/als_batch.md
Cowork can automate Edison queries as desktop tasks:
- Generates query files from templates
- Invokes scripts via shell commands
- Saves Markdown results to a user-configurable location
- Optionally imports into Obsidian vault via the
obsidian-mcpskill
All scripts support flexible --output paths. Set your preferred location in one of these ways:
Option 1: Environment variable (recommended)
export EDISON_OUTPUT_DIR="$HOME/Documents/Edison-Outputs"
# or for Windows: set EDISON_OUTPUT_DIR=C:\Users\YourName\Documents\Edison-OutputsThen use scripts with relative paths:
uv run skills/edison-literature/scripts/literature_search.py \
--query "Your question" \
--output $(date +%Y%m%d)_question.mdOption 2: Explicit full path (per command)
# Linux/Mac
uv run skills/edison-literature/scripts/literature_search.py \
--query "Your question" \
--output ~/Documents/Edison-Outputs/$(date +%Y%m%d)_question.md
# Windows (PowerShell)
python skills/edison-literature/scripts/literature_search.py `
--query "Your question" `
--output "$HOME\Documents\Edison-Outputs\question.md"Option 3: Obsidian vault (if using Obsidian)
uv run skills/edison-literature/scripts/literature_search.py \
--query "Your question" \
--output ~/Library/Mobile\ Documents/iCloud\~md\~obsidian/Documents/vault-name/AI-Usage-Log/edison/question.md1. Set EDISON_OUTPUT_DIR environment variable in .env or shell config
2. Run: uv run skills/edison-literature/scripts/literature_search.py
--query "<query>" --output $(date +%Y-%m-%d)_topic.md
3. Results automatically appear in ~/Documents/Edison-Outputs/
4. (Optional) If Obsidian vault path is set, trigger obsidian-mcp sync
All scripts support --continued-from <task_id> to chain follow-up questions:
# Initial query
uv run skills/edison-literature/scripts/literature_search.py \
--query "What are TDP-43 aggregation mechanisms?" \
--output results/step1.md
# → Note the task ID printed to stderr
# Follow-up (uses same retrieved papers)
uv run skills/edison-literature/scripts/literature_search.py \
--query "Which of those mechanisms are druggable?" \
--continued-from <task_id_from_step1> \
--output results/step2.mdObtain your key from: https://platform.edisonscientific.com/profile
Store in .env at your project root:
EDISON_PLATFORM_API_KEY=your_api_key_here
The legacy name EDISON_API_KEY is also accepted as a fallback for existing .env files.
Add .env to .gitignore — never commit your key.
- Python 3.11+
uv(recommended) — used for venv creation and script executionedison-clientandpython-dotenv— installed into.venv/bysetup_venv.sh