.biggiignore
Overview
.biggiignore is a root-level file that tells BIGGI which files and folders it should not access. It uses standard .gitignore pattern syntax, but it only affects BIGGI's file access, not Git.
If no .biggiignore file exists, BIGGI can access all files in the workspace.
Quick Start
The primary mechanism for controlling file access is the permission system in biggi.jsonc. You define tool-level permissions with glob patterns:
{
"permission": {
"read": { "*.env": "deny", "*": "allow" },
"edit": { "dist/**": "deny", "*": "allow" }
}
}
If you have an existing .biggiignore file, it is still supported. The IgnoreMigrator automatically converts .biggiignore patterns into permission deny rules on read and edit tools, so your existing rules continue to work without manual changes.
You can also exclude paths from the file watcher separately using watcher.ignore:
{
"watcher": {
"ignore": ["tmp/**", "logs/**"]
}
}
Pattern Rules
.biggiignore follows the same rules as .gitignore:
#starts a comment*and**match wildcards- Trailing
/matches directories only !negates a previous rule
Patterns are evaluated relative to the workspace root.
What It Affects
File access is controlled through permission-based access control. Each tool (read, edit, glob, grep, write, bash, etc.) has its own permission rules evaluated against glob patterns.
In addition to your explicit permission rules:
- Hardcoded directory ignores — 27 directories are always skipped (e.g.
node_modules,.git,dist,build,.cache,__pycache__,vendor, and others). - Hardcoded file pattern ignores — 11 file patterns are always skipped (e.g. lock files, binary artifacts).
.gitignoreand.ignorefiles are also respected when listing and searching files.
If a file is denied by a permission rule, the tool will report that access was blocked.
Configuration Details
Permission Rules
Permission rules are defined per-tool in biggi.jsonc. Patterns are evaluated in order — the last matching rule wins:
{
"permission": {
"read": {
"*.env": "deny",
"secrets/**": "deny",
"*": "allow"
},
"edit": {
"dist/**": "deny",
"*.lock": "deny",
"*": "allow"
}
}
}
Migrating from .biggiignore
If you already have a .biggiignore file, you don't need to do anything — the IgnoreMigrator reads your existing patterns and applies them as deny rules on read and edit tools automatically. You can optionally move your rules into biggi.jsonc for more granular control (e.g. denying edits but allowing reads).
File Watcher Exclusions
The watcher.ignore setting controls which paths the file watcher skips. This is separate from tool permissions and only affects change detection:
{
"watcher": {
"ignore": ["tmp/**", "logs/**", ".build/**"]
}
}
Checkpoints vs .biggiignore
Checkpoint tracking is separate from file access rules. Files blocked by .biggiignore or permission rules can still be checkpointed if they are not excluded by .gitignore. See the Checkpoints documentation for details.
Troubleshooting
- BIGGI can't access a file you want: Remove or narrow the matching rule in
.biggiignore, or adjust the permission rules inbiggi.jsonc. - A file still appears in lists: Verify both the tool-permission rules and
watcher.ignore; they control different behavior. .biggiignorepatterns are not working: Ensure the file is at the workspace root and uses valid.gitignoresyntax.