Data Storage and Permissions
Local configuration storage, file permissions, and user guidance
Data Storage and Permissions
Local CLI and Desktop state use plaintext SQLite/JSON files:
- Workspace indexes, platform settings, and local tokens:
~/.downcity/downcity.db - Agent definitions and identity instructions:
~/.downcity/agents/<agent_id>/agent.jsonandSOUL.md - Plugin definitions and profiles:
~/.downcity/plugins/<plugin_id>/plugin.jsonandconfig.toml
File Permissions and Boundaries
Database files, Agent configuration directories, and Plugin configuration files are restricted to the current user by default (0600 for files and 0700 for directories). This is not encrypted storage: a process that can read the local user's files can also read these configurations.
city env is an explicit file-based configuration feature. Global Env is stored in plaintext at
~/.downcity/.env, and Workspace Env is stored in plaintext in the project .env. The Global file
is restricted to the current user, and project .env is added to .gitignore by default. Use the
launch environment or a secret manager when stronger secret protection is required.
Best practices
- Never commit
~/.downcityor local configuration files. - Never commit Workspace
.env, and keep~/.downcity/.envaccessible only to your user account. - Use process environment variables or an operating-system secret manager when stronger protection is required.