How to List Files in the GeoLibre Repository: A Complete Guide
To list files in the GeoLibre repository, use git ls-files for tracked files, git ls-tree -r HEAD --name-only for the current commit, or browse the GitHub web interface without cloning.
GeoLibre is an open-source geospatial platform organized as a single npm workspaces monorepo. The repository contains multiple JavaScript/TypeScript workspaces, a Python FastAPI sidecar, and a standalone Python package. Understanding how to navigate its file structure is essential for contributors and developers exploring the codebase hosted at opengeos/GeoLibre.
Using Git to List Files Locally
The most reliable way to list files in GeoLibre is to clone the repository and use standard Git commands. These commands work across all branches and reflect the actual state of the working tree.
List All Tracked Files
The git ls-files command outputs every file currently tracked by Git in a flat list:
git clone https://github.com/opengeos/GeoLibre.git
cd GeoLibre
git ls-files
This reveals paths like apps/geolibre-desktop/src-tauri/src/lib.rs and packages/map/src/cesium-camera.ts, showing how the modular workspace structure maps to the filesystem.
List Files at a Specific Commit
To see files as they exist at the current HEAD commit without working tree modifications:
git ls-tree -r HEAD --name-only
This is useful when comparing repository states or auditing what was included in a specific release.
Check Modified and Untracked Files
During development, git status shows which files have changed, been staged, or are untracked:
git status
This helps identify new files in backend/geolibre_server/ or python/ that may need to be added to version control.
Browsing Files Without Cloning
If you prefer not to clone the repository, several options exist for exploring the file structure remotely.
GitHub Web Interface
Navigate directly to the repository root:
https://github.com/opengeos/GeoLibre
The web interface displays the full directory tree and allows drilling into nested workspaces like apps/, packages/, and workers/.
GitHub API (Programmatic Access)
For automation or tooling, query the GitHub API:
curl -s https://api.github.com/repos/opengeos/GeoLibre/contents/ | jq '.[].name'
This returns top-level directory names without downloading the entire repository.
Understanding the GeoLibre File Structure
The repository layout follows a strict organization pattern documented in docs/architecture.md. Here are the key directories you'll encounter when listing files:
Applications (apps/)
apps/geolibre-desktop/— Desktop application source with Tauri integration and Vite build configuration
Core Libraries (packages/)
packages/core/— Foundational utilities including@geolibre/corepackages/map/— Map rendering components (examinepackages/map/src/cesium-camera.ts)packages/ui/— Shared UI component library
Python Components
backend/geolibre_server/— FastAPI sidecar with entry point atbackend/geolibre_server/app/main.pypython/— StandalonegeolibreJupyter anywidget package
Testing and Documentation
e2e/— Playwright end-to-end test suite with specs likee2e/smoke.spec.tsdocs/— Architecture documentation and guides
Key Files to Examine First
When you list files in GeoLibre, prioritize these paths for understanding the codebase:
package.json— Defines workspace boundaries and root dependenciesapps/geolibre-desktop/vite.config.ts— Central build configurationpackages/core/src/expressions.ts— Core style expression utilitiesbackend/geolibre_server/app/main.py— Python API entry pointREADME.md— Project overview and contribution guidelines
Summary
- Clone and use
git ls-filesfor complete, filterable file listings of the GeoLibre repository - Use
git ls-tree -r HEAD --name-onlywhen you need commit-specific file states - Browse
https://github.com/opengeos/GeoLibreto explore without downloading - Remember the monorepo structure: files are organized under
apps/,packages/,workers/,backend/, andpython/directories - Reference
docs/architecture.mdfor authoritative documentation on module responsibilities
Frequently Asked Questions
How do I list only files in a specific GeoLibre workspace?
Run git ls-files with a path prefix matching the workspace directory. For example, git ls-files packages/core/ returns only files within the @geolibre/core package. This filters the output to relevant source code without manual searching.
Can I search for specific file types in the GeoLibre repository?
Yes. Pipe git ls-files to grep or use pattern matching: git ls-files "*.ts" finds all TypeScript files, while git ls-files "**/*.py" locates Python files across the backend and python directories. This works because Git stores pathnames with forward slashes regardless of platform.
What's the difference between git ls-files and git ls-tree?
git ls-files shows the working tree state including staged changes, while git ls-tree examines a specific Git object (typically a commit) and returns exactly what was stored at that point. Use ls-tree when you need historical accuracy; use ls-files during active development.
Does GeoLibre have files that aren't tracked by Git?
Yes. Generated artifacts like node_modules/, build outputs in dist/, and Python __pycache__/ directories are excluded via .gitignore. These won't appear in git ls-files but will show as untracked with git status if present locally.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →