procinsh 0.1.0

A local, read-only Linux x86-64 process inspector
1
2
3
4
5
6
:root{color-scheme:dark;--bg:#0c111a;--panel:#141c28;--line:#263246;--text:#e4ebf5;--muted:#93a2b9;--cyan:#66dfc5;--blue:#8ab4ff;--red:#ff9b9b;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}[hidden]{display:none!important}header{height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:28px;padding:0 4%;font-size:11px;letter-spacing:.1em}header a{font-size:21px;font-weight:700;color:var(--text);text-decoration:none;letter-spacing:-.5px}#connection{margin-left:auto;color:var(--cyan)}main{max-width:1600px;padding:32px 4%;margin:auto;min-height:calc(100vh - 135px)}h1{font-size:32px;letter-spacing:-1px;margin:6px 0 12px}h2{font-size:15px;margin:0}.heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.eyebrow{font-size:10px;color:var(--cyan);letter-spacing:.15em}.muted{color:var(--muted)}button,input,select{font:inherit;border:1px solid var(--line);border-radius:6px;color:var(--text);background:#1c293a;padding:9px 13px}button{cursor:pointer}button:hover{border-color:var(--cyan);color:var(--cyan)}button:disabled{opacity:.5;cursor:wait}input{background:var(--bg);min-width:0}input:focus,select:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}#search{width:min(480px,60%)}.toolbar{display:flex;align-items:center;gap:12px;margin:18px 0}.toolbar label{white-space:nowrap}.panel{border:1px solid var(--line);background:var(--panel);border-radius:9px;overflow:hidden}.scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left}th{font-size:10px;color:var(--muted);font-weight:600;letter-spacing:.08em;white-space:nowrap;background:#172131;position:sticky;top:0;z-index:1}td,th{padding:13px 16px;border-bottom:1px solid var(--line)}td{font-variant-numeric:tabular-nums;font-size:12px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#1c293a}.command{max-width:1000px;overflow-wrap:anywhere}.command-small{color:var(--muted);max-width:580px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:5px}.mono,code,pre{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.process-link,.pointer,.text-button{border:0;background:none;padding:0;text-align:left;color:var(--cyan);font-weight:600}.text-button{margin-bottom:24px}.badge{padding:7px 12px;border-radius:30px;color:var(--cyan);background:#15362f;white-space:nowrap}.badge.exited{color:var(--red);background:#3b242a}.metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:20px}.metric{border:1px solid var(--line);border-radius:8px;padding:16px;background:var(--panel)}.metric-label{font-size:10px;color:var(--muted);letter-spacing:.06em}.metric-value{font-size:24px;margin:9px 0}.metric-sub{font-size:11px;color:var(--muted);line-height:1.6}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--line)}.panel-heading .muted{font-size:11px}.history{margin-bottom:20px}.history canvas{display:block;width:100%;height:160px;padding:12px 16px}.legend{font-size:11px;padding:0 20px 12px;display:flex;gap:20px;color:var(--cyan)}.legend span:nth-child(2){color:var(--blue)}#history-scale{color:var(--muted);margin-left:auto}.inspector-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.thread-scroll,.register-scroll{height:315px}.selected{background:#213b46!important}.detail{padding:12px 18px;font-size:11px;line-height:1.7;margin:0}.stack{height:280px;overflow:auto;padding:12px 18px}.frame{padding:10px 0;border-bottom:1px solid var(--line);font-family:ui-monospace,monospace;font-size:12px;overflow-wrap:anywhere}.frame small{display:block;color:var(--muted);margin:6px 0 0 26px}#memory-form{padding:0 18px}#address{flex:1;width:120px;font-family:ui-monospace,monospace}#length{width:85px}pre{font-size:11px;line-height:1.9;overflow:auto;max-height:260px;min-height:180px;margin:0;padding:14px 18px}.maps{margin-top:20px}.maps-scroll{max-height:420px}#maps td{white-space:nowrap}#maps td:last-child{white-space:normal;overflow-wrap:anywhere}.notice,#error{padding:14px 18px;background:#3b242a;border:1px solid #67393d;border-radius:8px;color:var(--red);line-height:1.7;overflow-wrap:anywhere}#error{margin-bottom:20px}footer{max-width:1600px;margin:auto;padding:22px 4%;color:var(--muted);font-size:11px}footer span{float:right}@media(max-width:1100px){.metrics{grid-template-columns:repeat(3,1fr)}.inspector-grid{grid-template-columns:1fr}}@media(max-width:600px){header>span:not(#connection){display:none}main{padding:22px 14px}.heading{align-items:flex-start}h1{font-size:25px}.metrics{grid-template-columns:repeat(2,1fr)}.metric-value{font-size:20px}.toolbar{flex-wrap:wrap}#search{width:100%}.panel-heading{flex-wrap:wrap}td,th{padding:10px}footer span{display:none}}
.snapshot-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 18px 0;font-size:12px}.snapshot-controls label{display:flex;align-items:center;gap:6px;cursor:pointer}.snapshot-controls input{accent-color:var(--cyan);width:18px;height:18px}.snapshot-controls .muted{font-size:11px}
.disassembly{margin-top:20px}.disasm-scroll{max-height:360px}.disassembly td{white-space:nowrap}.disassembly .current-instruction{background:#213b46;color:var(--cyan)}.disassembly .current-instruction td:first-child{font-weight:700}.disassembly .detail{overflow-wrap:anywhere}
.process-detail{margin-top:20px}.process-detail summary{padding:16px 18px;cursor:pointer;font-weight:600}.process-detail summary:focus-visible{outline:2px solid var(--cyan);outline-offset:-3px}.process-detail[open] summary{border-bottom:1px solid var(--line)}.process-detail .toolbar{margin:0}.process-detail-scroll{max-height:360px}.process-detail td{white-space:pre-wrap;overflow-wrap:anywhere}.process-detail th{white-space:nowrap}#environment-entries td:first-child{width:25%}#auxv-entries td:nth-child(-n+3){white-space:nowrap}.auxv-string{margin-top:8px;color:var(--cyan)}#environment-search{width:min(420px,100%)}

.fd-endpoint{padding:6px 0}.fd-endpoint .muted{font-size:11px;margin-top:4px}.process-detail .fd-holders summary{padding:8px 0;font-size:11px;font-weight:400;color:var(--muted);border:0}#fds-search{width:min(440px,100%)}#fds-entries td:first-child{white-space:nowrap}#fds-entries td:last-child{min-width:230px}