An agentic interface to scientific control systems.
Osprey addresses control-specific challenges: semantic addressing across large channel namespaces, protocol-agnostic integration with control stacks, logbook search across facility electronic logbooks, and mandatory human oversight for every hardware write.
Built for large scientific facilities, such as particle accelerators.
# Install the framework as a standalone CLI tool (using uv, recommended).
# A pre-release needs the flag: uv tool install --prerelease allow osprey-framework
uv tool install osprey-framework
# Create a minimal deployment repo to verify your setup
osprey init quickstart --preset hello-world
cd quickstart
# init seeds .env from the provider keys your shell exports, and says so.
# When it reports none, copy the example and fill it in:
# cp .env.example .env
# Render the deployment, then open the web terminal
osprey build
osprey webFor a deployment tailored to your detector, beamline, or accelerator subsystem, install the
osprey plugin and run its guided install skill from your agent session:
claude plugin marketplace add als-apg/osprey --sparse .claude-plugin plugins
claude plugin install osprey@ospreyThen start the agent in an empty directory and type /osprey:install. The skill
walks you through a guided conversation and produces the deployment repository — a git
repository whose profile.yml is the source of truth. From inside it, osprey build
renders the ready-to-run deployment into build/.
- Agent-driven orchestration — Skills, MCP tools, and explicit dependency declarations let the Osprey agent decompose operator requests into auditable steps with mandatory approval gates.
- Control-system safety — Pattern detection, channel boundary checking, and mandatory human approval for every hardware write.
- Protocol-agnostic integration — EPICS, DOOCS, TANGO, and Mock connectors ship in-tree; LabVIEW and other stacks connect through the connector interface.
- Replaceable backends — The agent harness, the underlying model, and the compute backend are each swappable by configuration, without changing what the operator sees.
- Scalable capability management — Dynamic classification prevents prompt explosion as toolsets grow.
Osprey follows CalVer (vYYYY.M.P). Public APIs may change between releases — pin a version
and check the changelog before upgrading.
Contributions are welcome. See the Contributing Guide for development setup, coding standards, and the pull-request workflow. To report a security issue, please follow the security policy rather than opening a public issue.
If you use Osprey in your research, please cite the paper. GitHub's Cite this repository button, in the sidebar, exports BibTeX and APA directly.
BSD 3-Clause — see LICENSE.txt. Additional notices, including the U.S. Department of Energy's retained rights and Berkeley Lab's Enhancements grant, are in NOTICE.
Copyright (c) 2025, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.
Questions about your rights to use or distribute this software: contact Berkeley Lab's Intellectual Property Office at IPO@lbl.gov.