Spaces
What are Spaces?
Section titled “What are Spaces?”Spaces are persistent workspaces that group tabs by project, client, or context. Each space keeps its own tab order, folders, and auto-tab-close rules, so the browser can reflect the structure of the work you are doing.
A space is not just a visual grouping. It is a durable unit of browser state that preserves how tabs are organized and how the space behaves over time.
Space behavior
Section titled “Space behavior”A space manages:
- The ordered list of tabs in that space
- Nested folders inside the space
- Per-space auto-tab-close rules
- The active state of the workspace
- The last focused tab within the space
This makes a space suitable for separating work, personal browsing, research, or client-specific sessions.
Data model
Section titled “Data model”The space model is represented by a structured set of fields.
| Field | Type | Description |
|---|---|---|
id | SpaceId | Unique identifier for the space |
profile_id | ProfileId | Owning profile |
name | String | Display name shown in the UI |
color | SpaceColor | Custom color settings |
icon | SpaceIcon | Icon identifier, either emoji or system icon |
tab_order | Vec<TabId> | Ordered list of tab IDs |
folders | Vec<Folder> | Nested folders within the space |
atc_rules | AtcRules | Auto-tab-close configuration |
is_active | bool | Whether the space is currently active |
created_at | DateTime | Creation timestamp |
last_active_tab_id | Option<TabId> | Last focused tab |
Color structure
Section titled “Color structure”SpaceColor is defined with four fields:
hue: f64saturation: f64brightness: f64grain: f64
These fields let a space carry a custom visual identity without changing the underlying browser model.
Folders inside spaces
Section titled “Folders inside spaces”Folders live inside a space and support nested organization through parent_folder_id.
Folder capabilities
Section titled “Folder capabilities”- Nested folder hierarchies
- Drag and drop reordering of tabs between folders
- Collapsed and expanded folder states
- Folder-specific names and colors
Folders are useful when a single space contains multiple streams of work and tabs need another level of structure.
Folder nesting
Section titled “Folder nesting”Because folders are scoped to a space, their hierarchy stays local to that workspace. A folder can contain tabs directly or act as a parent for child folders through parent_folder_id.
CRUD operations
Section titled “CRUD operations”Spaces support a standard set of workspace operations.
Create a space
Section titled “Create a space”Create a new space with a name, color, and icon. This is the main way to start a workspace around a project or context.
Rename a space
Section titled “Rename a space”Spaces can be renamed at any time without changing their underlying identity.
Reorder spaces
Section titled “Reorder spaces”Spaces can be reordered so the most important contexts stay close at hand.
Delete a space
Section titled “Delete a space”Deleting a space moves its tabs to the default space or closes them, depending on browser behavior and the current state of those tabs.
Duplicate a space
Section titled “Duplicate a space”Spaces can be duplicated to copy a workspace structure and continue work from a similar starting point.
Keyboard shortcuts
Section titled “Keyboard shortcuts”Maho provides shortcuts for moving through spaces and creating new ones.
| Shortcut | Action |
|---|---|
Cmd+Opt+Right Arrow | Switch to the next space |
Cmd+Opt+Left Arrow | Switch to the previous space |
Cmd+Shift+Opt+N | Create a new space |
Ctrl+1 through Ctrl+9 | Jump to a space by index |
These shortcuts are designed for fast context switching without opening a menu.
Multi-window behavior
Section titled “Multi-window behavior”Spaces are global. The active space is shared across all windows.
That means switching spaces in one window switches the active space everywhere. This keeps the browser state consistent and prevents different windows from drifting into separate active contexts.
Arc parity
Section titled “Arc parity”Maho’s space system is designed with feature parity to Arc Browser’s spaces.
The parity target includes:
- Pinned tabs
- Folder support
- Space-specific favorites
The goal is to make the workspace model familiar to users who already rely on a space-based browser workflow.
Auto Tab Close rules
Section titled “Auto Tab Close rules”Auto Tab Close, or ATC, can be configured per space.
Supported rules
Section titled “Supported rules”- Close tabs after N minutes of inactivity
- Close tabs after N hours of inactivity
- Close tabs after N days of inactivity
- Close duplicate tabs automatically
- Limit the maximum tab count per space
Per-space configuration
Section titled “Per-space configuration”ATC rules are attached to the space itself, not to the whole browser globally. That allows one workspace to stay strict and short-lived while another keeps tabs open longer.
Practical effect
Section titled “Practical effect”Per-space ATC helps keep individual workspaces clean without forcing the same cleanup policy everywhere.
Working with spaces
Section titled “Working with spaces”A good space usually maps to one context, such as a project, a client, or a personal area. Tabs, folders, and ATC rules then stay scoped to that context.
The result is a browser that behaves more like a set of organized workspaces than a single flat tab strip.
Related concepts
Section titled “Related concepts”- Tabs are ordered inside a space through
tab_order - Folders provide deeper structure within a space
- Profiles isolate browser data across identities
- ATC keeps workspace state from growing without bounds