From scientific-skills
Builds, optimizes, and executes quantum circuits using Qiskit for algorithms like VQE/QAOA/Grover, simulations, IBM Quantum hardware, chemistry, ML, and visualization.
npx claudepluginhub rubensliv/k-dense-ai --plugin scientific-skillsThis skill uses the workspace's default tool permissions.
Qiskit is the world's most popular open-source quantum computing framework with 13M+ downloads. Build quantum circuits, optimize for hardware, execute on simulators or real quantum computers, and analyze results. Supports IBM Quantum (100+ qubit systems), IonQ, Amazon Braket, and other providers.
Builds, optimizes, and executes quantum circuits using Qiskit for algorithms like VQE/QAOA/Grover, simulations, IBM Quantum hardware, chemistry, ML, and visualization.
Builds quantum circuits with Qiskit, optimizes for hardware, executes on simulators or real quantum computers (IBM Quantum, IonQ, Amazon Braket), and analyzes results.
Builds, transpiles, and executes quantum circuits with Qiskit on IBM hardware, simulators, Qiskit Runtime; covers primitives, visualization, optimization, error mitigation.
Share bugs, ideas, or general feedback.
Qiskit is the world's most popular open-source quantum computing framework with 13M+ downloads. Build quantum circuits, optimize for hardware, execute on simulators or real quantum computers, and analyze results. Supports IBM Quantum (100+ qubit systems), IonQ, Amazon Braket, and other providers.
Key Features:
uv pip install qiskit
uv pip install "qiskit[visualization]" matplotlib
from qiskit import QuantumCircuit
from qiskit.primitives import StatevectorSampler
# Create Bell state (entangled qubits)
qc = QuantumCircuit(2)
qc.h(0) # Hadamard on qubit 0
qc.cx(0, 1) # CNOT from qubit 0 to 1
qc.measure_all() # Measure both qubits
# Run locally
sampler = StatevectorSampler()
result = sampler.run([qc], shots=1024).result()
counts = result[0].data.meas.get_counts()
print(counts) # {'00': ~512, '11': ~512}
from qiskit.visualization import plot_histogram
qc.draw('mpl') # Circuit diagram
plot_histogram(counts) # Results histogram
For detailed installation, authentication, and IBM Quantum account setup:
references/setup.mdTopics covered:
For constructing quantum circuits with gates, measurements, and composition:
references/circuits.mdTopics covered:
For executing quantum circuits and computing results:
references/primitives.mdTopics covered:
For optimizing circuits and preparing for hardware execution:
references/transpilation.mdTopics covered:
For displaying circuits, results, and quantum states:
references/visualization.mdTopics covered:
For running on simulators and real quantum computers:
references/backends.mdTopics covered:
For implementing the four-step quantum computing workflow:
references/patterns.mdTopics covered:
For implementing specific quantum algorithms:
references/algorithms.mdTopics covered:
If you need to:
references/setup.mdreferences/circuits.mdreferences/circuits.mdreferences/primitives.mdreferences/primitives.mdreferences/transpilation.mdreferences/visualization.mdreferences/backends.mdreferences/backends.mdreferences/patterns.mdreferences/algorithms.mdreferences/algorithms.mdStart with simulators: Test locally before using hardware
from qiskit.primitives import StatevectorSampler
sampler = StatevectorSampler()
Always transpile: Optimize circuits before execution
from qiskit import transpile
qc_optimized = transpile(qc, backend=backend, optimization_level=3)
Use appropriate primitives:
Choose execution mode:
from qiskit import QuantumCircuit, transpile
from qiskit.primitives import StatevectorSampler
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()
sampler = StatevectorSampler()
result = sampler.run([qc], shots=1024).result()
counts = result[0].data.meas.get_counts()
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler
from qiskit import transpile
service = QiskitRuntimeService()
backend = service.backend("ibm_brisbane")
qc_optimized = transpile(qc, backend=backend, optimization_level=3)
sampler = Sampler(backend)
job = sampler.run([qc_optimized], shots=1024)
result = job.result()
from qiskit_ibm_runtime import Session, EstimatorV2 as Estimator
from scipy.optimize import minimize
with Session(backend=backend) as session:
estimator = Estimator(session=session)
def cost_function(params):
bound_qc = ansatz.assign_parameters(params)
qc_isa = transpile(bound_qc, backend=backend)
result = estimator.run([(qc_isa, hamiltonian)]).result()
return result[0].data.evs
result = minimize(cost_function, initial_params, method='COBYLA')