# How to List Files in the Root Directory of Open‑SEO Using Bash

> Quickly list Open-SEO files in the root directory using Bash commands like ls -1 ls -l or tree -L 1 Discover configuration source directories and hidden dotfiles.

- Repository: [Every App/open-seo](https://github.com/every-app/open-seo)
- Tags: how-to-guide
- Published: 2026-07-29

---

**Use `ls -1`, `ls -l`, or `tree -L 1` from the repository root to quickly view Open‑SEO's configuration files, source directories, and hidden dotfiles.**

When working with the **every-app/open-seo** repository, inspecting the root directory structure is often the first step in troubleshooting build issues or onboarding new contributors. The root contains essential configuration files like `wrangler.jsonc` and [`package.json`](https://github.com/every-app/open-seo/blob/main/package.json), alongside source folders `src/` and `web/`. Running standard Bash commands from this location gives you immediate visibility into the project layout without opening a GUI file manager.

## Essential Bash Commands for Root Directory Listing

### Basic Alphabetic Listing

The simplest approach uses `ls -1` to display each entry on its own line, sorted alphabetically. This is ideal for quickly checking file names in the Open‑SEO root.

```bash
ls -1

```

Typical output includes entries like [`README.md`](https://github.com/every-app/open-seo/blob/main/README.md), [`package.json`](https://github.com/every-app/open-seo/blob/main/package.json), `src/`, and `web/`.

### Detailed File Metadata

For troubleshooting permissions or checking recent modifications, use `ls -l` to reveal file sizes, timestamps, and permission bits.

```bash
ls -l

```

This long format helps identify executable scripts or verify the last update time for critical files like `Dockerfile.selfhost` or [`compose.yaml`](https://github.com/every-app/open-seo/blob/main/compose.yaml).

### Exposing Hidden Configuration Files

Open‑SEO stores sensitive configuration templates as dotfiles, including `.env.example` and `.gitignore`. Use the `-a` flag to reveal these hidden entries.

```bash
ls -a

```

## Advanced Directory Visualization and Filtering

### Visual Tree Structure

If you have the `tree` utility installed, limit the depth to one level for a clean hierarchical view of the root directory.

```bash
tree -L 1

```

This command produces a visual snapshot of how top-level directories like `src/` and `web/` relate to configuration files.

### Isolating Files from Directories

To list only regular files while excluding folders like `src/` and `web/`, use the `find` command with depth limiting.

```bash
find . -maxdepth 1 -type f -printf '%f\n'

```

This outputs just the files—such as `LICENSE`, [`README.md`](https://github.com/every-app/open-seo/blob/main/README.md), and `wrangler.jsonc`—useful when writing scripts that process only files, not directories.

## Key Files in the Open‑SEO Root Directory

Understanding what appears in your Bash listing helps you navigate the codebase effectively. The **every-app/open-seo** root typically contains:

- **[`README.md`](https://github.com/every-app/open-seo/blob/main/README.md)** – Project overview and quick-start documentation
- **[`CLAUDE.md`](https://github.com/every-app/open-seo/blob/main/CLAUDE.md)** – Additional project context for AI assistants
- **[`package.json`](https://github.com/every-app/open-seo/blob/main/package.json)** – npm dependency definitions and build scripts
- **`wrangler.jsonc`** – Cloudflare Workers deployment configuration
- **[`compose.yaml`](https://github.com/every-app/open-seo/blob/main/compose.yaml)** – Docker Compose orchestration for local development
- **`Dockerfile.selfhost`** – Container instructions for self-hosted deployments
- **`src/`** – Server-side TypeScript source code including middleware and database schemas
- **`web/`** – Frontend Vite application containing UI components and routing logic
- **`.env.example`** – Template for required environment variables
- **`.gitignore`** – Patterns excluding files from version control

## Summary

- Use **`ls -1`** for a quick alphabetical list of Open‑SEO root contents
- Use **`ls -l`** to inspect file permissions, ownership, and modification dates
- Use **`ls -a`** to reveal hidden configuration files like `.env.example` and `.gitignore`
- Use **`tree -L 1`** for a visual hierarchy of the root directory structure
- Use **`find . -maxdepth 1 -type f`** to isolate files and exclude directories like `src/` and `web/`

## Frequently Asked Questions

### What is the fastest way to list files in the Open‑SEO root directory?

The fastest command is **`ls -1`**, which immediately prints each file and folder name on a separate line without loading detailed metadata. This gives you an instant overview of the repository structure without the overhead of permission checks or disk statistics.

### How do I see hidden configuration files in Open‑SEO?

Run **`ls -a`** or **`ls -la`** to display dotfiles like `.env.example`, `.gitignore`, and `.github/` that store environment templates and Git configuration. These files are normally hidden from standard directory listings but contain critical configuration data for the application.

### Can I list only files and exclude directories in Bash?

Yes, use **`find . -maxdepth 1 -type f -printf '%f\n'`** to filter the output to only regular files. This command automatically excludes directories such as `src/` and `web/` from the listing, making it ideal for scripts that need to process only static configuration files.

### Where are the main source directories located in Open‑SEO?

According to the repository structure, the primary code directories are **`src/`** (containing server-side TypeScript logic) and **`web/`** (containing the frontend Vite application). Both directories reside in the root alongside configuration files like [`package.json`](https://github.com/every-app/open-seo/blob/main/package.json) and `wrangler.jsonc`.