Classic confinement request: bossterm

BossTerm is a terminal emulator that requires classic confinement for the following technical reasons:

  1. PTY (Pseudo-Terminal) Access
    Terminal emulators must create and manage PTY devices (/dev/ptmx, /dev/pts/*) to spawn shell processes. The pty4j library we use requires unrestricted PTY access to allocate and manage terminal sessions.

  2. Arbitrary Command Execution
    As a terminal emulator, BossTerm must execute the user’s shell ($SHELL) and any commands they type. This is the core function of a terminal - running arbitrary
    processes with full environment inheritance.

  3. Unrestricted File System Access
    Users expect to navigate to any directory (cd /path), read/write files anywhere they have permissions, and run programs from any location. A terminal cannot be
    restricted to specific paths.

  4. Process Control & Signals
    Terminal emulators must send signals (SIGINT, SIGTSTP, SIGCONT, SIGWINCH) to child processes and manage foreground/background job control.

  5. Precedent
    Other terminal emulators have been granted classic confinement:

  • alacritty
  • hyper
  • tilix
  • terminator

The existing interfaces (process-control, system-files, etc.) are insufficient because:

  • No interface combination allows spawning arbitrary user shells
  • PTY allocation requires unrestricted /dev/ptmx access
  • Users expect full file system navigation capability

I understand that strict confinement is generally preferred over classic.

I’ve tried the existing interfaces to make the snap work under strict confinement.

I attempted to use combinations of process-control, home, removable-media, and system-files interfaces, but terminal emulators fundamentally require the ability to
spawn any process the user requests and access any path they navigate to, which is not achievable with strict confinement.

Hello Snapcraft community, this is my first snapcraft release, I created high performant modern terminal, that has features like iterm, is optimized for claude code, codex, like TUI apps. Please let give it a shot, and let me know if I need to clarify anything, thank you! :folded_hands:

Hey @kmshivang

It is plausible that there are technical reasons why bossterm needs classic to work properly in all scenarios, but please note that classic confinement is a sensitive matter and it is reserved for mature, well-known applications published by mature, well-known entities. As of today, I believe that bossterm doesn’t meet this criteria because of the following reasons:

  • The project seems to be very fresh, according to the upstream repository

  • The projects seems to have little/none community around according to upstream repository (contributors, issues, PRs, etc.)

  • I could not find evidences that the project has a strong enough user base currently

Thus, considering these factors, I think bossterm should not get classic confinement as of now.