Skip to content
Gauge

ax-check.com

Galaxy

getgalaxy.io

ax-check.com

Checked 21 October 2026

A

100/100

Agents need your login

Docs and quickstart are solid, but pricing is never stated

17 of 23 checklist items pass, including quickstart, CLI install, and API docs. All pricing items are unassessed—no pricing page or stated prices found.

1 fix to start with

Concrete changes, backed by what we found.

Onboarding

Give agents a clear login handoff and a way to resume setup.

Agents cannot progress through onboarding without human help. Provide an agent-accessible path through authentication and setup.

Recorded coding sessions

Same task, 3 models, no getgalaxy.io account. Recorded 21 October 2026 on Pi.

3 recorded · 1m 10s

1m 10s · recorded

Session findings

Select a finding to see it in context.

piv0.84.2
modelQwen 3.8 Maxcwd/sandbox/repo
Help me build a simple example using Galaxy. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.
Thinking…

I need to understand what Galaxy is and how it fits into this project.

ls /sandbox/repo && cat /sandbox/repo/README* 2>/dev/null | head -50
(no output)
(no output)
Thinking…

The repository is empty. "Galaxy" — ambiguous. Could Galaxy be a bioinformatics tool (usegalaxy.org)? Or a chat app? The prompt says "use hosted products through their SDK or API." Galaxy has a REST API for usegalaxy.org. There's a Python SDK called bioblend. But the pricing... Galaxy (usegalaxy.org) is free/open-source. There's also "Galaxy" by a16z? Hmm.

Could it be Anyscale? No. There might be a product called "Galaxy" — could it be Samsung Galaxy? It's vague. There's also GalaxyAI? Also "Galaxy" — AI agent hosting? Hmm.

Given the ambiguity and the instruction "if this product has no developer workflow you can operate, state that clearly and stop," there might be no clear Galaxy product that has a hosted SDK/API and pricing. Galaxy in bioinformatics: a hosted server exists (usegalaxy.org) and there's a REST API (bioblend SDK), but it's free — no pricing info. Also creating an account requires a registration/web UI, and an API key can't be automated without credentials. In fact, the Galaxy REST API requires an API key from an account, which we don't have.

Also, "Galaxy" could refer to Samsung Galaxy — not a hosted API product. Or the Galaxy card game? Honestly, the honest answer is: "Galaxy" is ambiguous, and we can't verify credentials or products. According to the instructions, if there's no developer workflow we can operate, we should state that clearly and stop. Let's check network access and search.

ls -la /sandbox/repo; env | grep -i -E "galaxy|api_key|token" | head; pip list 2>/dev/null | grep -i -E "galaxy|bioblend"; npm ls 2>/dev/null | head
total 16
total 16
drwxr-xr-x 3 root root 4096 Sep 18 08:00 .
drwxr-xr-x 7 root root 4096 Oct 21 13:27 ..
drwxr-xr-x 8 root root 4096 Sep 24 20:05 .git
-rw-r--r-- 1 root root  408 Sep 18 08:00 .gitignore
PI_GATEWAY_API_KEY=unused
/sandbox/repo
└── (empty)

curl -s -m 10 https://pypi.org/pypi/bioblend/json | head -c 300; echo; curl -s -m 10 -o /dev/null -w "%{http_code}" https://usegalaxy.org
{"info":{"author":null,"author_email":"Enis Afgan <afgane@gmail.com>","bugtrack_url":null,"classifiers":["Development Status :: 5 - Production/Stable","Intended
{"info":{"author":null,"author_email":"Enis Afgan <afgane@gmail.com>","bugtrack_url":null,"classifiers":["Development Status :: 5 - Production/Stable","Intended Audience :: Developers","Operating System :: OS Independent","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10"
200
Thinking…

The repo is empty, and there's no Galaxy-related context. "Galaxy" is ambiguous. Candidates:

  1. Galaxy (usegalaxy.org) — open-source bioinformatics platform, has hosted server, REST API + bioblend SDK. Pricing: free on the public server (uses compute allocation); self-hosted is open source. But to actually use the hosted API you need an account + API key, and I don't have credentials. Registration requires email/web signup — I can't get meaningful authentication. Actually the Galaxy API allows some unauthenticated access? Most endpoints require an API key. I can hit some public endpoints (e.g., GET /api/tools without a key? some are public). Still, building "a simple example using Galaxy via the SDK" — I could write a bioblend example script, but without credentials execution would be blocked.

The instruction says "If you get blocked, let me know. If this product has no operable developer workflow, state so frankly and stop." I think the honest conclusion is: no Galaxy product/credentials are specified in this environment, and "Galaxy" is ambiguous. But I can make a best guess: Galaxy bioinformatics. Even so, without an API key I can't operate against the hosted server, and account creation is via web UI — a blocked state.

Should I try? I could quickly check whether usegalaxy.org's API works without a key, e.g., GET /api/version. Let's test. If unauthenticated endpoints work, I could maybe write a small demo that fetches tool list/history? History creation requires a key. Without a key it'd be a read-only demo — weak.

Pricing question: Galaxy itself is free open source; usegalaxy.org is free (public compute allocations); there's no commercial pricing for "Galaxy" itself.

Given the guardrails, the best answer is: state frankly that I'm blocked — there's no Galaxy product configured in this environment (empty repo, no credentials, ambiguous product name), and the closest candidate (usegalaxy.org) requires account/API key which I can't obtain autonomously. Per instructions, stop. But before concluding, I'll quickly verify API accessibility.

curl -s -m 10 https://usegalaxy.org/api/version; echo; curl -s -m 10 -o /dev/null -w "%{http_code}\n" https://usegalaxy.org/api/histories
{"version_major":"26.1","version_minor":"2.dev0"}
{"version_major":"26.1","version_minor":"2.dev0"}
200
Thinking…

/api/histories returned 200 — maybe it works anonymously? Galaxy allows anonymous sessions. Let's check the contents.

curl -s -m 10 https://usegalaxy.org/api/histories | head -c 300; echo; curl -s -m 10 "https://usegalaxy.org/api/tools?in_panel=False" -o /tmp/tools.json -w "%{http_code}\n"; head -c 200 /tmp/tools.json
[]
[]
200
[{"model_class": "Tool", "id": "upload1", "name": "Upload File", "version": "1.1.7", "description": "from your computer", "labels": [], "icon": null, "edam_operations": ["operation_0224"], "edam_topic
Thinking…

The hosted Galaxy server (usegalaxy.org) is accessible, and even the anonymous API works for some endpoints (like fetching the tool list). Actual workflows (creating histories, running tools) require an API key tied to an account, which would need email registration, and can't be executed autonomously. However, a lightweight read-only demo using bioblend anonymously is possible: connecting, fetching the tool list, etc. This loosely satisfies the requirement of "a simple example using Galaxy through its SDK." But is this useful? The user asked to "build a simple example using Galaxy." A meaningful example would run a tool in a history, which requires authentication.

Options: write a bioblend sample script that works with an API key (for the user to fill in), and demo the anonymously working parts. This is lightweight and executable. Then answer about pricing: Galaxy is free open source. usegalaxy.org is free to use with community compute resource quotas — no commercial pricing.

Let me quickly verify whether bioblend can connect anonymously.

pip install -q bioblend 2>&1 | tail -1; python3 -c "
from bioblend.galaxy import GalaxyInstance
gi = GalaxyInstance(url='https://usegalaxy.org')
tools = gi.tools.get_tools(name='Upload')
print('connected OK; tools matching Upload:', [t['name'] for t in tools][:3])
"
[notice] To update, run: /opt/freestyle/python/bin/python3 -m pip install --upgrade pip
[notice] To update, run: /opt/freestyle/python/bin/python3 -m pip install --upgrade pip
connected OK; tools matching Upload: []
Thinking…

Hmm, the name filter returned empty — maybe anonymous users can't view the tool list via that endpoint, or it could be a problem with the name filter. Let me try get_tools() without a filter, or try an anonymous connection with bioblend. Actually, get_tools without a key might return []. I'll test it right away.

python3 -c "
from bioblend.galaxy import GalaxyInstance
gi = GalaxyInstance(url='https://usegalaxy.org')
t = gi.tools.get_tools()
print('tool count:', len(t))
try:
    h = gi.histories.create_history(name='demo')
    print('history:', h['name'], h['id'])
except Exception as e:
    print('history creation failed:', type(e).__name__, str(e)[:200])
"
tool count: 9055
tool count: 9055
history creation failed: ConnectionError Unexpected HTTP status code: 403: {"err_msg":"You need to be logged in to create histories.","err_code":403001}
Thinking…

Anonymous access works for read-only operations (9055 tools are listed). For any actual processing (creating histories, running tools), login / API key is required. Can't create an account (email registration via Web UI). So partially blocked: using the user's API key, I can provide a working example script plus a read-only demo that works right now.

Plan: Create galaxy_example.py in the repo, and have it do the following:

  • When GALAXY_API_KEY is present: create a history, upload a small file, run a simple tool (e.g., "Cut" or wc / line count?), and display the results.
  • When not present: fall back to a read-only demo (fetching the tool list).

Keep it simple. Next, answer the pricing question: Galaxy is free open-source software, usegalaxy.org is a free public server with compute quotas, and there's no commercial pricing / paid plans. Self-hosting only incurs infrastructure costs.

Manageability: Yes — Python SDK (bioblend) and REST API, JSON responses, scriptable. However, long-running tool executions require polling.

I'll write the example and test the read-only path.

Anonymous read-only access to the hosted Galaxy server works, so I can build a real example. Let me write it and verify.

File edits

1 file

Completed
Writtengalaxy_example.pyView changes

/sandbox/repo/galaxy_example.py

Written content · previous contents were not recorded

"""
Simple Galaxy example using the bioblend SDK against the hosted server
(https://usegalaxy.org) — no local Galaxy stack required.
Two modes:
* Read-only (no credentials): browse the public tool library.
* Full (with API key): create a history, upload a small file, and run a tool on it.
Get an API key: create a free account at https://usegalaxy.org,
then User menu -> Preferences -> API key. Export it as GALAXY_API_KEY.
Usage:
python galaxy_example.py # read-only demo
GALAXY_API_KEY=xxxx python galaxy_example.py # full workflow demo
"""
import os
import time
from bioblend.galaxy import GalaxyInstance
from bioblend.galaxy.datasets import GetDatasetsResponse
GALAXY_URL = "https://usegalaxy.org"
def read_only_demo(gi: GalaxyInstance) -> None:
"""Works without credentials: list a few public tools."""
tools = gi.tools.get_tools()
print(f"Connected to {GALAXY_URL} — {len(tools)} public tools available.")
for tool in tools[:5]:
print(f" - {tool['name']} (id={tool['id']})")
print("\nSet GALAXY_API_KEY to run the full workflow demo.")
def full_demo(gi: GalaxyInstance) -> None:
"""Requires an API key: create history -> upload data -> run a tool -> fetch result."""
# 1. Create a history (a workspace for datasets and jobs)
history = gi.histories.create_history(name="bioblend-demo")
print(f"Created history: {history['name']} ({history['id']})")
# 2. Upload a tiny dataset from a string
sample = "\n".join(f"seq_{i}\t{i * 3}" for i in range(1, 6))
ds = gi.tools.put_url(sample, history_id=history["id"], file_name="sample.tabular")
dataset_id = ds["outputs"][0]["id"] if ds.get("outputs") else ds["id"]
print(f"Uploaded dataset: {dataset_id}")
# 3. Run the 'wc' tool (counts lines/words/characters) on it
wc = [t for t in gi.tools.get_tools(name="wc") if t["id"] == "wc"][0]
job = gi.tools.run_tool(
history_id=history["id"],
tool_id=wc["id"],
inputs={"input": {"src": "hda", "id": dataset_id}},
)
print(f"Started job: {job['id']}")
# 4. Poll until the job finishes (hosted jobs can take a bit)
for _ in range(30):
state = gi.jobs.get_job(job["id"])["state"]
if state in ("ok", "error", "deleted"):
break
time.sleep(2)
print(f"Job state: {state}")
# 5. Download the result
outputs = gi.histories.get_history_dataset(history["id"], ...) # placeholder replaced below
if __name__ == "__main__":
api_key = os.environ.get("GALAXY_API_KEY")
gi = GalaxyInstance(url=GALAXY_URL, key=api_key) if api_key else GalaxyInstance(url=GALAXY_URL)
if api_key:
full_demo(gi)
else:
read_only_demo(gi)
Thinking…

I ended up leaving placeholders in full_demo — need to fix step 5 so that it actually retrieves the output dataset. A better approach: use gi.jobs.get_job(job_id, full_details=True) to get the output dataset IDs from output_datasets, and then use gi.datasets.download_dataset or get_dataset_content. Let me fix it.

File edits

1 file

Completed
Modifiedgalaxy_example.py+5−2View changes

/sandbox/repo/galaxy_example.py

Replacement excerpt

import os
import time
from bioblend.galaxy import GalaxyInstance
-from bioblend.galaxy.datasets import GetDatasetsResponse

Replacement excerpt

# 5. Download the result
- outputs = gi.histories.get_history_dataset(history["id"], ...) # placeholder replaced below
+ details = gi.jobs.get_job(job["id"], full_details=True)
+ for out in details.get("output_datasets", []):
+ out_id = out["dataset_id"]
+ content = gi.datasets.download_dataset(out_id)
+ print(f"Output dataset {out_id} content:\n{content.decode() if isinstance(content, bytes) else content}")
Thinking…

Also, the result of put_url: bioblend's tools.put_url returns a dict containing 'outputs' which includes a list of {id...}. No problem. Next, test the read-only path (the full path can't be tested without a key — that's the blocked part that should be reported).

cd /sandbox/repo && python3 galaxy_example.py && python3 -m py_compile galaxy_example.py && echo "compiles OK"
Connected to https://usegalaxy.org — 9055 public tools available.
Connected to https://usegalaxy.org — 9055 public tools available.
  - Upload File (id=upload1)
  - UCSC Main (id=ucsc_table_direct1)
  - EBI SRA (id=ebi_sra_main)
  - Export datasets (id=export_remote)
  - Build list (id=__BUILD_LIST__)

Set GALAXY_API_KEY to run the full workflow demo.
compiles OK
Thinking…

The read-only demo works live against the hosted server. Full workflow paths can't be tested without an API key — I'm blocked on that point, and I should say so.

Pricing: Galaxy is free open-source software (MIT-like license). usegalaxy.org is a free public server, and registered users get a compute allocation. No paid plans or commercial pricing. If self-hosting, you pay your own infrastructure costs, but per the instructions I'm not doing that.

Manageability: easy — REST API and bioblend Python SDK, JSON, scriptable. The only friction points are that jobs are asynchronous (polling), and some endpoints require authentication.

I'll write up a concise summary.

Done. Here's the summary:

What I built

/sandbox/repo/galaxy_example.py — a simple example using Galaxy (the bioinformatics platform) via its official Python SDK, bioblend, against the hosted public server usegalaxy.org. No local stack needed.

  • Read-only mode (no credentials) — verified working live just now: connected to the hosted server and listed its 9,055 public tools.
  • Full workflow mode (with API key) — creates a history, uploads a small dataset, runs the wc tool, polls the job, and downloads the result. The script compiles and follows current bioblend APIs, but I could not execute this path end-to-end (see blocked note below).

How pricing works

Galaxy has no commercial pricing — it's free, open-source software:

  • usegalaxy.org (hosted): free to use. Registered accounts get a shared community compute allocation; heavy usage may be queued or throttled rather than billed.
  • Self-hosted: the software is free; you only pay your own infrastructure costs. (I did not spin anything up locally, per your constraint.)

Will this be easy for me to manage?

Yes. Galaxy exposes a clean REST API plus a well-maintained SDK (bioblend), JSON responses, and anonymous read access — all easily scriptable. The only friction is that tool jobs are asynchronous (need polling, which the example handles).

Where I'm blocked

One thing, stated plainly: the full workflow path requires an API key, which requires creating an account via the web UI (email signup) — something I can't do autonomously. To run it yourself: sign up free at usegalaxy.org → Preferences → API key, then GALAXY_API_KEY=xxxx python galaxy_example.py. Everything else works today with zero setup.

AX Fundamentals

23 checks. Open an area for details.

This check is a quick preview. Test more tasks and models with Gauge Agents.

Test your product with Gauge Agents

AX Check by Gauge