Skip to content

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.

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.

The space model is represented by a structured set of fields.

FieldTypeDescription
idSpaceIdUnique identifier for the space
profile_idProfileIdOwning profile
nameStringDisplay name shown in the UI
colorSpaceColorCustom color settings
iconSpaceIconIcon identifier, either emoji or system icon
tab_orderVec<TabId>Ordered list of tab IDs
foldersVec<Folder>Nested folders within the space
atc_rulesAtcRulesAuto-tab-close configuration
is_activeboolWhether the space is currently active
created_atDateTimeCreation timestamp
last_active_tab_idOption<TabId>Last focused tab

SpaceColor is defined with four fields:

  • hue: f64
  • saturation: f64
  • brightness: f64
  • grain: f64

These fields let a space carry a custom visual identity without changing the underlying browser model.

Folders live inside a space and support nested organization through parent_folder_id.

  • 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.

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.

Spaces support a standard set of workspace operations.

Create a new space with a name, color, and icon. This is the main way to start a workspace around a project or context.

Spaces can be renamed at any time without changing their underlying identity.

Spaces can be reordered so the most important contexts stay close at hand.

Deleting a space moves its tabs to the default space or closes them, depending on browser behavior and the current state of those tabs.

Spaces can be duplicated to copy a workspace structure and continue work from a similar starting point.

Maho provides shortcuts for moving through spaces and creating new ones.

ShortcutAction
Cmd+Opt+Right ArrowSwitch to the next space
Cmd+Opt+Left ArrowSwitch to the previous space
Cmd+Shift+Opt+NCreate a new space
Ctrl+1 through Ctrl+9Jump to a space by index

These shortcuts are designed for fast context switching without opening a menu.

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.

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, or ATC, can be configured per space.

  • 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

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.

Per-space ATC helps keep individual workspaces clean without forcing the same cleanup policy everywhere.

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.

  • 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