alabs is a local macOS workspace for understanding the engineering environment around your software, and for working on that software in the same place.
alabs is for people who can build working software, often with AI coding tools, but who do not fully understand the files, configuration, Git state and connections that make it work. I built it for myself first. I am one of those people.
alabs does not hide the real project behind a new format. You work on the real files, in the real folders. alabs adds ways to see what is there: facts about each folder, rendered documentation, Git changes, and saved maps whose every box points to real files.
I built alabs to help close that gap for myself. I wanted a workspace that could show me what exists, help explain how the pieces connect, and still let me work in the real repository instead of hiding it behind another system.
You choose one folder, the alabs root. Each folder inside it is a work folder, which can be a repository or any ordinary folder. All project file access is bounded to that root.

| Home | Every work folder and knowledge folder in the root, and a map of the root once one is built. |
| Overview | Facts about one work folder: its README, top-level entries, Git branch and last commit, and whether it has a Visual View. Nothing is inferred from names. |
| Files and editor | The real folder tree, with Monaco editing the real file. A save that fails is reported as failed. |
| Markdown | Rendered beside its source, with raw HTML, scripts and images removed. |
| Search | Literal search inside one work folder, on request, respecting .gitignore. There is no index. |
| Changes | Git status and per-file comparisons, read without running anything in the repository. |
| Visual Views | A saved map of a work folder (map.svg plus view.json). Select a landmark to open its files. |
| Knowledge | Context, Wiki and Definitions: ordinary folders you can reach from any work folder. |
| Task packet, Terminal | Copy a plain-text task with chosen files for another coding tool, or open a work folder in Terminal. |
| Raven (optional model) | An explicit Run Raven builds or rebuilds a Visual View using a local Ollama model. |
| Ask local model (optional model) | On the Wiki Overview, ask a question about the text files in context and wiki. |
alabs runs on macOS only and is built from source. There is no signed download. The versions below are what it was tested on, not minimum requirements.
| What's needed | What's been tested |
|---|---|
| macOS | 26.6 on Apple Silicon |
| Node.js | 26.8.1 |
| npm | 11.19.0 |
| Rust | 1.98.1 |
Xcode Command Line Tools (provides git) | 27.0 |
| Google Chrome | Browser runtime only |
| Ollama | Optional |
Get the source:
git clone https://github.com/dan-sheehan/alabs.git
Move into it:
cd alabs
Install the exact dependency versions in package-lock.json:
npm ci
Run it in development mode. The first run compiles the Rust side and takes a few minutes:
npm run tauri dev
alabs asks you to choose your alabs root. Pick a folder that holds projects, not a project itself. A new empty folder is the safest choice. Clone or move projects into it.
Do not pick a single project. If you do, each of its subfolders becomes a work folder.
alabs does not watch the disk. If something changes outside the app, click Refresh.
To build an unsigned alabs.app, which lands in src-tauri/target/release/bundle/macos/:
npm run tauri build
The same interface runs in Google Chrome. A local server owns one root:
npm run browser -- "/absolute/path/to/your/alabs-root"
This builds the browser bundle and the alabs-serve binary, starts the server on 127.0.0.1:43821, and opens Chrome. Control-C stops it. Closing Chrome does not.
Chrome does everything above except move, rename and delete. Those controls tell you so: do it in Finder, then click Refresh. Chrome also keeps unsaved edits as recoverable drafts. Details are in ARCHITECTURE.md.
Only Raven and Ask need a model. Both talk to Ollama at 127.0.0.1:11434. alabs never installs or starts Ollama.
Raven uses the model named in its CREATURE.md:
ollama pull qwen3.5:9b
Ask uses whichever installed model you pick in the app.
Frontend tests:
npm test
Rust tests:
cargo test --manifest-path src-tauri/Cargo.toml
Type check and build:
npm run build
End-to-end tests in Chrome. Google Chrome must be installed. This command builds the browser assets and server first; stop any running alabs browser server so the tests can use port 43821:
npm run test:browser
~/Library/Application Support/me.dannysheehan.alabs/ for the desktop app, or ~/Library/Application Support/alabs-browser/ for Chrome. These hold the remembered layout and a small log. The Chrome folder also holds recovery/, which is your unsaved work. Do not delete it.Open in Terminal. Terminal then has its normal permissions.No accounts. No cloud sync. No telemetry. No hosted backend.
.git is a file (a worktree or submodule) is shown as linked and is not inspected.Use GitHub Issues for bugs. Do not include credentials, keys or private file contents. Report security problems through GitHub's private vulnerability reporting. If a document says alabs does something the source does not do, that is a bug.
Pull requests are judged against what-is-alabs.md and PRINCIPLES.md. Small changes that keep alabs local and file-first have the best chance.
2 commits
TypeScript
73.0%
Rust
25.2%
CSS
1.6%
alabs is a local macOS workspace for understanding the engineering environment around your software, and for working on that software in the same place.
alabs is for people who can build working software, often with AI coding tools, but who do not fully understand the files, configuration, Git state and connections that make it work. I built it for myself first. I am one of those people.
alabs does not hide the real project behind a new format. You work on the real files, in the real folders. alabs adds ways to see what is there: facts about each folder, rendered documentation, Git changes, and saved maps whose every box points to real files.
I built alabs to help close that gap for myself. I wanted a workspace that could show me what exists, help explain how the pieces connect, and still let me work in the real repository instead of hiding it behind another system.
You choose one folder, the alabs root. Each folder inside it is a work folder, which can be a repository or any ordinary folder. All project file access is bounded to that root.

| Home | Every work folder and knowledge folder in the root, and a map of the root once one is built. |
| Overview | Facts about one work folder: its README, top-level entries, Git branch and last commit, and whether it has a Visual View. Nothing is inferred from names. |
| Files and editor | The real folder tree, with Monaco editing the real file. A save that fails is reported as failed. |
| Markdown | Rendered beside its source, with raw HTML, scripts and images removed. |
| Search | Literal search inside one work folder, on request, respecting .gitignore. There is no index. |
| Changes | Git status and per-file comparisons, read without running anything in the repository. |
| Visual Views | A saved map of a work folder (map.svg plus view.json). Select a landmark to open its files. |
| Knowledge | Context, Wiki and Definitions: ordinary folders you can reach from any work folder. |
| Task packet, Terminal | Copy a plain-text task with chosen files for another coding tool, or open a work folder in Terminal. |
| Raven (optional model) | An explicit Run Raven builds or rebuilds a Visual View using a local Ollama model. |
| Ask local model (optional model) | On the Wiki Overview, ask a question about the text files in context and wiki. |
alabs runs on macOS only and is built from source. There is no signed download. The versions below are what it was tested on, not minimum requirements.
| What's needed | What's been tested |
|---|---|
| macOS | 26.6 on Apple Silicon |
| Node.js | 26.8.1 |
| npm | 11.19.0 |
| Rust | 1.98.1 |
Xcode Command Line Tools (provides git) | 27.0 |
| Google Chrome | Browser runtime only |
| Ollama | Optional |
Get the source:
git clone https://github.com/dan-sheehan/alabs.git
Move into it:
cd alabs
Install the exact dependency versions in package-lock.json:
npm ci
Run it in development mode. The first run compiles the Rust side and takes a few minutes:
npm run tauri dev
alabs asks you to choose your alabs root. Pick a folder that holds projects, not a project itself. A new empty folder is the safest choice. Clone or move projects into it.
Do not pick a single project. If you do, each of its subfolders becomes a work folder.
alabs does not watch the disk. If something changes outside the app, click Refresh.
To build an unsigned alabs.app, which lands in src-tauri/target/release/bundle/macos/:
npm run tauri build
The same interface runs in Google Chrome. A local server owns one root:
npm run browser -- "/absolute/path/to/your/alabs-root"
This builds the browser bundle and the alabs-serve binary, starts the server on 127.0.0.1:43821, and opens Chrome. Control-C stops it. Closing Chrome does not.
Chrome does everything above except move, rename and delete. Those controls tell you so: do it in Finder, then click Refresh. Chrome also keeps unsaved edits as recoverable drafts. Details are in ARCHITECTURE.md.
Only Raven and Ask need a model. Both talk to Ollama at 127.0.0.1:11434. alabs never installs or starts Ollama.
Raven uses the model named in its CREATURE.md:
ollama pull qwen3.5:9b
Ask uses whichever installed model you pick in the app.
Frontend tests:
npm test
Rust tests:
cargo test --manifest-path src-tauri/Cargo.toml
Type check and build:
npm run build
End-to-end tests in Chrome. Google Chrome must be installed. This command builds the browser assets and server first; stop any running alabs browser server so the tests can use port 43821:
npm run test:browser
~/Library/Application Support/me.dannysheehan.alabs/ for the desktop app, or ~/Library/Application Support/alabs-browser/ for Chrome. These hold the remembered layout and a small log. The Chrome folder also holds recovery/, which is your unsaved work. Do not delete it.Open in Terminal. Terminal then has its normal permissions.No accounts. No cloud sync. No telemetry. No hosted backend.
.git is a file (a worktree or submodule) is shown as linked and is not inspected.Use GitHub Issues for bugs. Do not include credentials, keys or private file contents. Report security problems through GitHub's private vulnerability reporting. If a document says alabs does something the source does not do, that is a bug.
Pull requests are judged against what-is-alabs.md and PRINCIPLES.md. Small changes that keep alabs local and file-first have the best chance.
2 commits
TypeScript
73.0%
Rust
25.2%
CSS
1.6%