Skip to content

e6qu/funveil

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Funveil

License Build Line Coverage Branch Coverage Tests Code LOC Test LOC

A lightweight tool for controlling file visibility in AI agent workspaces.

Overview

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.

Key Features

  • 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-only fv entrypoints, depth-1 fv trace
  • 12-language parsing: Code-aware veiling with tree-sitter (details)

Quick Start

# 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 restore

Building

cargo build --release

Documentation

License

AGPL-3.0

About

Funveil project

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages