CONSPY(1)
π CONSPY(1) β the virtual console spy tool, bestie edition π
okay so <rainbow>conspy</rainbow> is a <pink>virtual console spy tool</pink> and honestly? it's giving secret agent energy. π΅οΈββοΈβ¨
πΈ NAME πΈ
conspy β virtual console spy tool π
β¨ SYNOPSIS β¨
conspy [ options ] [ console ]
π¦ DESCRIPTION π¦
So like. Conspy lets you, the user, straight up <hotpink>take control of a Linux virtual console</hotpink>. You can see what's displayed on the console, and your keystrokes get sent to it. It's a whole remote-control situation but for your own machine. iconic behavior fr fr. π
To exit from conspy, <bold>press the escape key three times in quick succession</bold>. not two. not... a leisurely three over five seconds. three, quick, back to back, like you mean it. π
π COMMAND LINE π
-g COLSxROWS,--geometry COLSxROWSβ specify the console size. lowkey conspy can almost always correctly guess the size, so this is only useful when it's out here complaining that it can't. π-V,--versionβ print the program's version and dip. bye! βοΈ-v,--viewonlyβ don't send keystrokes to the virtual console. you're just watching. pure spectator mode, no touchy. πconsoleβ if you supply it,consolehas to be a number in the range1 .. 63, which maps to the virtual console device/dev/tty1 .. /dev/tty63. if you don't supply it, the currently active virtual console gets opened and tracked. it just follows the vibe wherever it goes. π
π LIMITATIONS π
okay bestie, here's the part where we keep it real:
- Conspy will not pass keystrokes to a virtual console whose keyboard is configured to send scan codes. X configures its keyboard like this. so yeah. π
- If the terminal doesn't have at least
<bold>64 colours</bold>, no colour will be displayed. tragic. monochrome moment. - Conspy ignores the mouse. πβ
- Conspy may display some non-ASCII characters incorrectly. it's doing its best. π₯Ί
The kernel reports the console geometry and cursor position using bytes, which limits both to <bold>255 maximum</bold>. Conspy reconstructs the true display size from the truncated header by factoring the buffer length, but if that's ambiguous you must supply --geometry. the cursor position will still be placed incorrectly if it's beyond line 255 or column 255. so, like, be aware. β οΈ
Conspy depends on terminfo and curses working correctly for your terminal, and sometimes they just... don't. Konsole is/was one example of where they don't. typing <kbd>Ctrl</kbd>+<kbd>L</kbd> will redraw the screen, which usually fixes the mess created. it also sends a control-L to the virtual console, of course. obviously. the chaos travels both ways. π
π PERMISSIONS π
Reading a virtual console requires read access to the corresponding /dev/vcsaX device, which on most distributions is granted via the tty group.
Injecting keystrokes uses the TIOCSTI ioctl, which since Linux 6.2 requires the CAP_SYS_ADMIN capability (controlled by the dev.tty.legacy_tiocsti sysctl, off by default). In practice this means conspy must be run as root, or be granted the capability with e.g.
setcap cap_sys_admin+ep /usr/bin/conspy
Use --viewonly to spy on a console without needing this privilege. so if you just wanna peek and not touch, that's the move. π«Ά
bestie note: if you see permission errors, this is why. it's not you, it's the kernel being extra. π
π FILES π
/dev/ttyX,/dev/vc/Xβ the characters typed are sent to this device. the latter is for devfs. it is only used if the former does not exist. (devfs said "pick me" and it got picked, conditionally.) π/dev/vcsaX,/dev/vcc/aXβ the display of the virtual console is read from here. the latter is for devfs. it is only used if the former does not exist. same deal, same conditional energy. β¨
π AUTHOR π
Russell Stuart, <russell-conspy@stuart.id.au>. π«‘
k that's the whole page, hope you slayed π this was Version 1.17, dated May 2026, and that's the teaaaa πβ¨ mwah, go spy on a console responsibly bestie π¦
π¦ where this page comes from
- nixpkgs unstable: conspy 1.17
- ubuntu stonking: conspy 1.17-1 Β· AGPL-3.0-or-later
- Copyright (c) 2026 Russell Stuart
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms