Skip to main content

desireeia-server

OpenAI-compatible API server and self-hosted chat web UI for the DesireeIA local LLM inference engine. The inference motor is always DesireeIA — this package is a thin HTTP layer over the existing desireeia Python wrapper and ships everything it needs.

The external project this surface mirrors (and generalizes past) is referred to here only as desireeialmn; no code or documentation text is copied from it. Convention of this repository: external projects are never named in code, docs or identifiers.

Quick start

Published on PyPI since 2026-09-16: https://pypi.org/project/desireeia-server/ (depends on https://pypi.org/project/desireeia/).

Install from PyPI

pip install desireeia-server

This also installs its desireeia dependency (the inference engine wrapper, with prebuilt native binaries bundled — see desireeia's README for the per-OS prerequisites, e.g. the VC++ Redistributable on Windows).

Run

Identical on Windows, Linux and macOS — desireeia-server is a normal console command once installed:

desireeia-server --model path/to/model.gguf --port 8080
# open http://127.0.0.1:8080

Without --model, the server runs in router mode: it manages whatever checkpoints it finds in the models folder (default <data-dir>/models, created automatically). Drop a GGUF in there, or upload it from the UI, and it becomes selectable without a restart.

desireeia-server --models-dir ./models

By default the server runs in the foreground (logs print to the terminal). To stop it: Ctrl+C in that terminal, on any OS.

Start / stop / restart in the background

desireeia-server-ctl (installed alongside desireeia-server, identical command on Windows/Linux/macOS) runs the server as a detached background process and tracks it for you — no manual PID handling:

desireeia-server-ctl start -- --model path/to/model.gguf --port 8080
desireeia-server-ctl status     # "running (pid ...)" or "stopped"
desireeia-server-ctl stop
desireeia-server-ctl restart -- --model path/to/model.gguf --port 8080

Everything after -- is forwarded to desireeia-server unchanged (same flags as running it directly). Logs go to <data-dir>/server.log (~/.desireeia/server.log by default) and the PID is tracked in <data-dir>/server.pid - stop reads it from there, so it always works even across different terminal sessions.

Dev install from the repo (instead of PyPI)

pip install <desireeia_source>/python <desireeia_source>/DesireeIAServer   # Windows: use \ instead of /

The engine, backend and sampling surface you can steer:

desireeia-server --model model.gguf --backend auto --threads 8 \
    --n-gpu-layers 0 --temperature 0.7 --top-k 40 --top-p 0.95 \
    --repeat-penalty 1.1 --n-predict 512

Run desireeia-server --help for the full surface.

Layout

  • desireeiaserver/ — the package: config.py (CLI/env), engine.py (the DesireeIA adapter), app.py (FastAPI factory), api/ (routes), static/ (generated UI bundle, copied from ../ui via sync_static.py).
  • ../ui/ — the web UI source (single-page chat app).
  • ../python/ — the desireeia engine wrapper this package depends on.

Development

python -m venv .venv                      # repo root, gitignored
.venv/Scripts/pip install -e ./python
.venv/Scripts/pip install -e ./DesireeIAServer[dev]
.venv/Scripts/python -m pytest DesireeIAServer/tests

Roadmap

See ../ProjectsRequirements.md §10. Bootstrap status: HTTP scaffold, /health, /props, /v1/models shape, UI placeholder, tests with an in-memory mock engine. Streaming, router/slots, tools and the full UI land in the next iterations.

Metadata

Release files for desireeia-server 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for desireeia-server 0.3.0
File Size Uploaded Provenance
desireeia_server-0.3.0.tar.gz 1.2 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for desireeia-server 0.3.0
File Interpreter ABI Platform
desireeia_server-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.4 MB

Release files / desireeia_server-0.3.0.tar.gz

Download URL desireeia_server-0.3.0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
25e7757863d9b67ad83e7ad1f9e9fe0148b1afb76fc5592b7ca774f25edf1985
BLAKE2b-256 checksum
How to use checksums
d5981563a7195a25a39241712d6e31c21b06cc1e8390698b42102bf6d1838525
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release files / desireeia_server-0.3.0-py3-none-any.whl

Download URL desireeia_server-0.3.0-py3-none-any.whl
Size 1.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
da4ae7f3d82ee85385e68e4e135bf567e11cefddc3fb447c8482dcaf0d2e5484
BLAKE2b-256 checksum
How to use checksums
06061de5a7f8ba787a5799665a1416661f16cb0c96befb4e7daa757edc4cb366
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Security for desireeia-server 0.3.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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page