SkillAgentSearch skills...

Diss

dtach-like program / crate in rust

Install / Use

/learn @yazgoo/Diss
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<table> <tr> <td> <img src=doc/diss_logo.png width=100> </td> <td> <b>diss</b>ociate (verb): <pre> 1. (especially in abstract contexts) disconnect or separate. </pre> </td> </tr> </table>

Discord

What is diss ?

Diss:

  • dissociates a program from current terminal
  • is like dtach, abduco (think GNU screen or tmux without multiplexing)
  • is also a rust crate you can easily integrate

How do I use diss CLI ?

installing

  1. install cargo
  2. run cargo install diss

create session (or reatach if already exists), detach with CTRL+g

diss -e g -a session-name vim hello

attach to running session

diss -e g -a session-name

list running sessions

diss -l

projects based on diss

  • vmux, a vim terminal multiplexer

How does diss work ?

diagram

When you start a diss new diss session, diss will launch a server, which will:

  1. create and bind to a unix domain socket (located in ~/.config/diss)
  2. daemonize the process (so it is not a child of current terminal)
  3. fork with ptmx / ptms:
  4. in the child, launch the program you want to use with a pseudo terminal
  5. start a program event thread waiting for events from the child
  6. in the parent, will start waiting for connection from client

Diss will then start a client which will:

  1. connect to the server unix domain socket
  2. send terminal size to the server
  3. send a flush request to the server
  4. in a thread, take events from the terminal and forward them via the socket
  5. read server output as raw bytes and print them in the terminal

When a client connect, the server will:

  1. add the client unix stream to the program event thread
  2. create a new thread to receive events from the client and forward them to the child

Related Skills

View on GitHub
GitHub Stars41
CategoryDevelopment
Updated1mo ago
Forks2

Languages

Rust

Security Score

75/100

Audited on Feb 22, 2026

No findings