MCPcopy
hub / github.com/mmulet/term.everything

github.com/mmulet/term.everything @0.7.8 sqlite

repository ↗ · DeepWiki ↗ · release 0.7.8 ↗
573 symbols 1,023 edges 77 files 26 documented · 5%
README
icon2

Term.Everything❗

Download the beta test now! HowIDidIt.md
Works on both x11 and Wayland host systems. Now written in go! Typescript version here

Run every GUI app in the terminal!

warp_into_terminal0001-0195

Even over ssh!

Behold as I play a video game in a font in a web browser in a terminal transmitted over ssh (with one hand tied behind my back)!

ssh_example

Read about how it works!

Check out HowIDidIt.md

More Examples

The quality of the window is limited to the number of rows and columns in your terminal. If you increase the resolution (ctrl - in alacritty, check your terminal) the quality will go up, (but performance may go down).

Here I open up the Wing It! movie, and increase the quality until I get both a good frame rate and resolution:

increase resolution


If your terminal supports images (like kitty or iterm2) you can render windows at full resolution (performance may degrade).

In this example, on my mac, I open iTerm2 ssh into ubuntu and open firefox at full resolution:

full_resultion


I feel like every single day I hear about another terminal file viewer. I say, stop making terminal file viewers because you can just use the file viewer you already have! In your terminal!

file_manager


Terminal in a terminal in a terminal in a terminal in a terminal.... it's terminals all the way down. terminal_in_terminal


With only a small amount hacking, it can run Doom (shareware episode)!

Doom

Run an entire Desktop in your terminal! @ismail-yilmaz is running Firefox, on KDE Neon in a VM on Bobcat Desktop in VM

And this isn't even full resolution! Checkout the full vid in in the discussions

About

term.everything❗ is a Linux CLI program to run GUI windows in your terminal. Specifically, term.everything❗ is a built-from-scratch Wayland compositor that outputs to a terminal rather than your monitor.

Don't know what Wayland is or just want to know more about how this works? Then, head over to HowIDidIt.md where I will explain how everything works in detail.

Try it out!

Download the beta test now!

Roadmap

  1. [x] Term some things <--- This is where we are at
  2. Some apps or (even most apps) may fail to launch or even crash! Please create an issue if you have problems.
  3. [ ] Term most things
  4. [ ] Term everything❗

Help and Usage

Check out the help file here for a usage guide on how to use term.everything❗

Contributing

term.everything❗ is written in developer friendly Go, with a just a smidge of C. See ./Contributing.md.

Legal:

term.everything❗ copyright 2025 Late for Dinner Studios, LLC

Fontemon copyright 2021 Late for Dinner Studios, LLC

Wing It! movie is licensed under the Creative Commons Attribution 4.0 license Wing it licensing page Attribution: (CC) Blender Foundation | studio.blender.org


Doom shareware episode is copyright 1993 id Software

Bonus:

This is Gwerm the Term Worm.

this is gwern

He is doing okay. Thanks for asking.

Extension points exported contracts — how you extend this code

SurfaceRole (Interface)
** * Surface roles can be thought of as type. * [source ](https://wayland.app/protocols/wayland#wl_surface) * Things [5 …
wayland/SurfaceRole.go
OnBindable (Interface)
(no doc) [27 implementers]
wayland/protocols/structs.go
XkbdCode (Interface)
(no doc) [5 implementers]
termeverything/ConvertKeycodeToXbdCode.go
PointerEvent (Interface)
(no doc) [4 implementers]
termeverything/PointerCode.go
StatusLineTextOrButton (Interface)
(no doc) [2 implementers]
termeverything/StatusLine.go
HasDisplayName (Interface)
(no doc) [1 implementers]
wayland/SocketListener.go
RoleOrXDGSurfaceObjectID (Interface)
(no doc)
wayland/types.go
Arg (Interface)
(no doc)
wayland/generate/Protocol.go

Core symbols most depended-on inside this repo

SendError
called by 28
wayland/types.go
MouseModifiers
called by 20
termeverything/PointerCode.go
AddObject
called by 15
wayland/types.go
GetGlobalBinds
called by 15
wayland/protocols/structs.go
GetSurfaceFromRole
called by 10
wayland/types.go
KeycodeSingleCodes
called by 6
termeverything/KeycodeSingleCodes.go
Close
called by 6
wayland/SocketListener.go
GetSurfaceIDFromRole
called by 6
wayland/types.go

Shape

Method 313
Function 129
Struct 104
Interface 14
TypeAlias 13

Languages

Go100%

Modules by API surface

wayland/protocols/structs.go53 symbols
wayland/generate/Protocol.go39 symbols
termeverything/PointerCode.go29 symbols
wayland/SurfaceRole.go28 symbols
wayland/Client.go24 symbols
termeverything/StatusLine.go20 symbols
wayland/xdg_toplevel.go19 symbols
wayland/wl_surface.go19 symbols
wayland/protocols/GlobalObjects.go18 symbols
wayland/xdg_positioner.go16 symbols
wayland/ClientGlobal.go16 symbols
termeverything/ConvertKeycodeToXbdCode.go13 symbols

For agents

$ claude mcp add term.everything \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact