Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/onenot8/issueLoop/llms.txt

Use this file to discover all available pages before exploring further.

These functions handle initial configuration, system health checks, and diagnostics. use is the only function you must call before the rest of the API — every other function reads the global config object that use populates. All other functions in this group are read-only and safe to call at any time.

use

The primary configuration function. Call it once at startup, before any other issueloop function. Calling it a second time replaces the entire global config.
issueloop.use(
    database="local",
    database_path="data/issueloop.db",
    retention_days=30,
    llm={
        "providers": [
            {"provider": "anthropic", "model": "claude-sonnet-4-6", "api_key": "sk-..."},
            {"provider": "ollama",    "model": "qwen2.5-coder:7b"},
        ]
    },
    notify={"webhook": "https://hooks.example.com/issueloop"},
)
database
str
default:"\"local\""
Storage backend to use. "local" stores tickets in a local SQLite file. "supabase" uses a Supabase-hosted database.
database_path
str
Path to the SQLite database file. Only used when database="local". Defaults to data/issueloop.db relative to the IssueLoop working directory.
retention_days
int
default:"30"
Default age threshold for cleanup(). Tickets older than this many days are eligible for deletion by cleanup() when no explicit older_than_days is passed.
llm
dict
LLM provider configuration. Pass a single provider dict for one provider, or wrap multiple in {"providers": [...]} for automatic fallback. Each provider dict supports:
KeyDescriptionDefault
provider"ollama", "anthropic", or "openai""ollama"
modelModel name"qwen2.5-coder:7b"
api_key / apiKeyAPI key (required for Anthropic and OpenAI)none
base_url / baseUrlBase URL for Ollama or a compatible endpoint"http://localhost:11434"
token_size / tokenSizemax_tokens for Anthropic/OpenAI calls1024
When omitted, IssueLoop falls back to Ollama with qwen2.5-coder:7b at http://localhost:11434.
notify
dict
Notification configuration. Errors caught internally by IssueLoop (LLM failures, escalated tickets) are sent here.
KeyDescription
webhookURL to POST error payloads to
emailEmail address (reserved for future use)
Returns the new Config object (a dataclass with database, database_path, retention_days, llm, llm_providers, and notify fields).
Calling use() a second time replaces the global config in its entirety. If you need to update a single setting, call get_config() first, extract the values you want to keep, then call use() with the full set.

get_config

Returns the current global Config object as set by the most recent use() call. Useful for inspecting active settings or for passing config values to lower-level modules.
cfg = issueloop.get_config()
print(cfg.database)          # "local"
print(cfg.llm.provider)      # "anthropic"
print(cfg.llm.model)         # "claude-sonnet-4-6"
print(cfg.notify.webhook)    # "https://..."
print(cfg.retention_days)    # 30
Returns the Config dataclass instance. Before use() is ever called, returns a default Config with database="local", retention_days=30, and Ollama as the LLM provider.

list_repos

Returns the list of repository names defined in data/test_manifest.json. Returns an empty list if the manifest file does not exist.
repos = issueloop.list_repos()
# ["myrepo", "another-service"]
Returns a list[str] of repository name strings in the order they appear in the manifest.

health_check

Runs a basic liveness check on the configured backend and returns a summary dict. Does not run tests or query tickets — it only verifies that the database connection can be established.
status = issueloop.health_check()
# {"database": "local", "llm_provider": "anthropic", "ok": True, "issues": []}
Returns a dict with:
database
str
The configured backend type.
llm_provider
str
The name of the primary LLM provider.
ok
bool
True if all checks passed. False if any check raised an exception.
issues
list[str]
List of human-readable error messages for any failed checks. Empty when ok is True.

get_crash_log

Returns IssueLoop’s own internal error log — entries written whenever the library catches an unexpected exception (LLM provider failures, escalated tickets, notification delivery errors).
crashes = issueloop.get_crash_log(limit=20)
limit
int
default:"50"
Maximum number of entries to return. Returns the most recent limit entries from data/logs/crashes.jsonl.
Returns a list of crash entry dicts:
ts
str
ISO 8601 UTC timestamp of when the error was caught.
context
str
A short label identifying which internal operation failed (e.g. "llm.chat (provider 1/2: anthropic)", "ticket.escalate").
error
str
String representation of the exception.
traceback
str
Full Python traceback as a string.
Returns an empty list if data/logs/crashes.jsonl does not yet exist.

get_notification_config

Returns the notification settings from the current config without exposing the full Config object.
notify = issueloop.get_notification_config()
# {"email": None, "webhook": "https://hooks.example.com/issueloop"}
Returns a dict with:
webhook
str | None
Configured webhook URL, or None if not set.
email
str | None
Configured email address, or None if not set.

Build docs developers (and LLMs) love