Configuration Storage
Adist stores all configuration data in platform-specific directories using theconf package:
- macOS:
~/Library/Application Support/adist/config.json - Linux:
~/.config/adist/config.json - Windows:
%APPDATA%\adist\config.json
Configuration Structure
The configuration has the following top-level keys:projects
Stores information about all your indexed projects:path- Absolute path to the project directoryname- Project identifier used in commandsindexed- Whether the project has been indexedlastIndexed- Timestamp of the last indexing operationhasSummaries- Whether LLM summaries were generated
currentProject
Stores the currently active project identifier:adist get, adist query, or adist chat commands.
block-indexes
Stores the block-based index data for each project:- File metadata (path, size, modification time)
- Array of semantic blocks extracted from the file
- Block hierarchy mapping for parent-child relationships
summaries
Stores LLM-generated summaries when you use the--summarize flag:
- Overall project summary
- Individual file summaries
llmProvider
Stores your LLM provider configuration:type- Provider type:anthropic,openai, orollamamodel- Specific model to useapiUrl- Custom API URL (mainly for Ollama)
Accessing Configuration
You don’t typically need to edit the configuration file manually. Use these commands instead:View Projects
Switch Projects
Configure LLM Provider
View Summaries
Configuration API
Adist’s configuration system provides a simple async API with in-memory caching:get(key)
Retrieve a configuration value:set(key, value)
Set a configuration value:- Persists to disk
- Updates the in-memory cache
- Clears dependent cache entries
has(key)
Check if a key exists:Caching
Adist uses an in-memory cache to improve performance:- Cache timeout: 5 minutes
- Automatic invalidation: When values are updated via
set() - Cache keys: Supports prefix matching for nested keys
Default Configuration
When you first run Adist, it creates a configuration file with these defaults:- Initialize projects (
adist init) - Configure LLM providers (
adist llm-config) - Generate summaries (
adist reindex --summarize)
Configuration Best Practices
API Keys
Never store API keys in the configuration file. Set them as environment variables:Project Paths
Use absolute paths for projects. Relative paths may break if you run Adist from different directories.Backups
The configuration file can grow large with indexes. Consider:- Regular backups if you have many projects
- Periodic cleanup of unused projects
- Reindexing instead of backing up index data (indexes are regenerable)
Multiple Machines
If you sync your config across machines:- Update project paths to match each machine
- Reindex after syncing (paths may differ)
- Keep API keys machine-specific via environment variables
Troubleshooting
Configuration Corruption
If your configuration becomes corrupted:- Back up the file if possible
- Delete the configuration file
- Run
adist initto create a fresh configuration - Re-add your projects
Large Configuration Files
If your configuration file grows too large:- The main culprit is usually block indexes
- Consider removing unused projects
- The cache timeout may need adjustment for very large configs
- File size is typically 1-5 MB per 1000 indexed files