API Reference: Overview

Vedana provides several integration paths:

LayerWhat it isWhere
HTTP APIFastAPI with the /api/v1/chat endpointlibs/jims-api
Web WidgetEmbeddable JS widget + backendlibs/jims-widget
Telegram BotBot built with aiogramlibs/jims-telegram
Terminal UIInteractive TUI on Textuallibs/jims-tui
Python APImake_jims_app(), ThreadController, RagPipelinelibs/vedana-core + libs/jims-core

All interfaces use the same kernel (vedana_core.app:app) — meaning the assistant behaves identically in Telegram, the widget, and the HTTP API; only the transport differs.

Entry point: JimsApp

All CLI wrappers work the same way: they take a --app option in module:attr format. For Vedana that’s vedana_core.app:app. The helper jims_core.util.load_jims_app(app_str) imports the object, awaits the coroutine if needed, and returns a JimsApp.

# vedana_core/app.py
app = make_jims_app()  # this is a coroutine

Common CLI configuration

Every CLI service has a shared set of flags:

FlagDefaultDescriptionAvailable on
--appappwhich JimsApp to import (vedana_core.app:app for Vedana)all CLIs
--enable-sentryoffenable Sentry integration (reads SENTRY_DSN, SENTRY_ENVIRONMENT)all CLIs
--enable-healthcheckonbring up a separate aiohttp /healthz serverjims-telegram only. jims-api and jims-widget expose /healthz on their main HTTP port.
--healthcheck-port9000healthcheck port for the separate serverjims-telegram only.
--metrics-port8000 (8001 for jims-widget)Prometheus port. Default differs per service to avoid collisions on one host.all CLIs
--verboseoffturn on debug logsall CLIs

All CLIs also read environment variables with the JIMS_ prefix (auto_envvar_prefix="JIMS").

Note: --healthcheck-port defaults to 9000, which is the same port the backoffice (Caddy) binds to in apps/vedana/docker-compose.yml. If you run jims-telegram on the same host as the backoffice, override it (--healthcheck-port 9100 or similar).

What’s next