Project Detection
Expose automatically scans configured directories to find development projects.
How Detection Works
Expose looks for specific files that indicate a project type:
| Project Type | Detected By |
|---|---|
| Node.js | package.json |
| Python | requirements.txt, pyproject.toml, Pipfile |
| Go | go.mod |
| Rust | Cargo.toml |
| Ruby | Gemfile |
| PHP | composer.json |
| Static Site | index.html (no other markers) |
| Docker | Dockerfile, docker-compose.yml |
Framework Detection
For each project type, Expose detects the specific framework:
Node.js Frameworks
- Next.js —
next.config.jsornextin dependencies - Nuxt —
nuxt.config.tsornuxtin dependencies - Vite —
vite.config.jsorvitein dependencies - React —
reactin dependencies (without Next/Vite) - Vue —
vuein dependencies - Angular —
angular.json - Svelte —
svelte.config.js - Express —
expressin dependencies - Fastify —
fastifyin dependencies - NestJS —
@nestjs/corein dependencies - Astro —
astro.config.mjs - Gatsby —
gatsby-config.js - Remix —
@remix-run/reactin dependencies
Python Frameworks
- Django —
djangoin requirements ormanage.py - FastAPI —
fastapiin requirements - Flask —
flaskin requirements - Streamlit —
streamlitin requirements
Go Frameworks
- Gin —
github.com/gin-gonic/ginin go.mod - Echo —
github.com/labstack/echoin go.mod - Fiber —
github.com/gofiber/fiberin go.mod
Rust Frameworks
- Axum —
axumin Cargo.toml - Actix —
actix-webin Cargo.toml - Rocket —
rocketin Cargo.toml
Ruby Frameworks
- Rails —
railsin Gemfile - Sinatra —
sinatrain Gemfile
PHP Frameworks
- Laravel —
laravel/frameworkin composer.json - Symfony —
symfony/framework-bundlein composer.json
Default Ports
Each framework has a default port:
| Framework | Default Port |
|---|---|
| Next.js | 3000 |
| Nuxt | 3000 |
| Vite | 5173 |
| Create React App | 3000 |
| Vue CLI | 8080 |
| Angular | 4200 |
| Express | 3000 |
| FastAPI | 8000 |
| Django | 8000 |
| Flask | 5000 |
| Rails | 3000 |
Scan Directories
Configure which directories to scan:
- Go to Settings → General
- Add directories under Scan Directories
- Expose scans these directories recursively
Default Directories
~/Developer~/Projects~/Code
Excluded Directories
Expose ignores:
node_modules/.git/vendor/__pycache__/- Hidden directories (starting with
.)
Project Groups
Projects in the same parent directory are grouped together. For example:
~/Projects/my-app/├── frontend/ → "my-app / frontend"├── backend/ → "my-app / backend"└── docs/ → "my-app / docs"Refreshing Projects
To rescan for projects:
- Click Rescan in the toolbar
- Or use the keyboard shortcut
⌘R
Projects are also scanned automatically:
- On app launch
- When scan directories change
- Every 5 minutes in the background