sing-box-cli 0.0.10__tar.gz → 0.0.12__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 (26) hide show
  1. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/.gitignore +3 -0
  2. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/.pre-commit-config.yaml +23 -23
  3. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/CHANGELOG.md +24 -0
  4. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/PKG-INFO +1 -1
  5. sing_box_cli-0.0.12/config/client-android.json +256 -0
  6. sing_box_cli-0.0.12/config/client-linux.json +248 -0
  7. sing_box_cli-0.0.12/config/client-server.json +236 -0
  8. sing_box_cli-0.0.12/config/client-win.json +247 -0
  9. sing_box_cli-0.0.12/config/server.json +174 -0
  10. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/pyproject.toml +1 -1
  11. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/src/sing_box_service/__init__.py +1 -1
  12. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/src/sing_box_service/main.py +2 -2
  13. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/src/sing_box_service/service.py +3 -3
  14. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/uv.lock +0 -1
  15. sing_box_cli-0.0.10/.vscode/PythonImportHelper-v2-Completion.json +0 -412
  16. sing_box_cli-0.0.10/.vscode/settings.json +0 -12
  17. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/.github/dependabot.yml +0 -0
  18. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/.github/workflows/main.yml +0 -0
  19. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/LICENSE +0 -0
  20. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/README.md +0 -0
  21. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/assets/image.png +0 -0
  22. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/scripts/bump.sh +0 -0
  23. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/scripts/format.sh +0 -0
  24. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/scripts/lint.sh +0 -0
  25. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/src/sing_box_service/config.py +0 -0
  26. {sing_box_cli-0.0.10 → sing_box_cli-0.0.12}/src/sing_box_service/py.typed +0 -0
@@ -161,3 +161,6 @@ cython_debug/
161
161
  # and can be added to the global gitignore or merged into this file. For a more nuclear
162
162
  # option (not recommended) you can uncomment the following to ignore the entire idea folder.
163
163
  .idea/
164
+
165
+ .vscode/settings.json
166
+ .vscode/PythonImportHelper-v2-Completion.json
@@ -2,49 +2,49 @@
2
2
  # `pre-commit install` to set up the git hook scripts
3
3
  # `pre-commit autoupdate` to update repos
4
4
  # `pre-commit run --all-files` run hooks for all file
5
- exclude: (^|/)\..* # exclude hidden files or folder
5
+
6
+ # exclude: (^|/)\..*
7
+
6
8
  repos:
7
9
  - repo: https://github.com/pre-commit/pre-commit-hooks
8
10
  rev: v5.0.0
9
11
  hooks:
10
12
  - id: check-toml
11
13
  - id: check-yaml
12
- args: ["--unsafe"]
14
+ - id: sort-simple-yaml
13
15
  - id: check-json
16
+ - id: pretty-format-json
17
+ args: [--autofix, --no-sort-keys,--no-ensure-ascii]
14
18
  - id: check-added-large-files
15
- args: ["--maxkb=51200"]
16
- - id: debug-statements
19
+ args: [--maxkb=51200]
17
20
  - id: end-of-file-fixer
18
21
  - id: trailing-whitespace
19
22
  - id: detect-private-key
20
- - id: destroyed-symlinks
21
- - id: check-vcs-permalinks
22
- # spell check
23
+
23
24
  - repo: https://github.com/codespell-project/codespell
24
- rev: v2.3.0
25
+ rev: v2.4.1
25
26
  hooks:
26
27
  - id: codespell
27
- files: \.(py|sh|rst|yml|yaml|md)$
28
28
  args: [--write-changes]
29
- # lint and format
29
+ files: \.(py|sh|json|yml|yaml|md)$
30
+
30
31
  - repo: https://github.com/astral-sh/ruff-pre-commit
31
- rev: v0.8.6
32
+ rev: v0.9.4
32
33
  hooks:
33
34
  - id: ruff
34
- args: [ --fix ]
35
+ args: [--fix]
35
36
  - id: ruff-format
36
- # - repo: https://github.com/hadolint/hadolint
37
- # rev: v2.12.0
38
- # hooks:
39
- # - id: hadolint
40
- # name: Lint Dockerfiles
41
- # description: Runs hadolint to lint Dockerfiles
42
- # language: system
43
- # types: ["dockerfile"]
44
- # entry: hadolint
37
+
38
+ - repo: https://github.com/astral-sh/uv-pre-commit
39
+ # uv version.
40
+ rev: 0.5.27
41
+ hooks:
42
+ # Update the uv lockfile
43
+ - id: uv-lock
44
+
45
45
  ci:
46
- # Settings for the https://pre-commit.ci/ continuous integration service
47
- autofix_prs: True
48
46
  autofix_commit_msg: 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
47
+ # Settings for the https://pre-commit.ci/ continuous integration service
48
+ autofix_prs: true
49
49
  autoupdate_commit_msg: ⬆ [pre-commit.ci] pre-commit autoupdate
50
50
  autoupdate_schedule: monthly
@@ -2,6 +2,30 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## 0.0.12 - 2025-02-28
6
+
7
+ ### 🐛 Bug Fixes
8
+
9
+ - Pre-commit pretty json replace unicode emoji with ascii
10
+ - Increase hop interval
11
+ - Add RunOnlyIfNetworkAvailable
12
+ - Dashboard url
13
+
14
+ ### ⚙️ Miscellaneous Tasks
15
+
16
+ - Update pre-commit and gitignore
17
+ - Add configs template
18
+ - Add server client config
19
+ - Update brutal limit
20
+ - Add microsoft rules
21
+ - Add rule
22
+
23
+ ## 0.0.11 - 2025-01-20
24
+
25
+ ### 🐛 Bug Fixes
26
+
27
+ - Add working dir, clean_cache command would work.
28
+
5
29
  ## 0.0.10 - 2025-01-15
6
30
 
7
31
  ### 🐛 Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sing-box-cli
3
- Version: 0.0.10
3
+ Version: 0.0.12
4
4
  Summary: cross-platform sing-box-service manager.
5
5
  Project-URL: Homepage, https://github.com/aittcuszz/sing-box-service
6
6
  Project-URL: Issues, https://github.com/atticuszz/sing-box-service/issues
@@ -0,0 +1,256 @@
1
+ {
2
+ "log": {
3
+ "level": "warning",
4
+ "timestamp": true
5
+ },
6
+ "dns": {
7
+ "servers": [
8
+ {
9
+ "tag": "dns_direct",
10
+ "address": "h3://223.6.6.6/dns-query",
11
+ "detour": "direct"
12
+ },
13
+ {
14
+ "tag": "dns_proxy",
15
+ "address": "h3://dns.atticux.me/dns-query/asfljsndfaoifa",
16
+ "address_resolver": "dns_direct",
17
+ "client_subnet": "137.184.125.132",
18
+ "detour": "proxy"
19
+ },
20
+ {
21
+ "tag": "dns_fakeip",
22
+ "address": "fakeip"
23
+ }
24
+ ],
25
+ "rules": [
26
+ {
27
+ "outbound": "any",
28
+ "server": "dns_direct"
29
+ },
30
+ {
31
+ "rule_set": "dns-filter",
32
+ "action": "reject"
33
+ },
34
+ {
35
+ "query_type": [
36
+ "A",
37
+ "AAAA"
38
+ ],
39
+ "server": "dns_fakeip"
40
+ },
41
+ {
42
+ "rule_set": "proxy-rule",
43
+ "server": "dns_proxy"
44
+ },
45
+ {
46
+ "rule_set": "direct-rule",
47
+ "server": "dns_direct"
48
+ }
49
+ ],
50
+ "final": "dns_proxy",
51
+ "reverse_mapping": true,
52
+ "cache_capacity": 4096,
53
+ "strategy": "prefer_ipv4",
54
+ "fakeip": {
55
+ "enabled": true,
56
+ "inet4_range": "198.18.0.0/15",
57
+ "inet6_range": "fc00::/18"
58
+ },
59
+ "independent_cache": true
60
+ },
61
+ "inbounds": [
62
+ {
63
+ "type": "tun",
64
+ "tag": "tun-in",
65
+ "mtu": 1492,
66
+ "address": [
67
+ "172.16.0.1/30",
68
+ "fd00::1/126"
69
+ ],
70
+ "auto_route": true,
71
+ "strict_route": true,
72
+ "stack": "system",
73
+ "platform": {
74
+ "http_proxy": {
75
+ "enabled": true,
76
+ "server": "127.0.0.1",
77
+ "server_port": 30327
78
+ }
79
+ }
80
+ },
81
+ {
82
+ "type": "mixed",
83
+ "tag": "mixed-in",
84
+ "tcp_fast_open": true,
85
+ "tcp_multi_path": true,
86
+ "udp_fragment": true,
87
+ "listen": "127.0.0.1",
88
+ "listen_port": 30327
89
+ }
90
+ ],
91
+ "outbounds": [
92
+ {
93
+ "type": "selector",
94
+ "tag": "proxy",
95
+ "outbounds": [
96
+ "⚡San Francisco Hy2",
97
+ "🌩️San Francisco WS",
98
+ "🌟San Francisco WS",
99
+ "direct"
100
+ ],
101
+ "default": "⚡San Francisco Hy2"
102
+ },
103
+ {
104
+ "type": "direct",
105
+ "tag": "direct"
106
+ },
107
+ {
108
+ "type": "vless",
109
+ "tag": "🌟San Francisco WS",
110
+ "tcp_fast_open": true,
111
+ "udp_fragment": true,
112
+ "server": "172.66.45.88",
113
+ "server_port": 2053,
114
+ "uuid": "6a5f528d-1641-406f-95b8-ee9c574d79b3",
115
+ "tls": {
116
+ "enabled": true,
117
+ "server_name": "cdn.atticux.me",
118
+ "min_version": "1.3",
119
+ "alpn": "h3"
120
+ },
121
+ "transport": {
122
+ "type": "ws",
123
+ "path": "/ws",
124
+ "max_early_data": 2048,
125
+ "headers": {
126
+ "Host": "cdn.atticux.me"
127
+ }
128
+ }
129
+ },
130
+ {
131
+ "type": "vless",
132
+ "tag": "🌩️San Francisco WS",
133
+ "server": "104.23.96.99",
134
+ "server_port": 443,
135
+ "uuid": "717f9e5c-9922-49a0-aa12-3fa17d63a7a8",
136
+ "tls": {
137
+ "enabled": true,
138
+ "server_name": "worker.proxy.atticux.me"
139
+ },
140
+ "transport": {
141
+ "type": "ws",
142
+ "path": "/?ed=2560",
143
+ "headers": {
144
+ "Host": "worker.proxy.atticux.me"
145
+ }
146
+ }
147
+ },
148
+ {
149
+ "type": "hysteria2",
150
+ "tag": "⚡San Francisco Hy2",
151
+ "tcp_fast_open": true,
152
+ "tcp_multi_path": false,
153
+ "udp_fragment": true,
154
+ "server": "magic.atticux.me",
155
+ "server_ports": [
156
+ "40000:60000"
157
+ ],
158
+ "hop_interval": "300s",
159
+ "up_mbps": 150,
160
+ "down_mbps": 400,
161
+ "password": "UptVghIUI1djt/K2wwfrYQ==",
162
+ "tls": {
163
+ "enabled": true,
164
+ "server_name": "magic.atticux.me",
165
+ "min_version": "1.3",
166
+ "alpn": "h3"
167
+ }
168
+ }
169
+ ],
170
+ "route": {
171
+ "rules": [
172
+ {
173
+ "inbound": "tun-in",
174
+ "action": "sniff"
175
+ },
176
+ {
177
+ "protocol": "dns",
178
+ "action": "hijack-dns"
179
+ },
180
+ {
181
+ "ip_is_private": true,
182
+ "outbound": "direct"
183
+ },
184
+ {
185
+ "rule_set": "proxy-rule",
186
+ "outbound": "proxy"
187
+ },
188
+ {
189
+ "protocol": "ssh",
190
+ "outbound": "direct"
191
+ },
192
+ {
193
+ "rule_set": "direct-rule",
194
+ "outbound": "direct"
195
+ },
196
+ {
197
+ "rule_set": "geoip-cn",
198
+ "outbound": "direct"
199
+ }
200
+ ],
201
+ "rule_set": [
202
+ {
203
+ "type": "remote",
204
+ "tag": "proxy-rule",
205
+ "format": "binary",
206
+ "url": "https://raw.gh.atticux.me/AtticusZeller/rule-sets/main/binary/proxy.srs",
207
+ "download_detour": "direct",
208
+ "update_interval": "1d"
209
+ },
210
+ {
211
+ "type": "remote",
212
+ "tag": "direct-rule",
213
+ "format": "binary",
214
+ "url": "https://raw.gh.atticux.me/AtticusZeller/rule-sets/main/binary/direct.srs",
215
+ "download_detour": "direct",
216
+ "update_interval": "1d"
217
+ },
218
+ {
219
+ "type": "remote",
220
+ "tag": "geoip-cn",
221
+ "format": "binary",
222
+ "url": "https://raw.gh.atticux.me/SagerNet/sing-geoip/rule-set/geoip-cn.srs",
223
+ "download_detour": "direct",
224
+ "update_interval": "1d"
225
+ },
226
+ {
227
+ "type": "remote",
228
+ "tag": "dns-filter",
229
+ "format": "binary",
230
+ "url": "https://raw.gh.atticux.me/REIJI007/AdBlock_Rule_For_Sing-box/main/adblock_reject.srs",
231
+ "download_detour": "direct",
232
+ "update_interval": "1d"
233
+ }
234
+ ],
235
+ "final": "proxy",
236
+ "auto_detect_interface": true,
237
+ "override_android_vpn": true
238
+ },
239
+ "experimental": {
240
+ "cache_file": {
241
+ "enabled": true,
242
+ "path": "cache.db",
243
+ "store_fakeip": true,
244
+ "store_rdrc": true
245
+ },
246
+ "clash_api": {
247
+ "external_controller": "127.0.0.1:9090",
248
+ "default_mode": "Rule",
249
+ "access_control_allow_origin": [
250
+ "http://127.0.0.1",
251
+ "https://metacubexd.atticux.me"
252
+ ],
253
+ "access_control_allow_private_network": true
254
+ }
255
+ }
256
+ }
@@ -0,0 +1,248 @@
1
+ {
2
+ "log": {
3
+ "level": "warning",
4
+ "timestamp": true
5
+ },
6
+ "dns": {
7
+ "servers": [
8
+ {
9
+ "tag": "dns_direct",
10
+ "address": "h3://223.6.6.6/dns-query",
11
+ "detour": "direct"
12
+ },
13
+ {
14
+ "tag": "dns_proxy",
15
+ "address": "h3://dns.atticux.me/dns-query/asfljsndfaoifa",
16
+ "address_resolver": "dns_direct",
17
+ "client_subnet": "137.184.125.132",
18
+ "detour": "proxy"
19
+ },
20
+ {
21
+ "tag": "dns_fakeip",
22
+ "address": "fakeip"
23
+ }
24
+ ],
25
+ "rules": [
26
+ {
27
+ "outbound": "any",
28
+ "server": "dns_direct"
29
+ },
30
+ {
31
+ "rule_set": "dns-filter",
32
+ "action": "reject"
33
+ },
34
+ {
35
+ "query_type": [
36
+ "A",
37
+ "AAAA"
38
+ ],
39
+ "server": "dns_fakeip"
40
+ },
41
+ {
42
+ "rule_set": "proxy-rule",
43
+ "server": "dns_proxy"
44
+ },
45
+ {
46
+ "rule_set": "direct-rule",
47
+ "server": "dns_direct"
48
+ }
49
+ ],
50
+ "final": "dns_proxy",
51
+ "reverse_mapping": true,
52
+ "cache_capacity": 4096,
53
+ "strategy": "prefer_ipv4",
54
+ "fakeip": {
55
+ "enabled": true,
56
+ "inet4_range": "198.18.0.0/15",
57
+ "inet6_range": "fc00::/18"
58
+ },
59
+ "independent_cache": true
60
+ },
61
+ "ntp": {
62
+ "enabled": true,
63
+ "interval": "30m0s",
64
+ "server": "time.tencent.com",
65
+ "write_to_system": true,
66
+ "server_port": 123
67
+ },
68
+ "inbounds": [
69
+ {
70
+ "type": "tun",
71
+ "tag": "tun-in",
72
+ "mtu": 1492,
73
+ "address": [
74
+ "172.16.0.1/30",
75
+ "fd00::1/126"
76
+ ],
77
+ "auto_route": true,
78
+ "strict_route": true,
79
+ "auto_redirect": true,
80
+ "route_exclude_address_set": "geoip-cn",
81
+ "stack": "system"
82
+ }
83
+ ],
84
+ "outbounds": [
85
+ {
86
+ "type": "selector",
87
+ "tag": "proxy",
88
+ "outbounds": [
89
+ "⚡San Francisco Hy2",
90
+ "🌩️San Francisco WS",
91
+ "🌟San Francisco WS",
92
+ "direct"
93
+ ],
94
+ "default": "⚡San Francisco Hy2"
95
+ },
96
+ {
97
+ "type": "direct",
98
+ "tag": "direct"
99
+ },
100
+ {
101
+ "type": "vless",
102
+ "tag": "🌟San Francisco WS",
103
+ "tcp_fast_open": true,
104
+ "udp_fragment": true,
105
+ "server": "172.66.45.88",
106
+ "server_port": 2053,
107
+ "uuid": "6a5f528d-1641-406f-95b8-ee9c574d79b3",
108
+ "tls": {
109
+ "enabled": true,
110
+ "server_name": "cdn.atticux.me",
111
+ "min_version": "1.3",
112
+ "alpn": "h3"
113
+ },
114
+ "transport": {
115
+ "type": "ws",
116
+ "path": "/ws",
117
+ "max_early_data": 2048,
118
+ "headers": {
119
+ "Host": "cdn.atticux.me"
120
+ }
121
+ }
122
+ },
123
+ {
124
+ "type": "vless",
125
+ "tag": "🌩️San Francisco WS",
126
+ "server": "104.23.96.99",
127
+ "server_port": 443,
128
+ "uuid": "717f9e5c-9922-49a0-aa12-3fa17d63a7a8",
129
+ "tls": {
130
+ "enabled": true,
131
+ "server_name": "worker.proxy.atticux.me"
132
+ },
133
+ "transport": {
134
+ "type": "ws",
135
+ "path": "/?ed=2560",
136
+ "headers": {
137
+ "Host": "worker.proxy.atticux.me"
138
+ }
139
+ }
140
+ },
141
+ {
142
+ "type": "hysteria2",
143
+ "tag": "⚡San Francisco Hy2",
144
+ "tcp_fast_open": true,
145
+ "tcp_multi_path": false,
146
+ "udp_fragment": true,
147
+ "server": "magic.atticux.me",
148
+ "server_ports": [
149
+ "40000:60000"
150
+ ],
151
+ "hop_interval": "300s",
152
+ "up_mbps": 150,
153
+ "down_mbps": 400,
154
+ "password": "UptVghIUI1djt/K2wwfrYQ==",
155
+ "tls": {
156
+ "enabled": true,
157
+ "server_name": "magic.atticux.me",
158
+ "min_version": "1.3",
159
+ "alpn": "h3"
160
+ }
161
+ }
162
+ ],
163
+ "route": {
164
+ "rules": [
165
+ {
166
+ "inbound": "tun-in",
167
+ "action": "sniff"
168
+ },
169
+ {
170
+ "protocol": "dns",
171
+ "action": "hijack-dns"
172
+ },
173
+ {
174
+ "ip_is_private": true,
175
+ "outbound": "direct"
176
+ },
177
+ {
178
+ "rule_set": "proxy-rule",
179
+ "outbound": "proxy"
180
+ },
181
+ {
182
+ "protocol": "ssh",
183
+ "outbound": "direct"
184
+ },
185
+ {
186
+ "rule_set": "direct-rule",
187
+ "outbound": "direct"
188
+ },
189
+ {
190
+ "rule_set": "geoip-cn",
191
+ "outbound": "direct"
192
+ }
193
+ ],
194
+ "rule_set": [
195
+ {
196
+ "type": "remote",
197
+ "tag": "proxy-rule",
198
+ "format": "binary",
199
+ "url": "https://raw.gh.atticux.me/AtticusZeller/rule-sets/main/binary/proxy.srs",
200
+ "download_detour": "direct",
201
+ "update_interval": "1d"
202
+ },
203
+ {
204
+ "type": "remote",
205
+ "tag": "direct-rule",
206
+ "format": "binary",
207
+ "url": "https://raw.gh.atticux.me/AtticusZeller/rule-sets/main/binary/direct.srs",
208
+ "download_detour": "direct",
209
+ "update_interval": "1d"
210
+ },
211
+ {
212
+ "type": "remote",
213
+ "tag": "geoip-cn",
214
+ "format": "binary",
215
+ "url": "https://raw.gh.atticux.me/SagerNet/sing-geoip/rule-set/geoip-cn.srs",
216
+ "download_detour": "direct",
217
+ "update_interval": "1d"
218
+ },
219
+ {
220
+ "type": "remote",
221
+ "tag": "dns-filter",
222
+ "format": "binary",
223
+ "url": "https://raw.gh.atticux.me/REIJI007/AdBlock_Rule_For_Sing-box/main/adblock_reject.srs",
224
+ "download_detour": "direct",
225
+ "update_interval": "1d"
226
+ }
227
+ ],
228
+ "final": "proxy",
229
+ "auto_detect_interface": true
230
+ },
231
+ "experimental": {
232
+ "cache_file": {
233
+ "enabled": true,
234
+ "path": "cache.db",
235
+ "store_fakeip": true,
236
+ "store_rdrc": true
237
+ },
238
+ "clash_api": {
239
+ "external_controller": "127.0.0.1:9090",
240
+ "default_mode": "Rule",
241
+ "access_control_allow_origin": [
242
+ "http://127.0.0.1",
243
+ "https://metacubexd.atticux.me"
244
+ ],
245
+ "access_control_allow_private_network": true
246
+ }
247
+ }
248
+ }