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.1.3

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.1.3
File Size Uploaded Provenance
desireeia_server-0.1.3.tar.gz 1.2 MB Without provenance Details

Built distribution (wheel)

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

Total release size: 2.4 MB

Release files / desireeia_server-0.1.3.tar.gz

Download URL desireeia_server-0.1.3.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
36691b66473e32520ee0784684f972ea423d5272a1eb6ad92f7aeb85cddfc191
BLAKE2b-256 checksum
How to use checksums
6772e90be21224cd36088b57c41ef1e4d10d3e42fcdb35abd61e90325e58db0e
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.1.3-py3-none-any.whl

Download URL desireeia_server-0.1.3-py3-none-any.whl
Size 1.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
e2003d9747d9827253803bac72ebf68139aa56652b74b3d5ca93f71d4606ce27
BLAKE2b-256 checksum
How to use checksums
16a728fa4baf2a2799ec6b547926f59f3ef4e644d350d446a44c385886eda79e
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.1.3

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