A lightweight tool for controlling file visibility in AI agent workspaces.
Funveil creates a "veiled" view of a codebase where specific files or line ranges can be hidden from an AI agent while preserving file structure and line numbers.
- Two modes: Whitelist (show only what's needed) or Blacklist (hide secrets)
- Physical file removal: Fully-veiled files are removed from disk, not replaced with markers
- Partial veils: Hide specific line ranges within files
- Content-addressable storage: Hidden content stored with SHA-256 hash
- Metadata system: Parsed symbol metadata stored alongside CAS for blind queries (details)
- Query-based unveiling: Unveil by symbol name, callers, or callees (
--symbol,--callers-of,--callees-of) - Layered disclosure: 4 levels from metadata-only to full source (
--level 0-3) - Token budget mode: Automatic disclosure planning within a token budget (
fv disclose --budget) - Smart context: Unveil a function and its dependencies (
fv context <fn> --depth N) - Permission preservation: Original Unix permissions restored on unveil
- Undo/redo: Reversible veil operations with full action history
- Checkpoints: Save and restore veil states
- Profiles: Save/load named veil configurations (
fv profile save/load) - Glob patterns: Shell-style wildcards for matching files (
*.py,src/**/*.rs) - Progressive defaults: Outline mode for
fv show, code-onlyfv entrypoints, depth-1fv trace - 12-language parsing: Code-aware veiling with tree-sitter (details)
# Initialize (default: whitelist mode)
fv init
# Unveil what the agent needs
fv unveil README.md
fv unveil src/public_api.py
# Check status
fv status
# Before committing, unveil everything
fv unveil --all
git add .
git commit -m "Changes"
# Restore veils for next session
fv restorecargo build --release- docs/TUTORIAL.md - Start here
- SPEC.md - Specification index
- specs/ - Detailed specs (config, storage, veil format, CLI, algorithms)
- docs/LANGUAGE_FEATURES.md - Supported languages & analysis
- CONTRIBUTING.md - Development setup
- MUTATION_TESTING.md - Mutation testing guide & results
- Running under gVisor — OS-level sandboxing with runsc
AGPL-3.0