Արտաքին հասանելիություն (CLI և AI հաճախորդներ)
Արտաքին հասանելիությունը թույլ է տալիս տեղական հրամանի տողի ծրագրերին և MCP-ունակ AI հաճախորդներին կառավարել ScriptCat-ի սկրիպտները sctl միջոցով:
AI client ── stdio MCP ──▶ sctl mcp ── local control API ──▶ sctl serve ── WebSocket ──▶ ScriptCat
CLI ────────────────────────────────────────────────────────▲
sctl serve-ը առանձին տեղական դեմոն է, որը դուք պետք է բացահայտորեն գործարկեք: sctl mcp-ը և հարցում կատարող հրամանները երբեք այն ավտոմատ չեն գործարկում: ScriptCat-ի քաղաքականությունները և զննարկչի հաստատման ինտերֆեյսը միշտ որոշում են՝ թույլատրվա՞ծ է աղբյուրի բացահայտումը կամ գրառումը. արտաքին ծրագիրը չի կարող հաստատել իր սեփական հարցումը:
sctl-ը լռելյայն լսում է 127.0.0.1 հասցեում: Այն լսում է մեկ այլ ինտերֆեյսում միայն այն դեպքում, երբ բացահայտորեն փոխանցվում է --listen-address: ws://-ը չի գաղտնագրում բիզնես տրաֆիկը, և չկա մեկ հեռավոր հաճախորդի մեկուսացում, ուստի ոչ լռելյայն հասցե օգտագործեք միայն վստահելի ցանցում: Ընդլայնումը և դեմոնը դեռ հաստատում են երկարաժամկետ բանալի՝ միանգամյա զուգակցման կոդի միջոցով և հետագա կապերի ժամանակ օգտագործում են փոխադարձ վավերացում:
1. Տեղադրել sctl
Տեղադրեք վերջին թողարկումը մեկ հրամանով — macOS և Linux:
curl -fsSL https://raw.githubusercontent.com/scriptscat/sctl/main/scripts/install.sh | sh
կամ Windows PowerShell.
irm https://raw.githubusercontent.com/scriptscat/sctl/main/scripts/install.ps1 | iex
Տեղադրիչը ներբեռնում է գծիկով անվանված sctl-<version>-<os>-<arch>.<ext> թողարկման արխիվը ձեր հարթակի համար, ստուգում է դրա sha256-ը նույն թողարկման checksums.txt-ի դեմ և տեղադրում sctl-ը ~/.local/bin (macOS/Linux) կամ %LOCALAPPDATA%\\sctl\\bin (Windows) թղթապանակում: SCTL_VERSION-ը ամրացնում է կոնկրետ տարբերակ; SCTL_INSTALL_DIR-ը փոխարինում է տեղադրման թղթապանակը: Եթե տեղադրման թղթապանակը ձեր PATH-ում չէ, տեղադրիչը տպում է ձեր հարթակի համար ճշգրիտ PATH հուշումը — այն երբեք ինքնուրույն չի խմբագրում ձեր շելլի պրոֆիլը կամ օգտագործողի PATH-ը:
sctl-ը մեկ գործարկվող ֆայլ է: Եթե GitHub Releases կայքում հրապարակված արխիվ կա ձեր հարթակի համար, կարող եք նաև ներբեռնել և արխիվացնել այն, ապա տեղադրել sctl-ը (sctl.exe Windows-ում) PATH-ում:
sctl version
Պարզ սկզբնաղբյուրից կառուցվածքը հաղորդում է 0.0.0-dev՝ այն տարբերելու համար ներմուծված տարբերակով, commit-ով և կառուցման ժամանակի մետատվյալներով թողարկման կառուցվածքից; դա չի խանգարում այն ScriptCat-ին միանալուն: Եթե թողարկում չկա, ներդրողները կարող են այն կառուցել sctl պահեստից:
2. Գործարկել դեմոնը և գրանցվել
Գրանցո ւմը միանգամյա քայլ է: Դրանից հետո CLI-ն և յուրաքանչյուր MCP հաճախորդ կիսում են վստահելի ընդլայնում-դեմոն կապուղին. նրանք առանձին չեն զուգակցվում:
2.1 Ընտրեք տվյալների թղթապանակ
Դեմոնը, CLI-ն և MCP պրոցեսը պետք է օգտագործեն նույն տվյալների թղթապանակը: Այն պահում է երկարաժամկետ զուգակցման բանալին, տեղական կառավարման նշանը և լոգերը: Ընտրեք ընթացիկ օգտագործողի համար մասնավոր բացարձակ ուղի՝
/absolute/path/to/sctl-data
Սահմանեք նույն միջավայրի փոփոխականը յուրաքանչյուր sctl պրոցեսի համար՝
export SCTL_DATA_DIR=/absolute/path/to/sctl-data
sctl serve
sctl status
sctl mcp
Բացահայտ --data-dir-ը գերակայում է միջավայրի փոփոխականին:
Եթե ոչ --data-dir, ոչ էլ SCTL_DATA_DIR սահմանված չէ, sctl-ը օգտագործում է հարթակի լռելյայն մեկ օգտագործողի հավելվածի տվյալների թղթապանակը: Մի դրեք տվյալների թղթապանակը պահեստում կամ ընդհանուր համաժամացման թղթապանակում, և երբեք մի տվեք դրա pairing.key-ը կամ control.token-ը AI մոդելին:
2.2 Գործարկել դեմոնը
Գործարկեք սա տերմինալում և պահեք պրոցեսը գործող՝
sctl serve
Լռելյայն հասցեն ws://127.0.0.1:8643 է: Դեմոնը երբեք ավտոմատ չի գործարկվում connect-ի, status-ի, մեկ այլ CLI հրամանի կամ sctl mcp-ի կողմից: Մշտական օգտագործման համար գործարկեք վերը նշված հրամանը ձեր օպերացիոն համակարգի օգտագործողի ծառայությունների կառավարիչով:
Բոլոր ցանցային ինտերֆեյսներում բացահայտորեն լսելու համար գործարկեք՝
sctl --listen-address 0.0.0.0:8643 serve
Դեմոնի հոսթում փոխանցեք նույն --listen-address-ը connect-ին, status-ին, այլ CLI հրամաններին և sctl mcp-ին: ScriptCat-ի sctl հասցե կարգավորումում մուտքագրեք հասցե, որը ընդլայնումը կարող է իրականում հասնել, օրինակ՝ ws://192.168.1.10:8643; մի մուտքագրեք 0.0.0.0:
2.3 Միացնել և զուգակցել ScriptCat-ում
-
Բացեք Կարգա վորումներ → Գործիքներ → Արտաքին հասանելիություն ScriptCat-ում և միացրեք անջատիչը:
-
Հաստատեք, որ sctl հասցեն համապատասխանում է դեմոնին; սովորաբար պահեք լռելյայն
ws://127.0.0.1:8643-ը: -
Պահեք
sctl serve-ը գործող և մեկ այլ տերմինալում գործարկեք՝sctl connect -
Մուտքագրեք 8 նիշանոց տերմինալի կոդը «Գրանցել sctl» երկխոսության մեջ:
-
Ստուգեք կապը՝
sctl status
Կարգավիճակը պետք է հաղորդի միացված ընդլայնում և ցույց տա դեմոնի տարբերակը:
Կոդը նման է A1B2-C3D4-ի, գործում է 2 րոպե հետո ժամկետանց և օգտագործվում է մեկ անգամ: Այն չի ուղարկվում ընդլայնմանը WebSocket-ի միջոցով: Երբեք մի տեղադրեք այն AI չաթի, issue-ի, լոգի կամ MCP կոնֆիգուրացիայի մեջ; եթե այն ժամկետանց է, նորից գործարկեք connect-ը:
3. Թույլտվություններ և հաստատում
| Կարողություն | Լռելյայն վարքագիծ |
|---|---|
| Սկրիպտների ցուցակագրում և մետատվյալների ընթերցում | Վերադարձվում է ուղղակիորեն |
| Սկրիպտի աղբյուրի ընթերցում կամ որոնում | Հետևում է աղբյուրի ընթերցման քաղաքականությանը |
| Սկրիպտի տեղադրում, խմբագրում, միացում, անջատում կամ ջնջում | Հետևում է գրառման քաղաքականությանը |
Երկու քաղաքականություններն էլ առաջարկում են «Պահանջել հաստատում» (լռելյայն) և «Թույլատրել ուղղակիորեն»:
«Պահանջել հաստատում»-ի դեպքում հարցումները բացում են զննարկչի հաստատման էջ: Դուք կարող եք մերժել, թույլատրել մեկ անգամ կամ ընտրել «Թույլատրել այս նստաշրջանի համար»: Նստաշրջանի թույլտվությունները կապված են սկրիպտի և գործողության տեսակի հետ և ջնջվում են, երբ զննարկիչը վերագործարկվում է, ընդլայնումը վերաբեռնվում է կամ Արտաքին հասանելիությունը դադարում է: Հարցումը ժամկետանց է դառնում 5 րոպե հետո՝ առանց որոշման; հարցում կատարողի անջատումը կամ Ctrl-C-ն նույնպես չեղարկում է այն:
«Թույլատրել ուղղակիորեն»-ը շրջանցում է հաստատման էջը այդ դասի գործողությունների համար: Աղբյուրը կարող է պարունակել API բանալիներ, քուքիներ և այլ գաղտնիքներ, իսկ գրառումները կարող են ուղղակիորեն փոխել սկրիպտները, ուստի միացրեք այն միայն այն դեպքում, եթե ընդունում եք այդ ռիսկը:
4. Հրամանի տողի օգտագործում
sctl get # List scripts
sctl get <uuid> # Read metadata
sctl get <uuid> -o source # Print full source
sctl get <uuid> -o source --lines 20-80
sctl grep <uuid> "fetch(" # Literal source search
sctl grep <uuid> "pattern" -E # Regular expression
sctl install <url|file>
sctl edit <uuid> --replace OLD --with NEW
sctl enable <uuid>
sctl disable <uuid>
sctl delete <uuid>
sctl status
grep-ը լռելյայն բառացի է. -E-ն միացնում է կանոնավոր արտահայտությունները, -i-ն անտեսում է մեծատառ/փոքրատառ տարբերությունը, -C N-ը ավելացնում է կոնտեքստ, իսկ -m N-ը սահմանափակում է համընկնումները: Առանց համընկնման հաջող է և դուրս գալիս 0 կոդով:
edit-ը բովանդակությամբ խարսխված է, երբեք տողի համարի վրա հիմնված չէ: Յուրաքանչյուր oldText լռելյայն պետք է հայտնվի ճշգրիտ մեկ անգամ. --replace-all-ը փոխարինում է յուրաքանչյուր համընկնումը: Կարող եք նաև փոխանցել {oldText,newText,replaceAll?} զանգված -f <file>-ով: Ընդլայնմանը ուղարկվում են միայն խմբագրումները. կարիք չկա նախ կարդալ կամ վերբեռնել ամբողջ աղբյուրը:
Գրառումները և աղբյուրի բացահայտումը սպասում են զննարկչի որոշմանը: CLI ելքի կոդերը՝
| Ելքի կոդ | Իմաստ |
|---|---|
0 | Հաստատված և հաջողված, կամ ընթերցման հրամանը նորմալ ավարտվեց |
1 | Օգտագործողը մերժեց հարցումը |
2 | Հարցումը ժամկետանց է, չեղարկվել է Ctrl-C-ով, կամ ընդլայնումն անջատվել է |
3 | Այլ սխալներ, ինչպիսիք են փաստարկները, կապը կամ բացակայող սկրիպտը |
Գործարկեք sctl <command> --help յուրաքանչյուր տարբերակի համար:
5. Միացնել AI հաճախորդ (MCP)
Նախ համոզվեք, որ sctl serve-ը գործարկվում է, և status-ը հաղորդում է միացված ընդլայնում: Այնուհետև կարգավորեք MCP հաճախորդը՝ գործարկելու առանձին sctl mcp պրոցես: GUI հաճախորդներում օգտագործեք բացարձակ երկուական և տվյալների ուղիները՝
{
"mcpServers": {
"scriptcat": {
"command": "/absolute/path/to/sctl",
"env": {
"SCTL_DATA_DIR": "/absolute/path/to/sctl-data"
},
"args": [
"mcp",
"--name",
"my-ai-client"
]
}
}
}
Շատ GUI հավելվածներ չեն ընդլայնում ~, $HOME կամ շելլի արտահայտությունները: --name-ը աուդիտի պիտակ է, ոչ թե վավերացված ինքնություն կամ լիազորման սահման: MCP stdout-ը վերապահված է պրոտոկոլի կադրերի համար; մի փաթաթեք sctl-ը սկրիպտով, որը stdout-ում բաններ է տպում:
Ընթացիկ գործիքները՝
| Գործիք | Նպատակ | Հաստատման քաղաքականություն |
|---|---|---|
scripts_list | Սկրիպտների ամփոփումների ցուցակագրում | Ոչ մեկը |
scripts_metadata_get | Մեկ սկրիպտի մետատվյալների ընթերցում | Ոչ մեկը |
scripts_source_get | Աղբյուրի ընթերցում uuid-ով և կամընտիր տողերի պատուհանով | Աղբյուրի ընթերցման քաղաքականություն |
scripts_source_grep | Աղբյուրի որոնում և համընկնող տողերի վերադարձ | Աղբյուրի ընթերցման քաղաքականություն |
scripts_install_request | Սկրիպտի տեղադրման հարցում | Գրառման քաղաքականություն |
scripts_edit_request | Բովանդակությամբ խարսխված խմբագրման հարցում | Գրառման քաղաքականություն |
scripts_toggle_request | Միացնելու կամ անջատելու հարցում | Գրառման քաղաքականություն |
scripts_delete_request | Ջնջման հարցում | Գրառման քաղաքականություն |
6. Աուդիտ և չեղարկում
- «Դիտել աուդիտի լոգը» Արտաքին հասանելիության քարտում բացում է լոգի էջը՝ զտված այս աղբյուրով:
sctl status-ը ցույց է տալիս դեմոնի տարբերակը, ընդլայնման կապվածությունը և վերջին անվտանգության իրադարձությունները.-o json-ը վերադարձնում է ամբողջական իրադարձությունները:- «Դադարեցնել Արտաքի ն հասանելիությունը» անջատում է կապը, ջնջում է ընդլայնման կողմի զուգակցման վիճակը և մաքրում է նստաշրջանի թույլտվությունները: Դրանից հետո պահանջվում է վերագրանցում:
- Միայն մեկ AI հաճախորդ անջատելու համար հեռացրեք sctl-ը այդ հաճախորդի MCP կոնֆիգուրացիայից. դա չի չեղարկում այլ CLI կամ հաճախորդի մուտքը:
7. Խնդիրների լուծում
Դեմոնը անհասանելի է
Նախ գործարկեք sctl serve: Հարցում կատարող հրամանները երբեք ավտոմատ չեն գործարկում դեմոնը:
Կառավարման կապուղու վավերացումը ձախողվում է
Հաստատեք, որ serve-ը, CLI հրամանները և MCP պրոցեսը վերաբերում են նույն բացարձակ տվյալների թղթապանակին: Ստուգեք և՛ SCTL_DATA_DIR-ը, և՛ ցանկացած բացահայտ --data-dir-ը, այնուհետև վերագործարկեք MCP հաճախորդը:
Կարգավիճակը ասում է «Կապը ձախողվեց»
Հաստատեք, որ դեմոնը գործարկվում է, ընդլայնման հասցեն համապատասխանում է դրան, և տեղական անվտանգության ծրագրաշարը չի արգելափակում 127.0.0.1:8643-ը:
Հրամանը չի վերադառնում
Ստու գեք զննարկչում աղբյուրի բացահայտման կամ գրառման հաստատման էջը: Սեղմեք Ctrl-C՝ հարցումը չեղարկելու համար:
Գտեք լոգերը
Լոգերը գտնվում են <data-dir>/logs/ թղթապանակում: Եթե ոչ --data-dir, ոչ էլ SCTL_DATA_DIR սահմանված չէ, լռելյայններն են՝
| Հարթակ | Լոգի թղթապանակ |
|---|---|
| macOS | ~/Library/Application Support/sctl/logs/ |
| Windows | %LOCALAPPDATA%\\sctl\\logs\\ |
| Linux | ~/.config/sctl/logs/ |