Seshat AIDocumentation

Documentation / Getting started

Configuration

Choose a provider and a model, set API keys, and enable the optional tools.

Seshat needs at least one model provider. You can set it up from the command line, from the terminal interface, or with environment variables.

From the command line

seshat config --provider anthropic --api-key sk-ant-...   # set a provider and its key
seshat config --model anthropic:claude-sonnet-4-20250514  # choose the model (provider:model)
seshat config --print                                     # show the current configuration

seshat config also takes --region, --project-id, --base-url and --resource for the cloud providers, --cwd for the default working directory, --db for the database path, and --search to set only the web search keys. The keys you save this way are stored encrypted, per provider, in the local database.

In the terminal interface, press ctrl+, for providers and ctrl+m for models. A key entered in the providers screen is stored the same way, so it never reaches seshat.json: that file holds settings, not secrets. The key that protects the database is secret.key, next to it in the runtime folder.

With environment variables

Set the variable of the provider you want. This is the simplest way for servers and scripts:

export ANTHROPIC_API_KEY=sk-ant-...
A provider needs a keyfor example anthropicor openaiVariable set ?It is usedANTHROPIC_API_KEY,OPENAI_API_KEY and so onKey saved ?The saved key is usedseshat config stores itencrypted, per providerNot usablethe provider isrefused with an erroryesnoyesno
This is the order used by seshat run and by Go programs that read the configuration. A .env file only fills variables that are not already set.

Other settings follow a simple ladder:

Environment variablesSESHAT_MODEL, SESHAT_API_KEY, SESHAT_RUNTIME_ROOT,ANTHROPIC_API_KEY and the other provider variablesThe config fileconfig.yaml in the runtime folder,or in your home folderBuilt-in defaultsthe SQLite database, the storage folder, the limitsA .env fileread from the current folderfirst. It only sets variablesthat are not already set.wins overwins overfills
Environment variables include those loaded from a .env file in the current folder.

The main variables are SESHAT_MODEL (provider:model), SESHAT_API_KEY, SESHAT_RUNTIME_ROOT, SESHAT_DB_PATH, SESHAT_CWD, SESHAT_DEBUG, and for the cloud providers SESHAT_PROVIDER_BASE_URL, SESHAT_PROVIDER_REGION, SESHAT_PROVIDER_PROJECT_ID and SESHAT_PROVIDER_RESOURCE.

Supported providers

ProviderIDAuthenticationSetting
AnthropicanthropicAPI keyANTHROPIC_API_KEY
OpenAIopenaiAPI keyOPENAI_API_KEY
Mistral AImistralAPI keyMISTRAL_API_KEY
Google GeminigeminiAPI keyGOOGLE_API_KEY or GOOGLE_GEMINI_API_KEY
DeepSeekdeepseekAPI keyDEEPSEEK_API_KEY
OllamaollamaNoneLocal, localhost:11434
OpenRouteropenrouterAPI keyOPENROUTER_API_KEY
CodexcodexOAuthseshat login, or CODEX_API_KEY or CODEX_ACCESS_TOKEN
Z.aiz-aiAPI keyZ_AI_API_KEY or ZHIPUAI_API_KEY
MiniMaxminimaxAPI keyMINIMAX_API_KEY
AWS BedrockbedrockAWS credentialsAWS_ACCESS_KEY_ID, AWS_REGION (default us-east-1)
Google Cloud Vertex AIvertexGoogle CloudANTHROPIC_VERTEX_PROJECT_ID, CLOUD_ML_REGION (default us-east5)
Azure AI FoundryfoundryAPI keyANTHROPIC_FOUNDRY_API_KEY, and ANTHROPIC_FOUNDRY_BASE_URL or ANTHROPIC_FOUNDRY_RESOURCE
Cloudflare Workers AIworkers-aiAPI keyCLOUDFLARE_API_KEY and CLOUDFLARE_ACCOUNT_ID
OpenCode ZenopencodeAPI keyOPENCODE_API_KEY
Kimi (Moonshot AI)kimiAPI keyMOONSHOT_API_KEY or KIMI_API_KEY

The models each provider offers, with their context sizes and capabilities, are in Providers and models.

Optional tools

Some tools exist in every installation but do nothing until you give them what they need.

ToolWhat it doesWhat it needs
generate_imageImage generationAn image_generation provider (openai or gemini) in the configuration, and a key. It reuses the key of your model provider when they are the same
text_to_speech, speech_to_textSpeech synthesis and transcriptionA text_to_speech or speech_to_text provider in the configuration, and a key
web_searchSearch the webA key for one search service: TAVILY_API_KEY, EXA_API_KEY, JINA_API_KEY or LANGSEARCH_API_KEY, or SEARXNG_BASE_URL. seshat config --search sets them. WEB_SEARCH_PROVIDER picks the service
devto_publishPublish to DEVDEV_TO_API_KEY
notebook_*Work in a live Jupyter kernelJUPYTER_SERVER_URL (default http://localhost:8888) and JUPYTER_TOKEN

Reference

Updated on 2026-10-13