Skip to content

AbstractCore v2.14.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 21:22
· 547 commits to main since this release

Browse, download and delete local models and install local engines from one place: the
command line, a browser console served by abstractcore serve, or the terminal console.

Added

  • Ready on first run. A bare abstractcore serve now starts on 127.0.0.1:8000 and prints
    a one-time console link, http://127.0.0.1:8000/console#claim=<code> (valid 10 minutes).
    On a loopback address with no ABSTRACTCORE_AUTH_TOKEN, the server creates its bearer token
    once and keeps it in <config dir>/server-token (readable by you only); opening the link
    signs the browser tab in. abstractcore serve --print-token prints the token for API
    clients and abstractcore serve --claim-url prints a fresh link. The link is redeemed
    through POST /acore/session/claim, which answers only direct connections from the same
    machine. See First run.
  • Web console at /console. abstractcore serve now serves a browser console with four
    tabs: Overview (host profile, engines summary, server health), Models (catalog search and
    filters including "Fits this machine", weights status, fit badges with evidence, Download,
    Delete with confirmation, job progress and Cancel), Engines (status, Install with a
    confirmation that shows the exact command and the host it runs on, Open download page) and
    Providers (read-only). Every action shows its CLI equivalent. The console keeps the
    server token in the tab's session storage only, and asks for it when it has none. Themes
    come from the AbstractFramework UI kit and follow the system light/dark preference. See
    Web Console.
  • Embeddable Models and Engines screens. abstractcore.console.web.fragment("models" | "engines") and GET /console/fragment/{kind} return {html, js, css} that a host console
    mounts with window.AbstractCoreConsole.mount(kind, rootEl, {apiBase, request, isAdmin, onJob, hostName, cliPrefix}), injecting its own request function for auth and CSRF.
  • Terminal console Models and Engines screens. The abstractcore-console terminal app
    (0.2.0) gains screen 9 "Models" and screen 0 "Engines" with the same labels and keys as the
    web console (w download, d delete, i install, o open download page, / filter,
    f fits only, c cancel), and ships as a library so other consoles can mount the same
    screens. See Terminal console.
  • Local model browser. abstractcore models catalog and models search list downloadable
    models (a curated catalog of 76 models across 46 families: chat, coding, vision, embedding)
    with, for each engine artifact, whether it is installed, its download size, and a fit verdict
    for this machine (fits, tight, too_large, partial_offload, unknown) with the
    memory it needs, the largest context it allows, and a disk check. One artifact per model is
    pre-selected for your hardware. --hub adds exact sizes and search results from Hugging Face
    (cached 24 hours). See Local Models.
  • Installed models with sizes, and delete. abstractcore models list shows every model
    installed in Ollama, LM Studio and the Hugging Face cache (split into MLX and transformers /
    GGUF) with sizes, quantization and whether it is loaded. abstractcore models delete removes
    one with the engine's own mechanism, refusing loaded, remote or shared-cache models unless
    --force.
  • Engine detection and installs. abstractcore engines status|install|open detects Ollama,
    LM Studio, MLX, llama.cpp, vLLM and transformers, shows the exact vendor install command for
    your OS, and runs it after confirmation. See Local Engines.
  • abstractcore host profile: accelerator, memory ceiling, free memory and free disk per
    model store.
  • Background jobs. Downloads, deletes and engine installs run as jobs with progress and
    cancel: abstractcore models jobs, abstractcore models cancel, and
    models download --detach. With --json, models download <provider> <artifact> and
    engines install stream one job object per line.
  • Server routes: GET /acore/host/profile, GET /acore/models/catalog,
    GET /acore/models/installed, POST /acore/models/download, POST /acore/models/delete,
    GET /acore/engines, POST /acore/engines/{id}/install, GET /acore/jobs,
    GET /acore/jobs/{id}, POST /acore/jobs/{id}/cancel. Host-changing routes need a server
    principal; engine installs are enabled by default only on a loopback-bound server
    (ABSTRACTCORE_ALLOW_ENGINE_INSTALL overrides).
  • GGUF quant selection: a Hugging Face artifact org/Repo-GGUF:Q4_K_M downloads only that
    quant's files, and a download that cannot fit on disk is refused before it starts.

Changed

  • abstractcore serve binds 127.0.0.1 by default (it was 0.0.0.0). Pass
    --host 0.0.0.0 (or set HOST) to listen on every interface; a non-loopback server still
    requires ABSTRACTCORE_AUTH_TOKEN, and its start banner now says so. The Docker image sets
    HOST=0.0.0.0 and is unaffected.
  • abstractcore models download <provider> <artifact> --json prints one host_job_v1 object
    per line while the download runs; the last line keeps the previous ok and results keys.
  • psutil may now be 6.x or 7.x (psutil>=5.9,<8), so the extras that use it install from
    wheels on Linux ARM64 (Graviton, Raspberry Pi, Docker on Apple Silicon) without a compiler.