Replies: 5 comments
-
Beta Was this translation helpful? Give feedback.
-
|
To support the discussion i created this mermaid graph to identify the marimo editor frontend components that handle the filexplorer flowchart TD
A[MarimoApp\nfrontend/src/core/MarimoApp.tsx] --> B[HomePage\nfrontend/src/components/pages/home-page.tsx]
A --> C[EditPage\nfrontend/src/components/pages/edit-page.tsx]
C --> D[AppChrome\nfrontend/src/components/editor/chrome/wrapper/app-chrome.tsx]
D --> E[FileExplorerPanel\nfrontend/src/components/editor/chrome/panels/file-explorer-panel.tsx]
E --> F[FileExplorer\nfrontend/src/components/editor/file-tree/file-explorer.tsx]
F --> G[state.tsx\nfrontend/src/components/editor/file-tree/state.tsx]
G --> H[RequestingTree\nfrontend/src/components/editor/file-tree/requesting-tree.tsx]
H --> I[requests-network.ts\n/api/files/*]
B --> J[WorkspaceNotebooks\nhome-page.tsx]
J --> K[NotebookFileTree\nhome-page.tsx]
K --> L[home/state.ts\nexpandedFoldersAtom]
J --> M[requests-network.ts\n/api/home/workspace_files]
|
Beta Was this translation helpful? Give feedback.
-
|
Hi @NukeMike. Thank you for starting this discussion and your suggestions. We have been thinking about our file browser experience and how we can improve it going forward. As for viewing current open sessions,
If you start the marimo server in a directory instead of against a file you see all the notebooks in that dir, along with running kernels. Is this what you were referring to? cd /tmp/notebook-dir # includes multiple marimo notebook .py files
uvx marimo edit # or any other way you start marimo session |
Beta Was this translation helpful? Give feedback.
-
|
Yes i discovered the homepage after some time, and even more recently the "return home" shortcut. My work environment is something like this in pyproject.toml so far i open the workspaces either from sim-code-projects or from a subtool directory (to have a cleaner view in the file panel or to select the correct venv. |
Beta Was this translation helpful? Give feedback.
-
|
As a workaround i created these two function in my .bashrc to find marimo notebooks and filter by name or by pattern motree - find marimo notebooks in directory tree filtering by name (optional)motree() {
local name_pattern="${1:-.*}"
grep -RIl \
--include='*.py' \
--exclude-dir='.venv' \
--exclude-dir='.git' \
--exclude-dir='__pycache__' \
'@app.cell' . \
| grep -E "$name_pattern" \
| tree --fromfile
}Example usage: ~/marimo/marimo$ motree "state"
.
└── .
└── _smoke_tests
├── appcomp
│ └── state
│ ├── main.py
│ └── state.py
├── issues
│ ├── 3962-anywidget-partial-state-2.py
│ └── 3962-anywidget-partial-state.py
├── state.py
└── threads
└── state_threading.pymofind - find marimo notebooks in directory tree filtering by pattern in the filemofind() {
local pattern="$1"
if [ -z "$pattern" ]; then
echo "Usage: mofind PATTERN"
return 1
fi
local files
files=$(
grep -RIl \
--include='*.py' \
--exclude-dir='.venv' \
--exclude-dir='.git' \
--exclude-dir='__pycache__' \
'@app.cell' . \
| xargs -r grep -Il -- "$pattern"
)
echo "$files" | tree --fromfile
}Example usage: ~/marimo/marimo$ mofind "mo.state"
.
└── .
└── _smoke_tests
├── appcomp
│ └── state
│ └── state.py
├── inputs
│ └── keyboard_shortcuts.py
├── issues
│ ├── 2327_table_staleness.py
│ ├── 643.py
│ └── 8023_stale_table.py
├── state.py
├── threads
│ └── state_threading.py
└── ws.py |
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
-
There are currently three different file navigation surfaces in marimo:
mo.ui.file_browser(in-notebook)They serve different purposes, but their capabilities and filtering semantics are not aligned, which makes navigation inconsistent across workflows.
Problem
While working across notebooks and scripts, it’s common to:
.pyutilities from a notebookToday:
Proposal
Keep the distinct purposes of each component, but align key controls and filtering behavior.
1. Introduce consistent file-type filters across all three
Add first-class toggles:
Show notebooks only(*.pywith marimo metadata or detection)Show Python only(*.py)Hide hidden files(already exists in some form)These should be available in:
mo.ui.file_browser2. Unify filtering/search semantics
Filters should behave consistently across components:
3. Minimal UI suggestion (editor side panel)
In the FileExplorer toolbar, something like:
This would already cover most navigation workflows without adding complexity.
Related idea: Active notebook / kernel visibility
Tangential but closely related to navigation:
There is currently no global visibility into running sessions.
A shared panel or API could expose:
This would be especially useful in:
I noticed related building blocks already exist:
Would the team consider exposing a stable, read-oriented surface for this, so users can build dashboards and monitoring workflows without relying on ps-based scripts?
Relevant files
Beta Was this translation helpful? Give feedback.
All reactions