File Explorer
FreeReal-time file tree VS Code style, optimized for mobile: multi-select, clipboard, content search, Git integration and automatic refresh when the AI modifies the project.
File tree
- •Lazy loading by level: only the folders you open are read from disk
- •VS Code-style compact folder grouping: chains like src/main/java collapse into a single row
- •Virtual flattening — only visible rows are rendered
- •Smooth spring-damped animations when creating, deleting or reordering files
- •Expansion state persists during the session
- •Active file indicator: highlighted background and primary-colored name
Icons & colors
The explorer uses DevIcons to display the real language or framework icon (TypeScript, Python, Rust, React, Vue…). Folders with known names get VS Code-style semantic colors:
File operations
Create
2-step sheet with destination folder picker and quick templates
Rename
Inline validation; updates paths of expanded child folders
Duplicate
Generates a unique name (file_copy1.kt) — works on files and folders
Delete
Confirmation with error icon; folders are deleted recursively
Copy path
Absolute path to the system clipboard
Reveal active file
Expands ancestors and animated scroll to the row
Quick file templates
The create sheet includes a template gallery to create files with default name and a single tap:
Cut, copy & paste
- •Internal clipboard supporting multiple files at once
- •Cut files are shown at 45% opacity while pending move
- •Paste into any folder from the context menu
- •If you paste a copy with a duplicate name, it auto-generates: name (1).ext, name (2).ext…
- •Destination folder picker accessible from the header when there is clipboard content
Multi-select
Long-press on any row activates multi-select mode (with optional haptic feedback). Each node shows a checkbox and the header is replaced by a context bar:
Select all
Marks all visible nodes
Cut
Marks the selection for moving
Copy
Marks the selection for duplication
Batch delete
Deletes each path and reports successes/failures separately
Search
Search by name
Header-integrated bar (animated expandable). Recursive case-insensitive filtering in real time, showing the parent path on the right.
Find in folder (content)
Bottom sheet that searches text inside file contents. Active from 2 characters, skips binaries and files over 2 MB, max 200 results. Each result shows file, line and context.
Dotfiles (.gitignore, .env, .idea…) are hidden by default, with a toggle in the ⋮ menu. Directories like node_modules, .git, .gradle, build and __pycache__ are always excluded.
Sorting
Name A→Z
Ascending alphabetical (default)
Name Z→A
Descending alphabetical
Type
Grouped by extension, then by name
Size
By file size
Folders always appear before files at the same level, regardless of the chosen sort mode.
Git integration
Every file and folder displays a badge with its Git status, propagated upward in the tree with priority (conflict > modified > deleted > added).
After every save, the explorer refreshes the Git status automatically. The file name also changes color when it has changes.
Auto-refresh
- •The tree updates by itself when a file is created, modified, deleted or renamed — including changes made by the AI agent
- •Filters events by active project and reloads both directories on renames
- •Manual refresh from the header with animated spinner
- •Save events trigger a full Git status refresh
Performance
- •Stable keys (file.path) to reuse rendered rows
- •Disk IO always in background (create, delete, rename, duplicate, search)
- •Automatic filter of files > 2 MB in content search
- •Flattened tree only recomputes when relevant state changes