sharkit 0.1.1.dev6__tar.gz → 0.1.2.dev1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sharkit-0.1.2.dev1/PKG-INFO +91 -0
- sharkit-0.1.2.dev1/README.md +63 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/pyproject.toml +1 -1
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/commands/builtins.py +36 -7
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/modules/registry.py +12 -0
- sharkit-0.1.1.dev6/PKG-INFO +0 -124
- sharkit-0.1.1.dev6/README.md +0 -96
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/.gitignore +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/LICENSE +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/__init__.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/__main__.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/app.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/commands/__init__.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/commands/base.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/commands/registry.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/config/__init__.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/config/manager.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/config/paths.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/console/__init__.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/console/completion.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/console/prompt.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/console/repl.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/exceptions.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/history/__init__.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/history/manager.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/modules/__init__.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/modules/base.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/modules/loader.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/modules/testing/__init__.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/modules/testing/demo/__init__.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/modules/testing/demo/echo.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/modules/testing/http/__init__.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/modules/testing/http/metadata.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/network/__init__.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/network/client.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/output/__init__.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/output/renderer.py +0 -0
- {sharkit-0.1.1.dev6 → sharkit-0.1.2.dev1}/src/sharkit/output/theme.py +0 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: sharkit
|
|
3
|
+
Version: 0.1.2.dev1
|
|
4
|
+
Summary: OSINT / HUMINT / GEOINT research framework
|
|
5
|
+
Project-URL: Homepage, https://github.com/sshsrv/sharkit
|
|
6
|
+
Project-URL: Repository, https://github.com/sshsrv/sharkit
|
|
7
|
+
Project-URL: Issues, https://github.com/sshsrv/sharkit/issues
|
|
8
|
+
Author: Sharkit Contributors
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: cli,framework,geoint,humint,osint,research
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Intended Audience :: Information Technology
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Topic :: Security
|
|
23
|
+
Classifier: Topic :: Utilities
|
|
24
|
+
Requires-Python: >=3.11
|
|
25
|
+
Requires-Dist: httpx<1.0.0,>=0.27.0
|
|
26
|
+
Requires-Dist: prompt-toolkit<4.0.0,>=3.0.0
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
|
|
29
|
+
<div align="center"><img width="640" height="347" alt="banner" src="https://github.com/user-attachments/assets/c027fb38-fe0f-4baa-b35f-597f9f8cf39b" /></div>
|
|
30
|
+
|
|
31
|
+
<div align="center">
|
|
32
|
+
|
|
33
|
+

|
|
34
|
+

|
|
35
|
+

|
|
36
|
+

|
|
37
|
+
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
> [!IMPORTANT]
|
|
41
|
+
> sharkit is intended for lawful OSINT research, authorized security testing, education, and legitimate investigations. You are responsible for complying with applicable laws, permissions, and terms of service.
|
|
42
|
+
>
|
|
43
|
+
> sharkit does not guarantee anonymity.
|
|
44
|
+
#
|
|
45
|
+
|
|
46
|
+
### Features
|
|
47
|
+
- A terminal framework for OSINT / HUMINT / GEOINT work.
|
|
48
|
+
- Modules expose a `run` method, options, and metadata; the shell loads them as you need them.
|
|
49
|
+
- 15 built-in commands: `use`, `run`, `set`, `search`, `history`, `clear`, `exit`, and a few more.
|
|
50
|
+
- Ships with two example modules: `testing/demo/echo` and `testing/http/metadata`.
|
|
51
|
+
- `sharkit --version` shows the exact build you have, dev pre-releases included.
|
|
52
|
+
- State lives in `~/.config/sharkit` and runs fine on Termux / Android.
|
|
53
|
+
- To wipe it completely: `uv tool uninstall sharkit` and `rm -rf ~/.config/sharkit`.
|
|
54
|
+
#
|
|
55
|
+
|
|
56
|
+
### sharkit management on Linux using uv (RECOMMENDED)
|
|
57
|
+
- Install
|
|
58
|
+
```bash
|
|
59
|
+
uv tool install sharkit
|
|
60
|
+
```
|
|
61
|
+
- Upgrade
|
|
62
|
+
```bash
|
|
63
|
+
uv tool upgrade sharkit
|
|
64
|
+
```
|
|
65
|
+
- Uninstall
|
|
66
|
+
```bash
|
|
67
|
+
uv tool uninstall sharkit
|
|
68
|
+
rm -rf ~/.config/sharkit
|
|
69
|
+
```
|
|
70
|
+
<br>
|
|
71
|
+
|
|
72
|
+
### sharkit management on Linux using pip
|
|
73
|
+
- Install
|
|
74
|
+
```bash
|
|
75
|
+
pip install sharkit
|
|
76
|
+
```
|
|
77
|
+
- Upgrade
|
|
78
|
+
```bash
|
|
79
|
+
pip install --upgrade sharkit
|
|
80
|
+
```
|
|
81
|
+
- Uninstall
|
|
82
|
+
```bash
|
|
83
|
+
pip uninstall sharkit
|
|
84
|
+
rm -rf ~/.config/sharkit
|
|
85
|
+
```
|
|
86
|
+
#
|
|
87
|
+
|
|
88
|
+
### Links
|
|
89
|
+
- PyPI: https://pypi.org/project/sharkit/
|
|
90
|
+
- GitHub: https://github.com/sshsrv/sharkit
|
|
91
|
+
- Releases: https://github.com/sshsrv/sharkit/releases
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<div align="center"><img width="640" height="347" alt="banner" src="https://github.com/user-attachments/assets/c027fb38-fe0f-4baa-b35f-597f9f8cf39b" /></div>
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+

|
|
7
|
+

|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
</div>
|
|
11
|
+
|
|
12
|
+
> [!IMPORTANT]
|
|
13
|
+
> sharkit is intended for lawful OSINT research, authorized security testing, education, and legitimate investigations. You are responsible for complying with applicable laws, permissions, and terms of service.
|
|
14
|
+
>
|
|
15
|
+
> sharkit does not guarantee anonymity.
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
- A terminal framework for OSINT / HUMINT / GEOINT work.
|
|
20
|
+
- Modules expose a `run` method, options, and metadata; the shell loads them as you need them.
|
|
21
|
+
- 15 built-in commands: `use`, `run`, `set`, `search`, `history`, `clear`, `exit`, and a few more.
|
|
22
|
+
- Ships with two example modules: `testing/demo/echo` and `testing/http/metadata`.
|
|
23
|
+
- `sharkit --version` shows the exact build you have, dev pre-releases included.
|
|
24
|
+
- State lives in `~/.config/sharkit` and runs fine on Termux / Android.
|
|
25
|
+
- To wipe it completely: `uv tool uninstall sharkit` and `rm -rf ~/.config/sharkit`.
|
|
26
|
+
#
|
|
27
|
+
|
|
28
|
+
### sharkit management on Linux using uv (RECOMMENDED)
|
|
29
|
+
- Install
|
|
30
|
+
```bash
|
|
31
|
+
uv tool install sharkit
|
|
32
|
+
```
|
|
33
|
+
- Upgrade
|
|
34
|
+
```bash
|
|
35
|
+
uv tool upgrade sharkit
|
|
36
|
+
```
|
|
37
|
+
- Uninstall
|
|
38
|
+
```bash
|
|
39
|
+
uv tool uninstall sharkit
|
|
40
|
+
rm -rf ~/.config/sharkit
|
|
41
|
+
```
|
|
42
|
+
<br>
|
|
43
|
+
|
|
44
|
+
### sharkit management on Linux using pip
|
|
45
|
+
- Install
|
|
46
|
+
```bash
|
|
47
|
+
pip install sharkit
|
|
48
|
+
```
|
|
49
|
+
- Upgrade
|
|
50
|
+
```bash
|
|
51
|
+
pip install --upgrade sharkit
|
|
52
|
+
```
|
|
53
|
+
- Uninstall
|
|
54
|
+
```bash
|
|
55
|
+
pip uninstall sharkit
|
|
56
|
+
rm -rf ~/.config/sharkit
|
|
57
|
+
```
|
|
58
|
+
#
|
|
59
|
+
|
|
60
|
+
### Links
|
|
61
|
+
- PyPI: https://pypi.org/project/sharkit/
|
|
62
|
+
- GitHub: https://github.com/sshsrv/sharkit
|
|
63
|
+
- Releases: https://github.com/sshsrv/sharkit/releases
|
|
@@ -110,19 +110,48 @@ class StatusCommand(Command):
|
|
|
110
110
|
class UseCommand(Command):
|
|
111
111
|
name = "use"
|
|
112
112
|
aliases = []
|
|
113
|
-
description = "Select a module"
|
|
114
|
-
usage = "use <
|
|
113
|
+
description = "Select a module by name, search query, or index (msfconsole-style)"
|
|
114
|
+
usage = "use <query|index>"
|
|
115
115
|
|
|
116
116
|
def execute(self, context: CommandContext, args: list[str]) -> str | None:
|
|
117
117
|
valid, error = self.validate_args(args)
|
|
118
118
|
if not valid:
|
|
119
119
|
return error
|
|
120
|
-
|
|
120
|
+
token = args[0]
|
|
121
121
|
module_registry = context.session.get("module_registry")
|
|
122
|
-
if module_registry is
|
|
123
|
-
return
|
|
124
|
-
|
|
125
|
-
|
|
122
|
+
if module_registry is None:
|
|
123
|
+
return "Module registry not available."
|
|
124
|
+
|
|
125
|
+
if token.isdigit():
|
|
126
|
+
matches = context.session.get("use_matches")
|
|
127
|
+
if not matches:
|
|
128
|
+
return 'No module selection in progress. Use "use <query>" to search first.'
|
|
129
|
+
index = int(token)
|
|
130
|
+
if index < 0 or index >= len(matches):
|
|
131
|
+
return f"Invalid module index: {index}"
|
|
132
|
+
context.current_module = matches[index]
|
|
133
|
+
return f'Module "{matches[index]}" selected.'
|
|
134
|
+
|
|
135
|
+
query = token.lower()
|
|
136
|
+
matches = module_registry.find_modules(query)
|
|
137
|
+
if not matches:
|
|
138
|
+
return f'No modules found matching "{token}".\nTry: search {token}'
|
|
139
|
+
|
|
140
|
+
paths = [path for path, _ in matches]
|
|
141
|
+
context.session["use_matches"] = paths
|
|
142
|
+
|
|
143
|
+
renderer = context.session.get("renderer")
|
|
144
|
+
if renderer is not None:
|
|
145
|
+
rows = [
|
|
146
|
+
[str(i), path, metadata.description]
|
|
147
|
+
for i, (path, metadata) in enumerate(matches)
|
|
148
|
+
]
|
|
149
|
+
renderer.table(f"use > {token}", ["#", "Module", "Description"], rows)
|
|
150
|
+
|
|
151
|
+
if len(matches) == 1:
|
|
152
|
+
context.current_module = paths[0]
|
|
153
|
+
return f'Module "{paths[0]}" selected.'
|
|
154
|
+
return 'Select a module by index, e.g. "use 0".'
|
|
126
155
|
|
|
127
156
|
def validate_args(self, args: list[str]) -> tuple[bool, str | None]:
|
|
128
157
|
if not args:
|
|
@@ -42,6 +42,18 @@ class ModuleRegistry:
|
|
|
42
42
|
or lower_query in module.metadata.description.lower()
|
|
43
43
|
]
|
|
44
44
|
|
|
45
|
+
def find_modules(self, query: str) -> list[tuple[str, ModuleMetadata]]:
|
|
46
|
+
lower_query = query.lower()
|
|
47
|
+
results: list[tuple[str, ModuleMetadata]] = []
|
|
48
|
+
for path, cls in self.get_all_modules().items():
|
|
49
|
+
metadata = cls.metadata
|
|
50
|
+
searchable = (
|
|
51
|
+
f"{metadata.name} {metadata.description} {metadata.category} {path}".lower()
|
|
52
|
+
)
|
|
53
|
+
if lower_query in searchable:
|
|
54
|
+
results.append((path, metadata))
|
|
55
|
+
return results
|
|
56
|
+
|
|
45
57
|
def get_modules_by_category(self, category: str) -> list[ModuleMetadata]:
|
|
46
58
|
lower_category = category.lower()
|
|
47
59
|
return [
|
sharkit-0.1.1.dev6/PKG-INFO
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.5
|
|
2
|
-
Name: sharkit
|
|
3
|
-
Version: 0.1.1.dev6
|
|
4
|
-
Summary: OSINT / HUMINT / GEOINT research framework
|
|
5
|
-
Project-URL: Homepage, https://github.com/sshsrv/sharkit
|
|
6
|
-
Project-URL: Repository, https://github.com/sshsrv/sharkit
|
|
7
|
-
Project-URL: Issues, https://github.com/sshsrv/sharkit/issues
|
|
8
|
-
Author: Sharkit Contributors
|
|
9
|
-
License-Expression: MIT
|
|
10
|
-
License-File: LICENSE
|
|
11
|
-
Keywords: cli,framework,geoint,humint,osint,research
|
|
12
|
-
Classifier: Development Status :: 3 - Alpha
|
|
13
|
-
Classifier: Environment :: Console
|
|
14
|
-
Classifier: Intended Audience :: Developers
|
|
15
|
-
Classifier: Intended Audience :: Information Technology
|
|
16
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
-
Classifier: Operating System :: POSIX :: Linux
|
|
18
|
-
Classifier: Programming Language :: Python :: 3
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
-
Classifier: Topic :: Security
|
|
23
|
-
Classifier: Topic :: Utilities
|
|
24
|
-
Requires-Python: >=3.11
|
|
25
|
-
Requires-Dist: httpx<1.0.0,>=0.27.0
|
|
26
|
-
Requires-Dist: prompt-toolkit<4.0.0,>=3.0.0
|
|
27
|
-
Description-Content-Type: text/markdown
|
|
28
|
-
|
|
29
|
-
# sharkit
|
|
30
|
-
|
|
31
|
-
OSINT / HUMINT / GEOINT research framework — a modular CLI for gathering and correlating
|
|
32
|
-
open-source intelligence from the terminal.
|
|
33
|
-
|
|
34
|
-
> Built for Linux. Runs anywhere Python 3.11+ runs — including **Termux on Android**.
|
|
35
|
-
|
|
36
|
-
## Requirements
|
|
37
|
-
|
|
38
|
-
- Python >= 3.11
|
|
39
|
-
- `pip` or `uv`
|
|
40
|
-
|
|
41
|
-
## Installation
|
|
42
|
-
|
|
43
|
-
From PyPI:
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
pip install sharkit
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Or with `uv`:
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
uv tool install sharkit
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Then launch the interactive shell:
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
sharkit
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## Termux / Android
|
|
62
|
-
|
|
63
|
-
sharkit is pure Python (no compiled extensions) and depends only on `prompt_toolkit`
|
|
64
|
-
and `httpx`, so it installs and runs on Termux without any native build step.
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
pkg update && pkg install python
|
|
68
|
-
pip install sharkit
|
|
69
|
-
sharkit
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
If Termux's Python is marked *externally managed*, install into a virtual environment:
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
pkg install python
|
|
76
|
-
python -m venv ~/sharkit-venv
|
|
77
|
-
~/sharkit-venv/bin/pip install sharkit
|
|
78
|
-
~/sharkit-venv/bin/sharkit
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
- Configuration, history and cache live under `~/.config/sharkit`
|
|
82
|
-
(on Android: `/data/data/com.termux/files/home/.config/sharkit`).
|
|
83
|
-
- Network access uses the standard Termux permission — no extra setup required.
|
|
84
|
-
- The UI relies on ANSI escape codes and Unicode box-drawing, which Termux's
|
|
85
|
-
terminal renders natively.
|
|
86
|
-
|
|
87
|
-
## Quick start
|
|
88
|
-
|
|
89
|
-
```
|
|
90
|
-
sharkit # start the interactive shell
|
|
91
|
-
help # list commands
|
|
92
|
-
use testing/demo/echo # load a module
|
|
93
|
-
set message "hello" # configure an option
|
|
94
|
-
run # execute the active module
|
|
95
|
-
history # show command history
|
|
96
|
-
clear # clear the screen
|
|
97
|
-
exit # quit
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
Available commands: `help`, `banner`, `version`, `status`, `use`, `back`, `info`,
|
|
101
|
-
`show`, `set`, `unset`, `run`, `search`, `history`, `clear`, `exit`.
|
|
102
|
-
|
|
103
|
-
## Modules
|
|
104
|
-
|
|
105
|
-
Modules are discovered automatically from the packaged `sharkit/modules` directory:
|
|
106
|
-
|
|
107
|
-
- `testing/demo/echo` — echo module for testing the framework
|
|
108
|
-
- `testing/http/metadata` — HTTP metadata gathering (status, headers, content type, …)
|
|
109
|
-
|
|
110
|
-
## Development
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
git clone https://github.com/sshsrv/sharkit
|
|
114
|
-
cd sharkit
|
|
115
|
-
uv sync --all-groups
|
|
116
|
-
uv run sharkit
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
Quality gates: `uv run ruff check .`, `uv run mypy src/`, `uv run pytest -q`.
|
|
120
|
-
|
|
121
|
-
## Disclaimer
|
|
122
|
-
|
|
123
|
-
sharkit is a research tool. Use it responsibly and in accordance with applicable law
|
|
124
|
-
and the terms of service of any system you interact with.
|
sharkit-0.1.1.dev6/README.md
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
# sharkit
|
|
2
|
-
|
|
3
|
-
OSINT / HUMINT / GEOINT research framework — a modular CLI for gathering and correlating
|
|
4
|
-
open-source intelligence from the terminal.
|
|
5
|
-
|
|
6
|
-
> Built for Linux. Runs anywhere Python 3.11+ runs — including **Termux on Android**.
|
|
7
|
-
|
|
8
|
-
## Requirements
|
|
9
|
-
|
|
10
|
-
- Python >= 3.11
|
|
11
|
-
- `pip` or `uv`
|
|
12
|
-
|
|
13
|
-
## Installation
|
|
14
|
-
|
|
15
|
-
From PyPI:
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
pip install sharkit
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
Or with `uv`:
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
uv tool install sharkit
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Then launch the interactive shell:
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
sharkit
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Termux / Android
|
|
34
|
-
|
|
35
|
-
sharkit is pure Python (no compiled extensions) and depends only on `prompt_toolkit`
|
|
36
|
-
and `httpx`, so it installs and runs on Termux without any native build step.
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
pkg update && pkg install python
|
|
40
|
-
pip install sharkit
|
|
41
|
-
sharkit
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
If Termux's Python is marked *externally managed*, install into a virtual environment:
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
pkg install python
|
|
48
|
-
python -m venv ~/sharkit-venv
|
|
49
|
-
~/sharkit-venv/bin/pip install sharkit
|
|
50
|
-
~/sharkit-venv/bin/sharkit
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
- Configuration, history and cache live under `~/.config/sharkit`
|
|
54
|
-
(on Android: `/data/data/com.termux/files/home/.config/sharkit`).
|
|
55
|
-
- Network access uses the standard Termux permission — no extra setup required.
|
|
56
|
-
- The UI relies on ANSI escape codes and Unicode box-drawing, which Termux's
|
|
57
|
-
terminal renders natively.
|
|
58
|
-
|
|
59
|
-
## Quick start
|
|
60
|
-
|
|
61
|
-
```
|
|
62
|
-
sharkit # start the interactive shell
|
|
63
|
-
help # list commands
|
|
64
|
-
use testing/demo/echo # load a module
|
|
65
|
-
set message "hello" # configure an option
|
|
66
|
-
run # execute the active module
|
|
67
|
-
history # show command history
|
|
68
|
-
clear # clear the screen
|
|
69
|
-
exit # quit
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
Available commands: `help`, `banner`, `version`, `status`, `use`, `back`, `info`,
|
|
73
|
-
`show`, `set`, `unset`, `run`, `search`, `history`, `clear`, `exit`.
|
|
74
|
-
|
|
75
|
-
## Modules
|
|
76
|
-
|
|
77
|
-
Modules are discovered automatically from the packaged `sharkit/modules` directory:
|
|
78
|
-
|
|
79
|
-
- `testing/demo/echo` — echo module for testing the framework
|
|
80
|
-
- `testing/http/metadata` — HTTP metadata gathering (status, headers, content type, …)
|
|
81
|
-
|
|
82
|
-
## Development
|
|
83
|
-
|
|
84
|
-
```bash
|
|
85
|
-
git clone https://github.com/sshsrv/sharkit
|
|
86
|
-
cd sharkit
|
|
87
|
-
uv sync --all-groups
|
|
88
|
-
uv run sharkit
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
Quality gates: `uv run ruff check .`, `uv run mypy src/`, `uv run pytest -q`.
|
|
92
|
-
|
|
93
|
-
## Disclaimer
|
|
94
|
-
|
|
95
|
-
sharkit is a research tool. Use it responsibly and in accordance with applicable law
|
|
96
|
-
and the terms of service of any system you interact with.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|