civex
A local-first, command-line research data management system. Define schemas, collect records into collections, attach files, and automate processing with workflows — all on your own machine, with an optional web UI and HTTP server.
flowchart LR
S[Schema] -->|defines| R[Record]
R -->|stored in| C[Collection]
R -->|has| F["Files<br>(content-addressed objects)"]
R -->|triggers| W[Workflow jobs]
Install
pipx install civex
See Install for installing and updating (civex update).
60-second example
civex init
civex schema create trial --description "A single experimental trial"
civex schema add-field trial subject --type string --required
civex collection create study-2024
civex record add --to study-2024 --schema trial
civex serve # open http://localhost:8000
Take the five-minute tour for the full walkthrough, including workflows.
Documentation
Full docs live in docs/ — run make docs to browse them locally with live reload.
- Getting started — install, your first project, five-minute tour
- Guides — schemas & fields, collections & records, files, workflows, automation, server & web UI, PostgreSQL, logging & telemetry
- Reference — built-in plugins (see the docs site's Reference section), writing a plugin, container plugins, wire protocol, plugin SDK
- Contributing — maintainer docs (dev setup, architecture, testing, release process) live in
docs/contributing/in the repository, alongsideCONTRIBUTING.md
Development
make install # uv sync — sets up the venv and dependencies
make check # everything CI runs: format, lint, typecheck, test, docs build
See docs/contributing/dev-setup.md in the repository for the full local development workflow.
License
civex is free to use for any purpose, including commercial use. Redistribution and modification are not permitted. See LICENSE for full terms.
Metadata
Release files for civex 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| civex-1.2.0-py3-none-any.whl | Python 3 | none | any | Details for civex-1.2.0-py3-none-any.whl |
Release files / civex-1.2.0-py3-none-any.whl
| Download URL | civex-1.2.0-py3-none-any.whl |
|---|---|
| Size | 1.5 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ffa441f734fc700301490e21972ccfbea116d7319d5741f141d04be98f03c664
|
|
BLAKE2b-256 checksum How to use checksums |
e0d8dbbfdcfb660d5920844c2dba06127611c60e2e8de99e94c82ee3f6b14cfd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for civex 1.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.