Administration & Configuration

Usage Statistics, Import/Export and Backup

This page explains the settings pages Usage (token statistics, consumption overview, requests per model) and Import/Export (configuration backup, JSON export, import from LibreChat or LiteLLM), and what you can and cannot recover from a backup.

What this does

  • Usage shows how many AI requests and tokens the installation consumed in the current and the previous month, broken down by model — site-wide, without any person-related data. It is a transparency counter, not a billing basis.
  • Import/Export downloads the configuration as a JSON file (without API keys) and fills the settings forms from an AnyLLM export, a librechat.yaml or a LiteLLM config.yaml.

Both pages belong to the one configuration shared by Jira and Confluence.

Who can do this

Product administrators (Jira or Confluence administration) on the settings page AnyLLM Chat — Settings — see Opening the Settings and Initial Setup.

Reading the usage statistics

Purpose — keep an eye on consumption per model.

Steps

  1. Open Settings → Usage. While loading, the page shows Loading statistics …
  2. Read the two cards Current month (YYYY-MM) and Previous month (YYYY-MM) — months are counted in UTC.
The Usage page: token usage for the current and previous month, broken down per model.

What each card shows

  • A total line: {requests} requests · {total} tokens ({in} input / {out} output).
  • A table Model | Requests | Input tokens | Output tokens, sorted by total tokens (highest first). Models are listed as <connection ID>::<model> — the connection's technical ID, not its display name; the same model under two connections appears twice.
  • If more than 20 models were used in a month, the remaining ones are aggregated in a row literally named (weitere) (German for "others", shown in both languages).
  • No data yet. appears before the first request of that month has been counted.

What counts as a request

  • Every call to the AI service, not every message: a question that makes the AI look things up in Jira/Confluence or on the web counts one request per round (up to 6 per message).
  • Requests from every surface: chat, quick actions, chat bar, temporary chats and each ↻ Refresh of a dashboard gadget.
  • Not counted: the short extra call that generates a conversation's title.

Prerequisite — the figures come from what the AI service reports back in its streaming responses. OpenAI-compatible services must return the usage object in the stream (the app requests it); Azure OpenAI and Anthropic report it natively. If a service reports nothing, its models stay at zero — ask your provider whether its streaming API returns usage.

Common problems

Message / symptomCauseSolution
Statistics could not be loaded.the request failedreload the page
Usage stays at No data yet. although people chatthe AI service does not return usage in streaming responsescheck with the provider; without a report the app cannot count
Minor deviations between your own count and the pageexactly parallel requests can be counted slightly offexpected — transparency counter, not a billing basis

Exporting the configuration

Purpose — create a backup or move the configuration to another site.

Steps

  1. Open Settings → Import/Export.
  2. In the card Export, click ↓ Export as JSON.

Expected result — your browser downloads anyllm-export-YYYY-MM-DD.json. It contains the saved connections (name, endpoint, models — no API keys and no provider type), the default model, the AI access policy, the rate limit, the site agents (without their fixed model) and the templates/skills (name and text only — the skill setting and agent assignment are not included).

Importing a configuration

Purpose — restore a backup, move to another site, or take over endpoints, models and agents from LibreChat or LiteLLM.

Supported formats

FormatWhat is taken over
AnyLLM-Export (JSON from ↓ Export as JSON)connections, agents, prompts
librechat.yaml (LibreChat)custom endpoints (name, address, models) and modelSpecs with a prompt prefix as agents
LiteLLM config.yaml (LiteLLM)the model list — as one connection named LiteLLM with an empty endpoint that you fill in

Steps

  1. Open Settings → Import/Export.
  2. In the card Import, click Choose file (JSON/YAML) … and pick the file — the page confirms File "{name}" loaded — now check. — or paste the content into the field … or paste content.
  3. Click Check. On success the page reports Detected: {format} (AnyLLM-Export, librechat.yaml or LiteLLM config.yaml); warnings from the parser are listed underneath.
  4. Click Apply ({conn} connections, {agents} agents, {prompts} prompts). The page reports Applied to the forms — please review in each section, add keys/endpoints and SAVE.
  5. Open Connections: review the imported cards (they are appended after your existing ones), set the Provider type, complete the Endpoint, enter each API key, then click Save connections and confirm the Atlassian approval dialog.
  6. Open Agents: review the cards, set a Model where wanted, click Save agents.
  7. Open Prompts & Skills: review the cards, tick the skill checkbox again where needed, click Save prompts.
  8. Open General: set the default model, AI access and rate limit again, click Save.
  9. Open the settings in the other product too and approve the endpoint addresses there (Endpoint approvals) — a yellow notice with Approve now reminds you at the top of every settings page until the addresses are approved.
Import card after Check: the format was detected (librechat.yaml) and Apply pre-fills the connection, agent and prompt forms.

Expected result — only after saving in each section is the imported data validated and stored; Apply alone changes nothing on the server.

What an import does not carry

  • API keys — no format contains them; add them per connection.
  • Provider type — imported connections start as OpenAI-compatible; change it where needed.
  • An agent's fixed model and the general values in an AnyLLM export (default model, AI access, rate limit) — set them again.
  • The skill setting and agent assignment of templates — imported entries arrive as plain templates; tick Skill: run with one click in the chat (sends immediately) again and reassign the agent where needed.
  • Over-long values are cut: connection name 40, endpoint 300, model name 100, agent instructions 8,000, template text 4,000 characters.
  • Apply keeps at most 5 connections, 8 agents and 30 prompts (existing entries count) and drops empty connection cards.

Common problems

Message / symptomCauseSolution
Keine Daten.nothing chosen or pastedchoose a file or paste content
Format nicht erkannt (…)the content is none of the three formatscheck the file
Unbekanntes JSON — erwartet wird ein AnyLLM-Export.a JSON file that is not an AnyLLM exportuse the file from ↓ Export as JSON
librechat.yaml erkannt, aber keine importierbaren Custom-Endpoints/modelSpecs gefunden. / LiteLLM-Config erkannt, aber model_list ist leer.the file holds nothing importablecheck the source file
Verbindung „…“ übersprungen: baseURL fehlt oder ist eine Env-Variable.a LibreChat endpoint uses an environment variable as addresscreate that connection by hand
After the import every request failsthe imported endpoint is not approved yetclick Approve now in the yellow notice — in each product

What you can recover — and what not

DataBackup possible?How
Configuration (connections, agents, prompts, general)yesregular ↓ Export as JSON; restore via Import and saving in each section
API keysno — they cannot be read out of the appkeep them in your own secret management; re-enter after a restore
Endpoint approvalsnot in the filere-approve after an import (per product)
Conversations and memory of usersnot centrallyeach person keeps their own; whoever wants to keep a chat permanently archives it to Confluence (Managing Chat History)
Users' own agents and skillsnot centrallybelong to the individual person

Rendered from the app’s own interface with sample data; the Jira/Confluence frame around it is not shown.

Documentation baseline: app version 0.2.0 · 2026-08-30