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.
Files changed (41) hide show
  1. seckit-0.1.0/LICENSE +105 -0
  2. seckit-0.1.0/NOTICE +6 -0
  3. seckit-0.1.0/PKG-INFO +93 -0
  4. seckit-0.1.0/README.en.md +62 -0
  5. seckit-0.1.0/README.md +62 -0
  6. seckit-0.1.0/pyproject.toml +49 -0
  7. seckit-0.1.0/seckit/__init__.py +2 -0
  8. seckit-0.1.0/seckit/__main__.py +2 -0
  9. seckit-0.1.0/seckit/agents.py +748 -0
  10. seckit-0.1.0/seckit/audit.py +452 -0
  11. seckit-0.1.0/seckit/cli.py +379 -0
  12. seckit-0.1.0/seckit/detect.py +74 -0
  13. seckit-0.1.0/seckit/fixes.py +419 -0
  14. seckit-0.1.0/seckit/ignores.py +79 -0
  15. seckit-0.1.0/seckit/nextsteps.py +96 -0
  16. seckit-0.1.0/seckit/playbooks.py +138 -0
  17. seckit-0.1.0/seckit/provision.py +231 -0
  18. seckit-0.1.0/seckit/report.py +99 -0
  19. seckit-0.1.0/seckit/reviews.py +75 -0
  20. seckit-0.1.0/seckit/rules/backend.yml +130 -0
  21. seckit-0.1.0/seckit/rules/frontend.yml +190 -0
  22. seckit-0.1.0/seckit/scanning.py +211 -0
  23. seckit-0.1.0/seckit/supply_chain.py +244 -0
  24. seckit-0.1.0/seckit/triage.py +68 -0
  25. seckit-0.1.0/seckit.egg-info/PKG-INFO +93 -0
  26. seckit-0.1.0/seckit.egg-info/SOURCES.txt +39 -0
  27. seckit-0.1.0/seckit.egg-info/dependency_links.txt +1 -0
  28. seckit-0.1.0/seckit.egg-info/entry_points.txt +2 -0
  29. seckit-0.1.0/seckit.egg-info/top_level.txt +1 -0
  30. seckit-0.1.0/setup.cfg +4 -0
  31. seckit-0.1.0/tests/test_agent_ergonomics.py +154 -0
  32. seckit-0.1.0/tests/test_agent_install.py +173 -0
  33. seckit-0.1.0/tests/test_agents_fixes.py +409 -0
  34. seckit-0.1.0/tests/test_agents_live.py +80 -0
  35. seckit-0.1.0/tests/test_audit.py +189 -0
  36. seckit-0.1.0/tests/test_cli_live.py +90 -0
  37. seckit-0.1.0/tests/test_provision_cli.py +340 -0
  38. seckit-0.1.0/tests/test_rename_migration.py +89 -0
  39. seckit-0.1.0/tests/test_reviews.py +65 -0
  40. seckit-0.1.0/tests/test_scanning.py +162 -0
  41. 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"]
@@ -0,0 +1,2 @@
1
+ """Seckit: local security tools for coding agents."""
2
+ __version__ = "0.1.0"
@@ -0,0 +1,2 @@
1
+ from .cli import main
2
+ raise SystemExit(main())