appdirs

Cross-platform application directory locations for Python — determines correct OS-specific paths for user data, config, cache, and log directories. appdirs features: user_data_dir() for persistent user data, user_config_dir() for configuration files, user_cache_dir() for cached data, user_log_dir() for logs, site_data_dir() for system-wide data, site_config_dir() for system-wide config, AppDirs class for grouped access, author parameter for Windows namespacing, version parameter for versioned directories, and consistent behavior across Windows/macOS/Linux. Note: platformdirs is the maintained fork of appdirs.

Evaluated Mar 06, 2026 (0d ago) v1.4.x
Homepage ↗ Repo ↗ Developer Tools python appdirs platform directories config cache cross-platform
⚙ Agent Friendliness
66
/ 100
Can an agent use this?
🔒 Security
90
/ 100
Is it safe for agents?
⚡ Reliability
83
/ 100
Does it work consistently?

Score Breakdown

⚙ Agent Friendliness

MCP Quality
--
Documentation
82
Error Messages
80
Auth Simplicity
99
Rate Limits
99

🔒 Security

TLS Enforcement
92
Auth Strength
92
Scope Granularity
90
Dep. Hygiene
85
Secret Handling
88

Path utility library with no network calls. Platform directories returned by appdirs are user-specific and appropriate for config storage. Do not store secrets in cache_dir — it may be cleaned by OS. Validate returned paths before use if running with untrusted environment variables.

⚡ Reliability

Uptime/SLA
78
Version Stability
82
Breaking Changes
88
Error Recovery
85
AF Security Reliability

Best When

Legacy code using appdirs or quick cross-platform directory lookup — for new projects, prefer platformdirs which is the actively maintained fork of appdirs with identical API.

Avoid When

Starting new projects (use platformdirs instead), temp files (use tempfile), or system-wide directories (permissions issues).

Use Cases

  • Agent config storage — from appdirs import user_config_dir; config_dir = user_config_dir('MyAgent', 'MyOrg'); config_path = os.path.join(config_dir, 'config.json'); os.makedirs(config_dir, exist_ok=True) — cross-platform config path; agent stores config in correct OS location: ~/.config/myagent/ on Linux, ~/Library/Application Support/ on macOS, %APPDATA% on Windows
  • Agent cache directory — from appdirs import user_cache_dir; cache_dir = user_cache_dir('MyAgent'); cache_file = os.path.join(cache_dir, 'api_cache.sqlite'); os.makedirs(cache_dir, exist_ok=True) — cache in correct location; agent caches API responses in OS-appropriate cache dir; OS may clean cache dir on low disk space (especially macOS)
  • Agent data directory — from appdirs import AppDirs; dirs = AppDirs('MyAgent', 'MyOrg'); data_file = os.path.join(dirs.user_data_dir, 'history.db') — persistent data storage; agent stores history database in user data dir; data dir unlike cache dir is not automatically cleaned
  • Agent log directory — from appdirs import user_log_dir; log_dir = user_log_dir('MyAgent'); log_file = os.path.join(log_dir, 'agent.log') — OS-appropriate log location; agent log files stored in system log convention; /var/log/ on Linux system-wide, ~/.local/share/myagent/log/ for user logs
  • Agent grouped dirs — from appdirs import AppDirs; dirs = AppDirs('MyAgent', 'MyOrg', version='1.0'); print(dirs.user_data_dir, dirs.user_config_dir, dirs.user_cache_dir) — all directories from single AppDirs instance; agent application setup creates all needed directories with consistent naming

Not For

  • Maintained library — appdirs is unmaintained; use platformdirs (the maintained fork) instead for new projects
  • Temp files — appdirs doesn't provide temp directory; use Python's tempfile module
  • System-wide config — appdirs site_data_dir requires admin privileges on most systems; for system config prefer user_config_dir

Interface

REST API
No
GraphQL
No
gRPC
No
MCP Server
No
SDK
Yes
Webhooks
No

Authentication

Methods: none
OAuth: No Scopes: No

No auth — platform directory utility library.

Pricing

Model: open_source
Free tier: Yes
Requires CC: No

appdirs is MIT licensed. Free for all use.

Agent Metadata

Pagination
none
Idempotent
Full
Retry Guidance
Not documented

Known Gotchas

  • appdirs is unmaintained — last release was 2018; use platformdirs instead for new projects: pip install platformdirs; platformdirs has identical API with added XDG compliance; agent new code should import from platformdirs not appdirs
  • appdirs does not create directories — user_data_dir() returns path string only; agent code must create the directory: os.makedirs(dirs.user_data_dir, exist_ok=True); missing makedirs causes FileNotFoundError when writing to the directory
  • macOS uses Library/Application Support not ~/.config — on macOS user_config_dir returns ~/Library/Application Support/AppName not ~/.config/AppName; agent code expecting Linux XDG conventions gets different path on macOS; use platformdirs which supports XDG_* environment variable overrides
  • Windows requires both appname and appauthor — on Windows the path is %APPDATA%\AppAuthor\AppName; calling user_data_dir('MyApp') without author returns %APPDATA%\MyApp\MyApp on some versions; always provide both: user_data_dir('MyApp', 'MyOrg') for consistent Windows paths
  • roaming vs non-roaming on Windows — user_data_dir() uses %APPDATA% (roaming, synced); user_data_dir(roaming=False) uses %LOCALAPPDATA% (local, not synced); agent code storing large data should use roaming=False to avoid syncing large caches across Windows machines
  • Environment variable overrides not supported — unlike platformdirs, appdirs does not respect XDG_DATA_HOME, XDG_CONFIG_HOME etc.; agent running in containers or custom environments cannot override paths via env vars; use platformdirs for XDG compliance

Alternatives

Full Evaluation Report

Comprehensive deep-dive: security analysis, reliability audit, agent experience review, cost modeling, competitive positioning, and improvement roadmap for appdirs.

AI-powered analysis · PDF + markdown · Delivered within 30 minutes

$99

Package Brief

Quick verdict, integration guide, cost projections, gotchas with workarounds, and alternatives comparison.

Delivered within 10 minutes

$3

Score Monitoring

Get alerted when this package's AF, security, or reliability scores change significantly. Stay ahead of regressions.

Continuous monitoring

$3/mo

Scores are editorial opinions as of 2026-03-06.

5229
Packages Evaluated
26151
Need Evaluation
173
Need Re-evaluation
Community Powered