Skip to content

FAQ

QubitHub is developer infrastructure for quantum computing. Discover, share, and execute quantum circuits — like GitHub, but purpose-built for quantum algorithms.

No. QubitHub includes a built-in simulator that handles circuits up to roughly 20 qubits efficiently. Larger circuits may require hardware backends (planned for a future release) or specialized simulation techniques.

Qiskit (IBM), PennyLane (Xanadu), Cirq (Google), Amazon Braket (AWS), and OpenQASM 3 (an open circuit description standard). Each circuit declares its framework in its qubithub.toml manifest, and some circuits offer multi-framework implementations.

Terminal window
pip install qubithub-sdk

This installs both the Python SDK and the qubithub CLI (plus the qhub alias). Requires Python 3.11 or later. See the CLI Quickstart for a full walkthrough.

Interactive login:

Terminal window
qubithub login

For CI/CD or non-interactive environments, pass an API key:

Terminal window
qubithub login --api-key qh_abc123...

You can also set the QUBITHUB_API_KEY environment variable.

  1. Run qubithub circuits init <name> --framework <framework> to scaffold a project.
  2. Write your circuit code in circuit.py (must export a create_circuit() function).
  3. Fill in qubithub.toml with accurate metadata.
  4. Run qubithub circuits push — the CLI validates your manifest and uploads the circuit.

See the Contributing Circuits guide for the full quality checklist.

The circuit manifest file. It declares your circuit’s metadata — name, framework, qubit count, gates, execution defaults, and more. QubitHub uses a 3-tier progressive complexity model:

  • Tier 1 (minimal): name, title, type, framework, entry point, qubits (number of quantum bits used)
  • Tier 2 (standard): adds description, tags, difficulty, execution config, educational metadata
  • Tier 3 (advanced): adds hardware constraints, parameters, reproducibility, references

See the qubithub.toml Reference for the full specification.

QubitHub covers all quantum computing domains: algorithms, QML, optimization, chemistry, error correction, quantum information, simulation, cryptography, communication, and hardware benchmarking.

Circuits follow a namespace pattern: <owner>/<name> (e.g., QubitHub/bell-state or alice/grover-3q). Names must be lowercase with hyphens only, up to 100 characters.

Yes. Use qubithub circuits fork <owner>/<name> to create your own copy under your namespace. The fork links back to the original for provenance. You can then modify and push changes independently — each fork has its own version history.

Each time you push changes with qubithub circuits push, a new version is created. You can view version history and access any prior version. Circuit versions are immutable once published.

Your code runs in an isolated Docker sandbox with no network access, a read-only filesystem, and strict resource limits. The simulator runs your circuit many times (called “shots”) and tallies how often each possible outcome occurs. For example, a Bell state circuit might return {"00": 512, "11": 512}, meaning outcomes 00 and 11 each appeared about half the time out of 1,024 shots.

LimitDefaultMaximum
Timeout30 seconds300 seconds
Shots1,024100,000
Code length5,000 characters

The sandbox also enforces memory (512 MB), CPU (1 core), and process (64 PIDs) limits.

Which Python packages are available in the sandbox?

Section titled “Which Python packages are available in the sandbox?”

Qiskit, Qiskit Aer, PennyLane, Cirq, NumPy, SciPy, Matplotlib, and Python standard library modules (math, cmath, random, json, collections, itertools, functools, typing, dataclasses). Other packages are not available — the sandbox has no network access to install them.

The sandbox performs static analysis before execution. Code is rejected if it uses:

  • Blocked imports (subprocess, os, sys, ctypes, socket)
  • Dangerous builtins (eval, exec, compile, open, __import__)
  • Dynamic attribute access (getattr, setattr — use direct attribute access like obj.attr instead)
  • File I/O operations (e.g., numpy.loadtxt, matplotlib.savefig)

This is defense-in-depth on top of the Docker isolation. See Troubleshooting for specific error messages.

What’s the difference between JWT tokens and API keys?

Section titled “What’s the difference between JWT tokens and API keys?”

JWT tokens are short-lived (15 minutes) and best for interactive sessions — the CLI handles refresh automatically. API keys are long-lived and scoped — use them for scripts, CI/CD, and automation. API keys use the qh_ prefix.

See the Authentication guide for the full details.

Terminal window
qubithub keys create --name "CI pipeline" --scopes circuit:read,runs:submit --expires 90

Available scopes:

ScopeGrants
circuit:readBrowse and download circuits
circuit:writeCreate, update, and delete circuits
runs:submitExecute circuits
dataset:readBrowse and download datasets
dataset:writeCreate, update, and delete datasets
org:readView organization details
org:writeManage organization settings and members
repo:readRead repository metadata
repo:writeManage repository settings

During beta, each account can create up to 2 API keys. Higher limits will be available on paid tiers after general availability.

Yes. Organizations provide shared namespaces for circuits, datasets, and spaces. Members have role-based permissions (Owner, Admin, Member). See the Organizations guide.

Yes, during beta. A free tier will always exist. The current beta limits:

ResourceFree tier
Circuits10
Datasets5
Spaces2
Runs100 / month
Compute time5 minutes / month
Storage100 MB
API rate60 requests / minute
API keys2

Pro and Enterprise tiers with higher limits are planned. All circuits and data created during beta will be preserved when we transition to general availability.

How is QubitHub different from IBM Quantum or AWS Braket?

Section titled “How is QubitHub different from IBM Quantum or AWS Braket?”

IBM Quantum and AWS Braket focus primarily on hardware access and managed execution environments. QubitHub focuses on a different layer: discovery, collaboration, and reproducibility of quantum algorithms across frameworks — more like GitHub for quantum code than a hardware provider.

How is QubitHub different from sharing circuits on GitHub?

Section titled “How is QubitHub different from sharing circuits on GitHub?”

GitHub stores code. QubitHub adds one-click execution, structured metadata (qubithub.toml), circuit visualizations, versioning, a quantum-native search and discovery experience, and benchmark comparisons — all purpose-built for quantum workflows.