Raylibpyctbg
A Python ctypes binding generator for the awesome C library Raylib.
Install / Use
/learn @overdev/RaylibpyctbgREADME
Raylib Ctypes Binding Generator
A very basic raylib binding generator for Python
This tool generates Python bindings for the awesome C library Raylib. It makes use of json files generated by the Raylib's header parser.
You can use this tool to generate a Raylib Python binding for you to tweak and use in your projects. It is very simple to use.
Usage
Dowload and unzip it in a directory of you choosing, open the terminal, navigate to the selected directory, and then:
$ python raylibpyctbg -help
to get a list of options you can pass to customize the bind generation
Documentation
You can take a look on the last generated documentation file.
Customization
With raylibctbg you can customize many aspects of the binding.
Options related to code style and naming conventions are:
-
Naming convention: choose whether you want names the same as in C Raylib (C99) or following Python's PEP8 convention. You can choose which names you want to keep or change the casing: fields, parameters or functions.
-
Typing: choose what type information to be added to names: as type hints or annotations.
-
Member functions: choose whether you want some functions to be bound to structure types as methods, classmethods, staticmethods, properties or context managers.
-
Pretty-printing: you can specify what gets returned by
__str__and__repr__. -
Attribute swizzling: choose whether to add attribute swizzling to Vectors, Color and Rectangle types.
-
Context manager: choose whether you want function pairs named
Begin*andEnd*to form context managers.
You can also customize library loading file paths/names, inclusion of extension headers and output filepath.
Many of these options can be tweaked via input/rl500/global_config.json file, but for deeper customizations you can check out the input/rl500/raylib_api.bind.json file.
Vector{2|3|4} swizzling:
When added to the binding, it allows attributes to be joined and mixed in any order:
vec2 = Vector2(1, 2, 3)
vec3 = vec2.xyx
vec4 = vec3.yyzx
vec3.xz = 5.0, 3.0
It also works for Color:
col = Color(127, 63, 31, 255)
col2 = col.grab
col.rg = 255, 0
A little bit of OOP:
When added to the binding, it binds some functions to be called as methods:
# Load the sound; same as `sound = load_sound('my/sound/file')`
sound = Sound.load("my/sound/file")
# same as `if not is_sound_playing(sound)`
if not sound.is_playing():
# Play it; same as `sound_play(sound)`
sound.play()
# Unload from memory; same as `unload_sound(sound)`
sound.unload()
RayMath
When added to the binding, it includes all functions in the raymath header.
RLGL
When added to the binding, it includes all functions in the rlgl header.
Documentation
You can generate API reference for all symbols wrapped by the generator. For some examples, check out the markdown files in the output folder.
Using the python binding
Please, note that this binding does not include any raylib binary file. You can grab the binary from the C Raylib repo in the releases page. By default is expected the binary files to be located the binding libpath.
Try to run the binding python file directly to know the exact path where the binary is expected to be located or change the path with the generation options.
Related Skills
node-connect
339.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
83.9kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
83.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
339.3kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
