LICENSE
MANIFEST.in
README.md
pyproject.toml
scripts/check_frontend_dist.py
sshler/__init__.py
sshler/auth.py
sshler/cli.py
sshler/config.py
sshler/config_cache.py
sshler/rate_limit.py
sshler/session.py
sshler/settings.py
sshler/snapshot.py
sshler/spa.py
sshler/ssh.py
sshler/ssh_config.py
sshler/ssh_pool.py
sshler/state.py
sshler/validation.py
sshler/webapp.py
sshler.egg-info/PKG-INFO
sshler.egg-info/SOURCES.txt
sshler.egg-info/dependency_links.txt
sshler.egg-info/entry_points.txt
sshler.egg-info/requires.txt
sshler.egg-info/top_level.txt
sshler/api/__init__.py
sshler/api/archive.py
sshler/api/auth.py
sshler/api/batch.py
sshler/api/boxes.py
sshler/api/config.py
sshler/api/dependencies.py
sshler/api/files.py
sshler/api/grep.py
sshler/api/helpers.py
sshler/api/models.py
sshler/api/rate_limiting.py
sshler/api/recovery.py
sshler/api/search.py
sshler/api/sessions.py
sshler/api/snippets.py
sshler/api/terminal.py
sshler/api/tunnels.py
sshler/scripts/install-sshler-task.ps1
sshler/scripts/remove-sshler-task.ps1
sshler/scripts/run-sshler.ps1
sshler/static/base.js
sshler/static/command-palette.js
sshler/static/favicon-terminal-local.svg
sshler/static/favicon-terminal.svg
sshler/static/favicon.png
sshler/static/favicon.svg
sshler/static/file-browser.js
sshler/static/file-edit.js
sshler/static/file-view.js
sshler/static/logo.png
sshler/static/manifest.json
sshler/static/multi-session.js
sshler/static/style.css
sshler/static/sw.js
sshler/static/term.js
sshler/static/dist/favicon.png
sshler/static/dist/icon-192.png
sshler/static/dist/icon-512-maskable.png
sshler/static/dist/icon-512.png
sshler/static/dist/index.html
sshler/static/dist/logo.png
sshler/static/dist/manifest.webmanifest
sshler/static/dist/assets/Alert-C0caXY3O.js
sshler/static/dist/assets/BoxesView-Cw5NiFP6.css
sshler/static/dist/assets/BoxesView-DCsH8F6Q.js
sshler/static/dist/assets/DirectoryPickerModal-CVB_AH0M.css
sshler/static/dist/assets/DirectoryPickerModal-DlIkiyp1.js
sshler/static/dist/assets/FilesView-BFEnr1Va.css
sshler/static/dist/assets/FilesView-jrF0GwSm.js
sshler/static/dist/assets/Grid-B_OzHEym.js
sshler/static/dist/assets/InputNumber-XDnEotgL.js
sshler/static/dist/assets/LoginView-BLrnakeI.css
sshler/static/dist/assets/LoginView-C2biy_5H.js
sshler/static/dist/assets/MultiTerminalView-C8x4yNn3.js
sshler/static/dist/assets/MultiTerminalView-UnOQ5utL.css
sshler/static/dist/assets/NotFoundView-DYaoqkDb.css
sshler/static/dist/assets/NotFoundView-D_GMBtkq.js
sshler/static/dist/assets/OverviewView-BSwVX2Hs.js
sshler/static/dist/assets/OverviewView-SxVVVBkg.css
sshler/static/dist/assets/PhCircle.vue-BD-yU_HB.js
sshler/static/dist/assets/PhHouse.vue-BwwabvLx.js
sshler/static/dist/assets/PhPlus.vue-ChJ-UG0M.js
sshler/static/dist/assets/PhPushPinSimple.vue-DBP-0k94.js
sshler/static/dist/assets/PhTrash.vue-N4dJGebi.js
sshler/static/dist/assets/SettingsView-DCCByJuu.js
sshler/static/dist/assets/SettingsView-xrtebMdI.css
sshler/static/dist/assets/Spin-13rKpfWM.js
sshler/static/dist/assets/Switch-DsrNJCg_.js
sshler/static/dist/assets/TerminalView--aIl3nME.js
sshler/static/dist/assets/TerminalView-DKOHtH_z.css
sshler/static/dist/assets/favorites-CJMYgFyA.js
sshler/static/dist/assets/index-BCipBsn9.js
sshler/static/dist/assets/index-Cwi9_lHU.css
sshler/static/dist/fonts/MonaspaceNeon-Bold.woff2
sshler/static/dist/fonts/MonaspaceNeon-Regular.woff2
sshler/static/dist/fonts/MonaspaceNeon-Variable.woff2
sshler/static/vendor/xterm/xterm-addon-fit.js
sshler/static/vendor/xterm/xterm-addon-search.js
sshler/static/vendor/xterm/xterm.css
sshler/static/vendor/xterm/xterm.js
tests/test_api_v1.py
tests/test_archive.py
tests/test_basic.py
tests/test_batch_ops.py
tests/test_command_injection.py
tests/test_config.py
tests/test_database_indexes.py
tests/test_dev_workflow.py
tests/test_grep.py
tests/test_handshake_status.py
tests/test_httpx_ws.py
tests/test_path_validation.py
tests/test_rate_limit.py
tests/test_search.py
tests/test_session_auth.py
tests/test_snippets.py
tests/test_ssh.py
tests/test_tunnels.py
tests/test_websocket.py