phoebusgen
Screen generator for CS-Studio Phoebus displays
Decision gist · record as of 2026-08-14
Yes, if you work with Phoebus and EPICS control systems and want to automate or version-control screen generation. The package is actively maintained, has no security vulnerabilities, and carries low install friction. The GPLv2 license is a consideration only if you plan to distribute proprietary derivatives; internal use is unrestricted. Install it if screen-as-code fits your workflow; skip it if you only occasionally edit screens in the GUI.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction: pure Python wheel with only dataclasses as a runtime dependency.
- Active maintenance with a recent release and ongoing repository activity.
License · maintenance · safety
copyleft license (copyleft) — GPLv2 copyleft license requires that any derivative work or distribution must also be licensed under GPLv2 and include source code availability. This is restrictive for proprietary applications but poses no issue for internal or open-source use.
last release 2026-06-10 (65 days) · last repo commit 2026-07-08 · 20 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 127,338 downloads/mo, #11,747 on PyPI
Alternatives
Verify before relying
pip install phoebusgen
import phoebusgen
widget = phoebusgen.widget.TextUpdate('my_widget', 'TEST:PV', 10, 20, 20, 50)
screen = phoebusgen.screen.Screen('my_screen')
screen.add_widget(widget)
print(screen) # outputs Display Builder XML- Whether version-specific widget definitions beyond 4.7.3 are maintained or planned
- Performance characteristics when generating screens with many widgets
What it is and what it does
phoebusgen is a Python library that generates Phoebus Display Builder XML—the format used by Phoebus, the next-generation control interface for EPICS control systems. Instead of manually editing XML or using the graphical editor, you define screens and widgets as Python objects, configure their properties through method calls, and serialize them to .bob files ready for Phoebus to open. It covers all standard Phoebus widgets and supports multiple Phoebus versions through configurable widget definitions.
The library is organized around two main modules: phoebusgen.widget provides Python classes for every Phoebus widget type with methods to set colors, fonts, and other properties; phoebusgen.screen wraps a collection of widgets into a complete screen object. You can nest widgets inside containers like Group or Tab, override site-specific color and font definitions via configuration files, and target different Phoebus releases by changing the active version. It has minimal dependencies—only dataclasses—making it lightweight to integrate into build pipelines or automation scripts.
Use it for
- Automate generation of repetitive EPICS control screens from a template or database of PV names
- Version-control screen definitions as Python code rather than binary or XML files
- Programmatically create screen variants for different Phoebus versions without manual editing
- Integrate screen generation into CI/CD pipelines for control system deployments
- Generate screens dynamically based on runtime configuration or device discovery
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you work with Phoebus and EPICS control systems and want to automate or version-control screen generation.
The package is actively maintained, has no security vulnerabilities, and carries low install friction. The GPLv2 license is a consideration only if you plan to distribute proprietary derivatives; internal use is unrestricted. Install it if screen-as-code fits your workflow; skip it if you only occasionally edit screens in the GUI.
Install
phoebusgen on PyPI
Before you install
Low friction: pure Python wheel with only dataclasses as a runtime dependency. Active maintenance with a recent release and ongoing repository activity.
License in practice
GPLv2 copyleft license requires that any derivative work or distribution must also be licensed under GPLv2 and include source code availability. This is restrictive for proprietary applications but poses no issue for internal or open-source use.
Quickstart
pip install phoebusgen
import phoebusgen
widget = phoebusgen.widget.TextUpdate('my_widget', 'TEST:PV', 10, 20, 20, 50)
screen = phoebusgen.screen.Screen('my_screen')
screen.add_widget(widget)
print(screen) # outputs Display Builder XML
Verify before relying
- Whether version-specific widget definitions beyond 4.7.3 are maintained or planned
- Performance characteristics when generating screens with many widgets
Package facts
| License | copyleft license copyleft |
| Python support | Supports the current Python release >=3.6 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagedataclasses |
| Maintenance | Actively maintained 65 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 127,338 / month, #11,747 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableLicense :: OSI Approved :: GNU General Public License v2 (GPLv2)Operating System :: OS IndependentProgramming Language :: Python :: 3Topic :: Software Development :: Code Generators |
Evidence: phoebusgen-3.3.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “phoebus screen generator”
- phoebusgenGenerates Phoebus Display Builder XML format programmatically from…
- epik8s-toolsAutomates project structure, Helm chart, and OPI panel generation for…
- browserforgeGenerates realistic browser headers and device fingerprints that…
Give your agent the search over MCP, or paste the wish link into any chat.
More Code Generators packages
Proto Plus wraps protocol buffers to provide Python classes that behave like native Python types while maintaining protocol buffer serialization and schema validation.
Install it if you're working with protocol buffers in Python and want a more Pythonic interface, or if you're using Google Cloud libraries that depend on it.
Cython is a source code translator that compiles Python code to C, enabling optional static typing and direct C/C++ interoperability to generate efficient native extensions.
Install it if you need to optimize Python performance, wrap C/C++ libraries, or build fast native extensions.
Annotates Python abstract syntax trees with the positions of tokens and source code text, enabling tools to map AST nodes back to their originating code for refactoring, analysis, and transformation.
Beartype is a runtime type checker that validates Python type hints at function call time, catching type violations before they cause downstream bugs.
Install it if you want runtime type safety for your annotated code or need to validate type hints on third-party packages.
llvmlite provides a lightweight Python binding to LLVM's IR builder, optimizer, and JIT compiler APIs, enabling you to write JIT compilers and code generators without needing the full LLVM C++ API surface.
astor converts Python abstract syntax trees (ASTs) back to readable source code and provides tools for AST manipulation, inspection, and non-recursive tree traversal.
Install it if you need AST round-tripping or advanced tree inspection.
See also epik8s-tools · pyepics · junos-eznc · epicscorelibs · magicgui · ophyd · junit-xml · ipylab · PyXB-X · ipyvue