seckit 0.1.0__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.
- seckit-0.1.0/LICENSE +105 -0
- seckit-0.1.0/NOTICE +6 -0
- seckit-0.1.0/PKG-INFO +93 -0
- seckit-0.1.0/README.en.md +62 -0
- seckit-0.1.0/README.md +62 -0
- seckit-0.1.0/pyproject.toml +49 -0
- seckit-0.1.0/seckit/__init__.py +2 -0
- seckit-0.1.0/seckit/__main__.py +2 -0
- seckit-0.1.0/seckit/agents.py +748 -0
- seckit-0.1.0/seckit/audit.py +452 -0
- seckit-0.1.0/seckit/cli.py +379 -0
- seckit-0.1.0/seckit/detect.py +74 -0
- seckit-0.1.0/seckit/fixes.py +419 -0
- seckit-0.1.0/seckit/ignores.py +79 -0
- seckit-0.1.0/seckit/nextsteps.py +96 -0
- seckit-0.1.0/seckit/playbooks.py +138 -0
- seckit-0.1.0/seckit/provision.py +231 -0
- seckit-0.1.0/seckit/report.py +99 -0
- seckit-0.1.0/seckit/reviews.py +75 -0
- seckit-0.1.0/seckit/rules/backend.yml +130 -0
- seckit-0.1.0/seckit/rules/frontend.yml +190 -0
- seckit-0.1.0/seckit/scanning.py +211 -0
- seckit-0.1.0/seckit/supply_chain.py +244 -0
- seckit-0.1.0/seckit/triage.py +68 -0
- seckit-0.1.0/seckit.egg-info/PKG-INFO +93 -0
- seckit-0.1.0/seckit.egg-info/SOURCES.txt +39 -0
- seckit-0.1.0/seckit.egg-info/dependency_links.txt +1 -0
- seckit-0.1.0/seckit.egg-info/entry_points.txt +2 -0
- seckit-0.1.0/seckit.egg-info/top_level.txt +1 -0
- seckit-0.1.0/setup.cfg +4 -0
- seckit-0.1.0/tests/test_agent_ergonomics.py +154 -0
- seckit-0.1.0/tests/test_agent_install.py +173 -0
- seckit-0.1.0/tests/test_agents_fixes.py +409 -0
- seckit-0.1.0/tests/test_agents_live.py +80 -0
- seckit-0.1.0/tests/test_audit.py +189 -0
- seckit-0.1.0/tests/test_cli_live.py +90 -0
- seckit-0.1.0/tests/test_provision_cli.py +340 -0
- seckit-0.1.0/tests/test_rename_migration.py +89 -0
- seckit-0.1.0/tests/test_reviews.py +65 -0
- seckit-0.1.0/tests/test_scanning.py +162 -0
- seckit-0.1.0/tests/test_scanning_live.py +67 -0
seckit-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
Functional Source License, Version 1.1, ALv2 Future License
|
|
2
|
+
|
|
3
|
+
## Abbreviation
|
|
4
|
+
|
|
5
|
+
FSL-1.1-ALv2
|
|
6
|
+
|
|
7
|
+
## Notice
|
|
8
|
+
|
|
9
|
+
Copyright 2026 Stepan Semokha
|
|
10
|
+
|
|
11
|
+
## Terms and Conditions
|
|
12
|
+
|
|
13
|
+
### Licensor ("We")
|
|
14
|
+
|
|
15
|
+
The party offering the Software under these Terms and Conditions.
|
|
16
|
+
|
|
17
|
+
### The Software
|
|
18
|
+
|
|
19
|
+
The "Software" is each version of the software that we make available under
|
|
20
|
+
these Terms and Conditions, as indicated by our inclusion of these Terms and
|
|
21
|
+
Conditions with the Software.
|
|
22
|
+
|
|
23
|
+
### License Grant
|
|
24
|
+
|
|
25
|
+
Subject to your compliance with this License Grant and the Patents,
|
|
26
|
+
Redistribution and Trademark clauses below, we hereby grant you the right to
|
|
27
|
+
use, copy, modify, create derivative works, publicly perform, publicly display
|
|
28
|
+
and redistribute the Software for any Permitted Purpose identified below.
|
|
29
|
+
|
|
30
|
+
### Permitted Purpose
|
|
31
|
+
|
|
32
|
+
A Permitted Purpose is any purpose other than a Competing Use. A Competing Use
|
|
33
|
+
means making the Software available to others in a commercial product or
|
|
34
|
+
service that:
|
|
35
|
+
|
|
36
|
+
1. substitutes for the Software;
|
|
37
|
+
|
|
38
|
+
2. substitutes for any other product or service we offer using the Software
|
|
39
|
+
that exists as of the date we make the Software available; or
|
|
40
|
+
|
|
41
|
+
3. offers the same or substantially similar functionality as the Software.
|
|
42
|
+
|
|
43
|
+
Permitted Purposes specifically include using the Software:
|
|
44
|
+
|
|
45
|
+
1. for your internal use and access;
|
|
46
|
+
|
|
47
|
+
2. for non-commercial education;
|
|
48
|
+
|
|
49
|
+
3. for non-commercial research; and
|
|
50
|
+
|
|
51
|
+
4. in connection with professional services that you provide to a licensee
|
|
52
|
+
using the Software in accordance with these Terms and Conditions.
|
|
53
|
+
|
|
54
|
+
### Patents
|
|
55
|
+
|
|
56
|
+
To the extent your use for a Permitted Purpose would necessarily infringe our
|
|
57
|
+
patents, the license grant above includes a license under our patents. If you
|
|
58
|
+
make a claim against any party that the Software infringes or contributes to
|
|
59
|
+
the infringement of any patent, then your patent license to the Software ends
|
|
60
|
+
immediately.
|
|
61
|
+
|
|
62
|
+
### Redistribution
|
|
63
|
+
|
|
64
|
+
The Terms and Conditions apply to all copies, modifications and derivatives of
|
|
65
|
+
the Software.
|
|
66
|
+
|
|
67
|
+
If you redistribute any copies, modifications or derivatives of the Software,
|
|
68
|
+
you must include a copy of or a link to these Terms and Conditions and not
|
|
69
|
+
remove any copyright notices provided in or with the Software.
|
|
70
|
+
|
|
71
|
+
### Disclaimer
|
|
72
|
+
|
|
73
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR
|
|
74
|
+
IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A PARTICULAR
|
|
75
|
+
PURPOSE, MERCHANTABILITY, TITLE OR NON-INFRINGEMENT.
|
|
76
|
+
|
|
77
|
+
IN NO EVENT WILL WE HAVE ANY LIABILITY TO YOU ARISING OUT OF OR RELATED TO THE
|
|
78
|
+
SOFTWARE, INCLUDING INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES,
|
|
79
|
+
EVEN IF WE HAVE BEEN INFORMED OF THEIR POSSIBILITY IN ADVANCE.
|
|
80
|
+
|
|
81
|
+
### Trademarks
|
|
82
|
+
|
|
83
|
+
Except for displaying the License Details and identifying us as the origin of
|
|
84
|
+
the Software, you have no right under these Terms and Conditions to use our
|
|
85
|
+
trademarks, trade names, service marks or product names.
|
|
86
|
+
|
|
87
|
+
## Grant of Future License
|
|
88
|
+
|
|
89
|
+
We hereby irrevocably grant you an additional license to use the Software under
|
|
90
|
+
the Apache License, Version 2.0 that is effective on the second anniversary of
|
|
91
|
+
the date we make the Software available. On or after that date, you may use the
|
|
92
|
+
Software under the Apache License, Version 2.0, in which case the following
|
|
93
|
+
will apply:
|
|
94
|
+
|
|
95
|
+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
96
|
+
this file except in compliance with the License.
|
|
97
|
+
|
|
98
|
+
You may obtain a copy of the License at
|
|
99
|
+
|
|
100
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
101
|
+
|
|
102
|
+
Unless required by applicable law or agreed to in writing, software distributed
|
|
103
|
+
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|
104
|
+
CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
|
105
|
+
specific language governing permissions and limitations under the License.
|
seckit-0.1.0/NOTICE
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
Seckit source and original bundled Semgrep rules: FSL-1.1-ALv2, converting to Apache-2.0 two years after each release (see LICENSE).
|
|
2
|
+
Trivy: Apache-2.0, https://github.com/aquasecurity/trivy/blob/main/LICENSE
|
|
3
|
+
Semgrep Community Edition: LGPL-2.1-or-later, https://github.com/semgrep/semgrep/blob/develop/LICENSE
|
|
4
|
+
Scanner binaries are downloaded from their publishers, not bundled in this distribution.
|
|
5
|
+
Downloaded Python wheels include separately licensed dependencies and retain their metadata.
|
|
6
|
+
The Semgrep community registry uses a separate rules license; Seckit does not redistribute that registry.
|
seckit-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: seckit
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Local security toolkit for coding agents: secrets, SAST, SCA, IaC, supply chain and code audit in one report
|
|
5
|
+
Author: Stefan
|
|
6
|
+
License-Expression: FSL-1.1-ALv2
|
|
7
|
+
Project-URL: Homepage, https://github.com/nejroseld/seckit
|
|
8
|
+
Project-URL: Documentation, https://github.com/nejroseld/seckit/tree/main/docs
|
|
9
|
+
Project-URL: Issues, https://github.com/nejroseld/seckit/issues
|
|
10
|
+
Project-URL: Source, https://github.com/nejroseld/seckit
|
|
11
|
+
Keywords: security,sast,sca,secrets,semgrep,trivy,mcp,claude-code,codex,cursor,ai-agents
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
16
|
+
Classifier: Operating System :: MacOS
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
24
|
+
Classifier: Topic :: Security
|
|
25
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
26
|
+
Requires-Python: >=3.10
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
License-File: LICENSE
|
|
29
|
+
License-File: NOTICE
|
|
30
|
+
Dynamic: license-file
|
|
31
|
+
|
|
32
|
+
<p align="center">
|
|
33
|
+
<img src="https://raw.githubusercontent.com/nejroseld/seckit/main/assets/hero.svg" alt="Seckit" width="100%">
|
|
34
|
+
</p>
|
|
35
|
+
|
|
36
|
+
<p align="center">
|
|
37
|
+
<b>Local security checks for your project, built for Claude Code, Codex and Cursor.</b><br>
|
|
38
|
+
<a href="https://github.com/nejroseld/seckit/blob/main/README.md">Русский</a> · English
|
|
39
|
+
</p>
|
|
40
|
+
|
|
41
|
+
<p align="center">
|
|
42
|
+
<img alt="Python 3.10+" src="https://img.shields.io/badge/python-3.10%2B-3776ab?logo=python&logoColor=white">
|
|
43
|
+
<img alt="Linux · macOS · WSL" src="https://img.shields.io/badge/Linux%20·%20macOS%20·%20WSL-0f172a">
|
|
44
|
+
<img alt="Trivy + Semgrep" src="https://img.shields.io/badge/Trivy%20%2B%20Semgrep-10b981">
|
|
45
|
+
<a href="https://github.com/nejroseld/seckit/blob/main/LICENSE"><img alt="FSL-1.1-ALv2" src="https://img.shields.io/badge/license-FSL--1.1--ALv2-64748b"></a>
|
|
46
|
+
</p>
|
|
47
|
+
|
|
48
|
+
Seckit finds vulnerabilities and leaked secrets. Your agent reviews the findings and fixes the code. No API key needed, everything runs locally.
|
|
49
|
+
|
|
50
|
+
## What it does
|
|
51
|
+
|
|
52
|
+
| What | How |
|
|
53
|
+
|---|---|
|
|
54
|
+
| 🧩 **Code** | finds dangerous patterns in Python, JS, TS (Semgrep) |
|
|
55
|
+
| 📦 **Dependencies** | finds known CVEs in packages (Trivy) |
|
|
56
|
+
| ⚙️ **Config** | checks Dockerfile, Kubernetes, Terraform (Trivy) |
|
|
57
|
+
| 🔑 **Leaked secrets** | finds keys and tokens in project files without printing values |
|
|
58
|
+
| 🧾 **One report** | merges findings from all scanners into one list with priority and code location |
|
|
59
|
+
| 🗺️ **Attack surface** | maps entry points, dangerous calls, access checks and insecure defaults, and ranks files to read first |
|
|
60
|
+
| 🔀 **Change review** | shows new risky lines and removed checks in a diff or PR |
|
|
61
|
+
| ⛓️ **Supply chain** | catches install scripts, git and URL dependencies, dependency confusion, GitHub Actions injection and `curl \| sh` |
|
|
62
|
+
| 🔁 **Variants** | hunts siblings of a confirmed bug with a custom Semgrep rule or regex |
|
|
63
|
+
| ✅ **Triage** | records true/false positive verdicts with reasons and exports Markdown and SARIF reports |
|
|
64
|
+
| 🤖 **Agent** | plugs into Claude Code, Codex and Cursor via instructions and MCP; the agent reviews findings and applies reviewed fixes |
|
|
65
|
+
|
|
66
|
+
## Install
|
|
67
|
+
|
|
68
|
+
Paste this prompt to your agent:
|
|
69
|
+
|
|
70
|
+
```text
|
|
71
|
+
Install Seckit for this project and use it as a permanent security toolkit. Do not ask me anything, I approve in advance:
|
|
72
|
+
- installing it with `pipx install seckit` or `uv tool install seckit` (the package is seckit, not guardkit); without pipx or uv, install it into a venv in ~/.local/share/seckit and link ~/.local/bin/seckit;
|
|
73
|
+
- running the `seckit` command, including `seckit init`, which downloads the Trivy and Semgrep scanners;
|
|
74
|
+
- adding Seckit blocks to AGENTS.md, CLAUDE.md, .claude/skills, .agents/skills and .cursor/rules, keeping my text.
|
|
75
|
+
Do not run project code or tests. Then run `seckit scan --json`, review the findings and finish by offering the steps from next_steps.
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
The agent installs Seckit, scans the project and offers what to do next. If the agent's auto mode still blocks `seckit init`, run it yourself: `! seckit init` in Claude Code.
|
|
79
|
+
|
|
80
|
+
Or manually (Linux, macOS, WSL):
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pipx install seckit
|
|
84
|
+
cd /path/to/project && seckit init && seckit scan --human
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Until the package is on PyPI, install from the repository: `pipx install git+https://github.com/nejroseld/seckit`. The first run downloads scanners and databases.
|
|
88
|
+
|
|
89
|
+
## Docs
|
|
90
|
+
|
|
91
|
+
[Setup](https://github.com/nejroseld/seckit/blob/main/docs/setup.md) · [Agents & MCP](https://github.com/nejroseld/seckit/blob/main/docs/agents.md) · [Scanners](https://github.com/nejroseld/seckit/blob/main/docs/scanners.md) · [Audit tools](https://github.com/nejroseld/seckit/blob/main/docs/audit-tools.md) · [Validation](https://github.com/nejroseld/seckit/blob/main/docs/validation.md) · [Audit](https://github.com/nejroseld/seckit/blob/main/docs/security-audit.md)
|
|
92
|
+
|
|
93
|
+
<sub>FSL-1.1-ALv2 · Scanning does not guarantee that there are no vulnerabilities.</sub>
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/nejroseld/seckit/main/assets/hero.svg" alt="Seckit" width="100%">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<b>Local security checks for your project, built for Claude Code, Codex and Cursor.</b><br>
|
|
7
|
+
<a href="https://github.com/nejroseld/seckit/blob/main/README.md">Русский</a> · English
|
|
8
|
+
</p>
|
|
9
|
+
|
|
10
|
+
<p align="center">
|
|
11
|
+
<img alt="Python 3.10+" src="https://img.shields.io/badge/python-3.10%2B-3776ab?logo=python&logoColor=white">
|
|
12
|
+
<img alt="Linux · macOS · WSL" src="https://img.shields.io/badge/Linux%20·%20macOS%20·%20WSL-0f172a">
|
|
13
|
+
<img alt="Trivy + Semgrep" src="https://img.shields.io/badge/Trivy%20%2B%20Semgrep-10b981">
|
|
14
|
+
<a href="https://github.com/nejroseld/seckit/blob/main/LICENSE"><img alt="FSL-1.1-ALv2" src="https://img.shields.io/badge/license-FSL--1.1--ALv2-64748b"></a>
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
Seckit finds vulnerabilities and leaked secrets. Your agent reviews the findings and fixes the code. No API key needed, everything runs locally.
|
|
18
|
+
|
|
19
|
+
## What it does
|
|
20
|
+
|
|
21
|
+
| What | How |
|
|
22
|
+
|---|---|
|
|
23
|
+
| 🧩 **Code** | finds dangerous patterns in Python, JS, TS (Semgrep) |
|
|
24
|
+
| 📦 **Dependencies** | finds known CVEs in packages (Trivy) |
|
|
25
|
+
| ⚙️ **Config** | checks Dockerfile, Kubernetes, Terraform (Trivy) |
|
|
26
|
+
| 🔑 **Leaked secrets** | finds keys and tokens in project files without printing values |
|
|
27
|
+
| 🧾 **One report** | merges findings from all scanners into one list with priority and code location |
|
|
28
|
+
| 🗺️ **Attack surface** | maps entry points, dangerous calls, access checks and insecure defaults, and ranks files to read first |
|
|
29
|
+
| 🔀 **Change review** | shows new risky lines and removed checks in a diff or PR |
|
|
30
|
+
| ⛓️ **Supply chain** | catches install scripts, git and URL dependencies, dependency confusion, GitHub Actions injection and `curl \| sh` |
|
|
31
|
+
| 🔁 **Variants** | hunts siblings of a confirmed bug with a custom Semgrep rule or regex |
|
|
32
|
+
| ✅ **Triage** | records true/false positive verdicts with reasons and exports Markdown and SARIF reports |
|
|
33
|
+
| 🤖 **Agent** | plugs into Claude Code, Codex and Cursor via instructions and MCP; the agent reviews findings and applies reviewed fixes |
|
|
34
|
+
|
|
35
|
+
## Install
|
|
36
|
+
|
|
37
|
+
Paste this prompt to your agent:
|
|
38
|
+
|
|
39
|
+
```text
|
|
40
|
+
Install Seckit for this project and use it as a permanent security toolkit. Do not ask me anything, I approve in advance:
|
|
41
|
+
- installing it with `pipx install seckit` or `uv tool install seckit` (the package is seckit, not guardkit); without pipx or uv, install it into a venv in ~/.local/share/seckit and link ~/.local/bin/seckit;
|
|
42
|
+
- running the `seckit` command, including `seckit init`, which downloads the Trivy and Semgrep scanners;
|
|
43
|
+
- adding Seckit blocks to AGENTS.md, CLAUDE.md, .claude/skills, .agents/skills and .cursor/rules, keeping my text.
|
|
44
|
+
Do not run project code or tests. Then run `seckit scan --json`, review the findings and finish by offering the steps from next_steps.
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
The agent installs Seckit, scans the project and offers what to do next. If the agent's auto mode still blocks `seckit init`, run it yourself: `! seckit init` in Claude Code.
|
|
48
|
+
|
|
49
|
+
Or manually (Linux, macOS, WSL):
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
pipx install seckit
|
|
53
|
+
cd /path/to/project && seckit init && seckit scan --human
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Until the package is on PyPI, install from the repository: `pipx install git+https://github.com/nejroseld/seckit`. The first run downloads scanners and databases.
|
|
57
|
+
|
|
58
|
+
## Docs
|
|
59
|
+
|
|
60
|
+
[Setup](https://github.com/nejroseld/seckit/blob/main/docs/setup.md) · [Agents & MCP](https://github.com/nejroseld/seckit/blob/main/docs/agents.md) · [Scanners](https://github.com/nejroseld/seckit/blob/main/docs/scanners.md) · [Audit tools](https://github.com/nejroseld/seckit/blob/main/docs/audit-tools.md) · [Validation](https://github.com/nejroseld/seckit/blob/main/docs/validation.md) · [Audit](https://github.com/nejroseld/seckit/blob/main/docs/security-audit.md)
|
|
61
|
+
|
|
62
|
+
<sub>FSL-1.1-ALv2 · Scanning does not guarantee that there are no vulnerabilities.</sub>
|
seckit-0.1.0/README.md
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/hero.svg" alt="Seckit" width="100%">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<b>Локальная проверка безопасности проекта для Claude Code, Codex и Cursor.</b><br>
|
|
7
|
+
Русский · <a href="README.en.md">English</a>
|
|
8
|
+
</p>
|
|
9
|
+
|
|
10
|
+
<p align="center">
|
|
11
|
+
<img alt="Python 3.10+" src="https://img.shields.io/badge/python-3.10%2B-3776ab?logo=python&logoColor=white">
|
|
12
|
+
<img alt="Linux · macOS · WSL" src="https://img.shields.io/badge/Linux%20·%20macOS%20·%20WSL-0f172a">
|
|
13
|
+
<img alt="Trivy + Semgrep" src="https://img.shields.io/badge/Trivy%20%2B%20Semgrep-10b981">
|
|
14
|
+
<a href="LICENSE"><img alt="FSL-1.1-ALv2" src="https://img.shields.io/badge/license-FSL--1.1--ALv2-64748b"></a>
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
Seckit ищет уязвимости, а ваш агент разбирает находки и исправляет код. Всё работает локально.
|
|
18
|
+
|
|
19
|
+
## Что делает
|
|
20
|
+
|
|
21
|
+
| Что | Как |
|
|
22
|
+
|---|---|
|
|
23
|
+
| 🧩 **Код** | ищет опасные конструкции в Python, JS, TS (Semgrep) |
|
|
24
|
+
| 📦 **Зависимости** | находит известные CVE в пакетах (Trivy) |
|
|
25
|
+
| ⚙️ **Конфигурация** | проверяет Dockerfile, Kubernetes, Terraform (Trivy) |
|
|
26
|
+
| 🔑 **Забытые секреты** | находит ключи и токены в файлах проекта, значения не выводит |
|
|
27
|
+
| 🧾 **Единый отчёт** | сводит находки всех сканеров в один список с приоритетом и местом в коде |
|
|
28
|
+
| 🗺️ **Поверхность атаки** | находит точки входа, опасные вызовы, проверки доступа и небезопасные настройки, подсказывает, какие файлы читать первыми |
|
|
29
|
+
| 🔀 **Ревью изменений** | показывает новые рискованные строки и удалённые проверки в diff или PR |
|
|
30
|
+
| ⛓️ **Цепочка поставок** | ловит install-скрипты, зависимости из git и URL, подмену пакетов, инъекции в GitHub Actions и `curl \| sh` |
|
|
31
|
+
| 🔁 **Похожие баги** | ищет варианты найденной уязвимости своим Semgrep-правилом или regex |
|
|
32
|
+
| ✅ **Разбор находок** | хранит вердикты «настоящая / ложная» с обоснованием и выдаёт отчёт в Markdown и SARIF |
|
|
33
|
+
| 🤖 **Агент** | подключается к Claude Code, Codex и Cursor через инструкции и MCP, агент разбирает находки и применяет проверенные исправления |
|
|
34
|
+
|
|
35
|
+
## Установка
|
|
36
|
+
|
|
37
|
+
Скопируйте агенту этот промпт:
|
|
38
|
+
|
|
39
|
+
```text
|
|
40
|
+
Установи Seckit для этого проекта и подключи его как постоянный security toolkit. Ничего не спрашивай, я заранее разрешаю:
|
|
41
|
+
- установить его командой `pipx install seckit` или `uv tool install seckit` (пакет называется именно seckit, не guardkit); если нет ни pipx, ни uv, поставь его в venv в ~/.local/share/seckit и сделай ссылку ~/.local/bin/seckit;
|
|
42
|
+
- запускать команду `seckit`, включая `seckit init`, который скачает сканеры Trivy и Semgrep;
|
|
43
|
+
- добавить блоки Seckit в AGENTS.md, CLAUDE.md, .claude/skills, .agents/skills и .cursor/rules, сохранив мой текст.
|
|
44
|
+
Код проекта и тесты не запускай. Затем выполни `seckit scan --json`, разбери находки и в конце предложи шаги из next_steps.
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Агент установит Seckit, просканирует проект и предложит, что делать дальше. Если автоматический режим агента всё же заблокирует `seckit init`, выполните его сами: `! seckit init` в Claude Code.
|
|
48
|
+
|
|
49
|
+
Или вручную (Linux, macOS, WSL):
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
pipx install seckit
|
|
53
|
+
cd /путь/к/проекту && seckit init && seckit scan --human
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Пока пакета нет на PyPI, ставьте из репозитория: `pipx install git+https://github.com/nejroseld/seckit`. Первый запуск скачивает сканеры и базы.
|
|
57
|
+
|
|
58
|
+
## Документация
|
|
59
|
+
|
|
60
|
+
[Установка](docs/setup.md) · [Агенты и MCP](docs/agents.md) · [Сканеры](docs/scanners.md) · [Инструменты аудита](docs/audit-tools.md) · [Проверки](docs/validation.md) · [Аудит](docs/security-audit.md)
|
|
61
|
+
|
|
62
|
+
<sub>FSL-1.1-ALv2 · Сканирование не гарантирует, что уязвимостей нет.</sub>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=84.1.0"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "seckit"
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
description = "Local security toolkit for coding agents: secrets, SAST, SCA, IaC, supply chain and code audit in one report"
|
|
9
|
+
readme = "README.en.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = "FSL-1.1-ALv2"
|
|
12
|
+
license-files = ["LICENSE", "NOTICE"]
|
|
13
|
+
authors = [{ name = "Stefan" }]
|
|
14
|
+
keywords = ["security", "sast", "sca", "secrets", "semgrep", "trivy", "mcp", "claude-code", "codex", "cursor", "ai-agents"]
|
|
15
|
+
classifiers = [
|
|
16
|
+
"Development Status :: 3 - Alpha",
|
|
17
|
+
"Environment :: Console",
|
|
18
|
+
"Intended Audience :: Developers",
|
|
19
|
+
"Operating System :: POSIX :: Linux",
|
|
20
|
+
"Operating System :: MacOS",
|
|
21
|
+
"Programming Language :: Python :: 3",
|
|
22
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
23
|
+
"Programming Language :: Python :: 3.10",
|
|
24
|
+
"Programming Language :: Python :: 3.11",
|
|
25
|
+
"Programming Language :: Python :: 3.12",
|
|
26
|
+
"Programming Language :: Python :: 3.13",
|
|
27
|
+
"Programming Language :: Python :: 3.14",
|
|
28
|
+
"Topic :: Security",
|
|
29
|
+
"Topic :: Software Development :: Quality Assurance",
|
|
30
|
+
]
|
|
31
|
+
dependencies = []
|
|
32
|
+
|
|
33
|
+
[project.urls]
|
|
34
|
+
Homepage = "https://github.com/nejroseld/seckit"
|
|
35
|
+
Documentation = "https://github.com/nejroseld/seckit/tree/main/docs"
|
|
36
|
+
Issues = "https://github.com/nejroseld/seckit/issues"
|
|
37
|
+
Source = "https://github.com/nejroseld/seckit"
|
|
38
|
+
|
|
39
|
+
[project.scripts]
|
|
40
|
+
seckit = "seckit.cli:main"
|
|
41
|
+
|
|
42
|
+
[tool.setuptools.dynamic]
|
|
43
|
+
version = { attr = "seckit.__version__" }
|
|
44
|
+
|
|
45
|
+
[tool.setuptools.packages.find]
|
|
46
|
+
include = ["seckit*"]
|
|
47
|
+
|
|
48
|
+
[tool.setuptools.package-data]
|
|
49
|
+
seckit = ["rules/*.yml"]
|