# Default Configuration Options for Litho: A Complete Guide to deepwiki-rs Settings

> Explore Litho's default configuration options in deepwiki-rs. Discover automatic settings for project paths, LLM parameters, caching, and file filtering. Get started instantly without a litho.toml file.

- Repository: [Sopaco/deepwiki-rs](https://github.com/sopaco/deepwiki-rs)
- Tags: how-to-guide
- Published: 2026-02-16

---

**Litho operates with sensible defaults defined in [`src/config.rs`](https://github.com/sopaco/deepwiki-rs/blob/main/src/config.rs), allowing immediate use without a [`litho.toml`](https://github.com/sopaco/deepwiki-rs/blob/main/litho.toml) file by automatically configuring project paths, LLM parameters, caching behavior, and file filtering rules.**

When working with the `sopaco/deepwiki-rs` repository, understanding the default configuration options for Litho is essential for effective documentation generation. The tool centers around a `Config` struct that implements the `Default` trait, supplying out-of-the-box values for every configurable parameter. These defaults activate automatically when users run Litho without providing a custom [`litho.toml`](https://github.com/sopaco/deepwiki-rs/blob/main/litho.toml) configuration file.

## Core Configuration Defaults

The primary `Config` struct in **src/config.rs** defines the following default values:

- **`project_name`**: `None` (Litho infers the name from the repository via `get_project_name`)
- **`project_path`**: `"."` (current working directory)
- **`output_path`**: `"./litho.docs"` (generated documentation directory)
- **`internal_path`**: `"./.litho"` (hidden working directory for intermediate files)
- **`target_language`**: **English** (`TargetLanguage::English`) as defined in **src/i18n.rs**
- **`analyze_dependencies`**: `true`
- **`identify_components`**: `true`
- **`max_depth`**: `10` (maximum recursion depth for codebase traversal)
- **`core_component_percentage`**: `20.0` (percentage of files considered core components)
- **`max_file_size`**: `64 KB` (files larger than this are skipped)
- **`include_tests`**: `false`
- **`include_hidden`**: `false`

### File Filtering Defaults

Litho excludes specific directories, files, and extensions by default:

**Excluded directories** (`excluded_dirs`):

```rust
[".litho", "litho.docs", "target", "node_modules", ".git", 
 "build", "dist", "venv", ".svelte-kit", "__pycache__", 
 "__tests__", "__mocks__", "__fixtures__"]

```

**Excluded files** (`excluded_files`):

```rust
["litho.toml", "*.litho", "*.log", "*.tmp", "*.cache", 
 "bun.lock", "package-lock.json", "yarn.lock", "pnpm-lock.yaml", 
 "Cargo.lock", ".gitignore", "*.tpl", "*.md", "*.txt", ".env"]

```

**Excluded extensions** (`excluded_extensions`):

```rust
["jpg", "jpeg", "png", "gif", "bmp", "ico", "mp3", "mp4", 
 "avi", "pdf", "zip", "tar", "exe", "dll", "so", "archive"]

```

## LLM Configuration Defaults

The `LLMConfig` struct, also defined in **src/config.rs**, provides these defaults:

- **`provider`**: `LLMProvider::default()` (typically Ollama or ModelScope)
- **`api_key`**: Reads from `LITHO_LLM_API_KEY` environment variable, falls back to empty string
- **`api_base_url`**: `"https://api-inference.modelscope.cn/v1"`
- **`model_efficient`**: `"ZhipuAI/GLM-5"` (used for routine inference)
- **`model_powerful`**: `"Qwen/Qwen3-Next-80B-A3B-Instruct"` (used for complex tasks or fallback)
- **`max_tokens`**: `131072`
- **`temperature`**: `0.1`
- **`retry_attempts`**: `3`
- **`retry_delay_ms`**: `5000`
- **`timeout_seconds`**: `300`
- **`disable_preset_tools`**: `false`
- **`max_parallels`**: `3` (parallel LLM calls)

## Cache and Chunking Defaults

### Cache Configuration

The `CacheConfig` struct controls intermediate storage:

- **`enabled`**: `true`
- **`cache_dir`**: `".litho/cache"`
- **`expire_hours`**: `8760` (approximately one year)

### Chunking Configuration

For processing large documentation files, `ChunkingConfig` provides:

- **`enabled`**: `true`
- **`max_chunk_size`**: `8000` characters (approximately 2000 tokens)
- **`chunk_overlap`**: `200` characters
- **`strategy`**: `"semantic"` (section-based chunking)
- **`min_size_for_chunking`**: `10000` characters

## How to Use Default Configuration in Code

You can instantiate the default configuration programmatically using the `Default` trait implementation:

```rust
use deepwiki_rs::config::Config;

// Create a configuration with all defaults
let default_cfg = Config::default();

println!("Output directory: {}", default_cfg.output_path.display());
println!("LLM efficient model: {}", default_cfg.llm.model_efficient);
println!("Cache enabled: {}", default_cfg.cache.enabled);

```

This approach yields a fully populated configuration ready for immediate use without requiring a [`litho.toml`](https://github.com/sopaco/deepwiki-rs/blob/main/litho.toml) file on disk.

## Summary

- **Litho requires no configuration file** to run, using sensible defaults defined in [`src/config.rs`](https://github.com/sopaco/deepwiki-rs/blob/main/src/config.rs) for all parameters.
- **File filtering** automatically excludes common build directories, lock files, and binary formats to focus analysis on source code.
- **LLM defaults** target Chinese model providers (ModelScope, ZhipuAI, Qwen) with conservative retry and timeout settings.
- **Cache persistence** lasts one year by default, storing intermediate data in `.litho/cache`.
- **Chunking** processes files larger than 10,000 characters using semantic section-based splitting with 8,000 character chunks.

## Frequently Asked Questions

### What happens if I don't provide a litho.toml file?

Litho automatically uses the `Default` implementation of the `Config` struct defined in [`src/config.rs`](https://github.com/sopaco/deepwiki-rs/blob/main/src/config.rs). Every setting—from output paths to LLM parameters—receives a sensible default value, allowing the tool to execute immediately without user configuration.

### Which LLM models does Litho use by default?

According to the `LLMConfig` defaults in [`src/config.rs`](https://github.com/sopaco/deepwiki-rs/blob/main/src/config.rs), Litho uses `"ZhipuAI/GLM-5"` for efficient routine inference and `"Qwen/Qwen3-Next-80B-A3B-Instruct"` for complex tasks or fallback scenarios. Both default to the ModelScope API endpoint at `https://api-inference.modelscope.cn/v1`.

### How long does the cache persist by default?

The `CacheConfig` struct sets `expire_hours` to `8760` by default, which equals approximately one year. Cached data stores in the `.litho/cache` directory relative to the project root, and caching remains enabled (`enabled: true`) unless explicitly disabled.

### Can I override specific defaults without creating a full config file?

While the source code in [`src/config.rs`](https://github.com/sopaco/deepwiki-rs/blob/main/src/config.rs) provides the `Default` trait for initialization, runtime overrides typically require a [`litho.toml`](https://github.com/sopaco/deepwiki-rs/blob/main/litho.toml) file or environment variables such as `LITHO_LLM_API_KEY`. The codebase does not currently expose command-line flags for individual configuration parameters beyond the standard CLI interface defined in [`src/cli.rs`](https://github.com/sopaco/deepwiki-rs/blob/main/src/cli.rs).