Skip to main content

Արտաքին հասանելիություն (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-addressconnect-ին, status-ին, այլ CLI հրամաններին և sctl mcp-ին: ScriptCat-ի sctl հասցե կարգավորումում մուտքագրեք հասցե, որը ընդլայնումը կարող է իրականում հասնել, օրինակ՝ ws://192.168.1.10:8643; մի մուտքագրեք 0.0.0.0:

2.3 Միացնել և զուգակցել ScriptCat-ում

  1. Բացեք Կարգավորումներ → Գործիքներ → Արտաքին հասանելիություն ScriptCat-ում և միացրեք անջատիչը:

  2. Հաստատեք, որ sctl հասցեն համապատասխանում է դեմոնին; սովորաբար պահեք լռելյայն ws://127.0.0.1:8643-ը:

  3. Պահեք sctl serve-ը գործող և մեկ այլ տերմինալում գործարկեք՝

    sctl connect
  4. Մուտքագրեք 8 նիշանոց տերմինալի կոդը «Գրանցել sctl» երկխոսության մեջ:

  5. Ստուգեք կապը՝

    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/