{"schemaVersion":"easy-terminal.support-guide.v3","lastUpdated":"2026-06-11","canonicalUrl":"https://easyterminal.dev/support/guide.json","language":["en","ja"],"product":{"name":"Easy Terminal","oneLineDefinition":"Deterministic non-AI terminal state layer for agents.","shortDescription":"AI-facing but not AI-powered. Rule-based. Reproducible. Built for agents.","longDescription":"Easy Terminal converts terminal output into deterministic structured state that AI agents can consume. The core remains non-AI and rule-based so the same input under the same rules yields the same output, and raw terminal logs are not stored by the service.","aiFacingButNotAiPowered":true,"deterministicNonAiTerminalStateLayerForAgents":true},"principles":["deterministic","non-AI core","rule-based","reproducible","built for agents","no LLM calls in core","no embeddings","no semantic search","no vector DB","same input + same rules => same output"],"positioning":{"deterministic":true,"nonAiCore":true,"ruleBased":true,"reproducible":true,"builtForAgents":true,"aiFacingButNotAiPowered":true},"targetUsers":["developers operating AI agents in terminal workflows","teams that require deterministic terminal-state interpretation","users needing safe handoff from terminal output to AI guidance"],"currentCapabilities":["public landing/analyzer UI","authenticated console","subscription/trial state display","API key issuance/reissue","protected Analyze API","local assist workflow that writes structured ledger files under .easy-terminal/","structured AnalysisRecord retention/export foundation with structured metadata only","Data & Privacy / sharing preference foundation with opt-in anonymous pattern sharing","billing portal access","legal pages","canonical support guide"],"currentLimitations":["no live AI support built into Easy Terminal","no support message backend","Pattern Search, PatternCandidate, SharedPatternIndex, PublicSafeProjection, Creation Intelligence, and Safety Intelligence remain future scope","Public Attribution remains disabled and requires separate explicit confirmation","the current public API remains Analyze API centered"],"publicUrls":{"home":"https://easyterminal.dev","support":"https://easyterminal.dev/support","supportGuide":"https://easyterminal.dev/support/guide","supportGuideJson":"https://easyterminal.dev/support/guide.json","supportAi":"https://easyterminal.dev/support/ai","supportAiJson":"https://easyterminal.dev/support/ai.json","legacyDocsAnalyzeApi":"https://easyterminal.dev/docs/analyze-api","legacyDocsAgentIntegration":"https://easyterminal.dev/docs/agent-integration","aiManifest":"https://easyterminal.dev/ai.json","terms":"https://easyterminal.dev/terms","privacy":"https://easyterminal.dev/privacy","commercialTransactions":"https://easyterminal.dev/commercial-transactions","console":"https://easyterminal.dev/console"},"webApp":{"summary":"Public web app hosts landing, docs, legal, and support entry points.","analyzerUiAvailable":true},"console":{"summary":"Authenticated console for API key lifecycle, subscription visibility, and billing access.","userActions":["view trial/subscription state","issue/reissue API key","open Stripe Billing Portal"]},"analyzeApi":{"endpoint":"https://easyterminal.dev/api/v1/analyze","method":"POST","auth":"Authorization: Bearer <raw_api_key>","requiredFields":["terminalOutput"],"optionalFields":["command","stdout","stderr","exitCode","locale"],"topLevelResponseKeys":["input","assumptions","analysis","agentState"],"topLevelResponseKeyPurpose":{"input":"Normalized terminal input derived from request payload.","assumptions":"Explicit interpretation assumptions made by deterministic rules.","analysis":"Rule-based findings and likely next actions.","agentState":"Compact state for agent handoff including first concrete action when available."},"commonUseCases":["classify build/test/deploy failures","extract actionable next repair step","standardize agent handoff from terminal logs","reduce unsafe guessing during troubleshooting"],"commonErrors":{"400":"invalid request body or missing required fields","401":"unauthorized; API key missing/invalid","403":"access denied for current account/subscription state","500":"internal server error; retry and escalate with safe excerpts if persistent"},"sensitiveUsageWarning":"Never paste raw API keys or Authorization headers into AI chat."},"latestJsonWorkflow":{"purpose":"Create deterministic, reviewable handoff state for users and their AI. In the local assist workflow, latest.json is one structured ledger file under .easy-terminal/.","steps":["Run the local assist workflow against user-managed terminal output.","Save the latest sanitized Analyze handoff snapshot to .easy-terminal/latest.json.","Keep raw terminal logs locally yourself if you need them; Easy Terminal does not store raw terminal output in local ledger files.","Ask your AI to read .easy-terminal/latest.json first.","For longer handoffs, also provide .easy-terminal/activity.jsonl, .easy-terminal/state-digest.json, and .easy-terminal/audit-pack.json when available."],"aiCanUseItFor":["grounding advice in actual analyzed state","proposing safer next commands","summarizing assumptions and risks"],"aiMustNotOverAssume":["do not treat output as oracle truth","do not invent missing environment details","do not assume command replacements without clear direct mapping"]},"localLedgerWorkflow":{"purpose":"Represent Analyze results and future agent handoff state as structured local files under .easy-terminal/.","directory":".easy-terminal/","files":[{"path":".easy-terminal/latest.json","role":"latest sanitized Analyze handoff snapshot"},{"path":".easy-terminal/activity.jsonl","role":"append-only local ActivityEvent stream"},{"path":".easy-terminal/state-digest.json","role":"current reduced structured state"},{"path":".easy-terminal/audit-pack.json","role":"export-friendly structured audit/handoff bundle"}],"rawStoragePolicy":["Raw terminal output is sent to Analyze as transient request input.","Easy Terminal does not store raw terminal output in local ledger files.","Users who need raw logs should save them locally in their own environment."],"agentInstructions":["read .easy-terminal/latest.json first","inspect activity.jsonl, state-digest.json, and audit-pack.json for longer handoffs when available","treat structured local ledger files as evidence, not an oracle"],"forbiddenInAiChats":["raw API keys","Authorization headers","secrets","passwords","access tokens","payment details","raw terminal logs"]},"apiKeySafety":{"rawApiKeyShownOnlyOnce":true,"rawApiKeyStoredByService":false,"keyPrefixShownLaterOnly":true,"rotateOrReissueIfLeaked":true,"rules":["never paste raw API key","never paste Authorization header"]},"billing":{"price":"USD 5 per month","trial":"90 days","provider":"Stripe","lifecycle":"Trial ends then billing begins unless canceled.","management":"Manage billing through Console and Stripe Billing Portal."},"cancellation":{"path":"Console -> Stripe Billing Portal","aiGuidanceBoundary":"AI should guide navigation but must not claim it can cancel directly.","userWarning":"Do not click final cancellation unless you intend to cancel."},"legal":{"terms":"https://easyterminal.dev/terms","privacy":"https://easyterminal.dev/privacy","commercialTransactions":"https://easyterminal.dev/commercial-transactions"},"support":{"primaryPath":"Give /support/guide.json to your own AI assistant first.","email":"info@nome-ai.com","supportHours":{"en":"10:00-17:00 Japan Time","ja":"10:00-17:00（日本時間）"},"whatToIncludeInSupportRequest":["approximate time","safe command summary","safe error excerpt","browser/API client environment","no secrets"],"noTelephoneNumberOnSupportPages":true},"sensitiveDataRules":["do not paste API keys","do not paste Authorization headers","do not paste passwords","do not paste secret keys","do not paste access tokens","do not paste payment details","do not paste full raw terminal logs containing secrets"],"troubleshooting":[{"issue":"lost API key","symptom":"API calls cannot authenticate and raw key is unavailable.","likelyCause":"Raw API keys are shown once and were not saved securely.","safeChecks":["open Console","confirm key prefix exists"],"recommendedNextSteps":["reissue API key in Console","update client config securely"],"whenToEscalate":"Escalate if Console cannot issue/reissue key."},{"issue":"401 Unauthorized","symptom":"Analyze API returns 401.","likelyCause":"Missing/invalid bearer key format or wrong key.","safeChecks":["confirm Authorization header format without sharing key","confirm active key in Console"],"recommendedNextSteps":["retry with correct bearer format","reissue key if needed"],"whenToEscalate":"Escalate after repeated 401 with confirmed header format."},{"issue":"403 Forbidden","symptom":"Analyze API returns 403.","likelyCause":"Access restrictions from account/subscription state.","safeChecks":["check Console subscription/trial state","check API access status"],"recommendedNextSteps":["resolve account state in Console/Billing Portal","retry request"],"whenToEscalate":"Escalate if account appears active but 403 persists."},{"issue":"invalid request body","symptom":"Analyze API returns 400 invalid request.","likelyCause":"Malformed JSON or unsupported field types.","safeChecks":["validate JSON structure","verify field types"],"recommendedNextSteps":["send minimal valid request","incrementally add optional fields"],"whenToEscalate":"Escalate if minimal valid payload still fails."},{"issue":"missing terminalOutput","symptom":"Analyze API returns 400 for missing required field.","likelyCause":"terminalOutput omitted or empty.","safeChecks":["confirm terminalOutput exists","confirm non-empty string"],"recommendedNextSteps":["include terminalOutput and retry"],"whenToEscalate":"Escalate if terminalOutput is present and error persists."},{"issue":"billing portal unavailable","symptom":"Billing portal does not open from Console.","likelyCause":"session creation failure or transient provider issue.","safeChecks":["retry from Console","check logged-in session"],"recommendedNextSteps":["retry later","capture safe timestamp and status for support"],"whenToEscalate":"Escalate if unavailable repeatedly."},{"issue":"subscription state unclear","symptom":"User cannot determine trialing/active/canceled state.","likelyCause":"UI misunderstanding or stale session view.","safeChecks":["refresh Console","check Billing Portal subscription status"],"recommendedNextSteps":["follow Console status","use Billing Portal as source for billing state"],"whenToEscalate":"Escalate when Console and Billing Portal appear inconsistent."},{"issue":"AI agent unsure what to do next","symptom":"AI guidance is vague or guessing.","likelyCause":"AI was not grounded in latest deterministic state.","safeChecks":["ensure AI read this JSON","ensure AI read .easy-terminal/latest.json first","for longer handoffs, ensure AI inspected structured local ledger files when available"],"recommendedNextSteps":["re-prompt with recommended prompt","provide structured local ledger files","provide safe error excerpt only when needed"],"whenToEscalate":"Escalate if issue remains unresolved after deterministic checks."}],"userAiInstructions":["read this JSON first","answer only from this guide and public docs","guide user to Console for account/billing/API key actions","help interpret .easy-terminal/latest.json","for longer handoffs, help interpret .easy-terminal/activity.jsonl, .easy-terminal/state-digest.json, and .easy-terminal/audit-pack.json when available","help draft safe support email if needed","remind user not to share secrets"],"userAiMustNot":["ask for API keys","ask for Authorization headers","ask for passwords/secrets/access tokens/payment details","ask for raw terminal logs in AI chat","claim it can cancel subscriptions directly","claim it can issue/reissue API keys","invent private behavior","treat Easy Terminal output as an oracle","suggest unsafe secret sharing"],"escalation":{"whenToEscalate":"After guide/docs/console checks fail to resolve the issue safely.","contact":"info@nome-ai.com","include":["approximate time","safe command summary","safe error excerpt","client environment"],"exclude":["API keys","Authorization headers","passwords","secret keys","access tokens","payment details"]},"futureDirection":{"topic":"Agent Pattern Network","status":"future scope","publicApiStatus":"Analyze API remains current public API","intent":"Build deterministic pattern-network layers on top of the implemented local structured ledger workflow, structured AnalysisRecord retention/export foundation, and Data & Privacy / sharing preference foundation."},"glossary":[{"term":"deterministic","definition":"Same input and same rules produce the same output."},{"term":"non-AI core","definition":"Core analysis does not depend on LLM or ML inference."},{"term":"agentState","definition":"Compact state optimized for AI handoff and next action selection."},{"term":"latest.json workflow","definition":"Use .easy-terminal/latest.json as the first structured Analyze handoff snapshot an AI should read."},{"term":"local ledger files","definition":"Structured files under .easy-terminal/: latest.json, activity.jsonl, state-digest.json, and audit-pack.json. They are not raw terminal logs."}],"recommendedPromptForUserAi":{"en":"You are helping me use Easy Terminal.\n\nFirst read:\nhttps://easyterminal.dev/support/guide.json\n\nThen answer using only this JSON guide and Easy Terminal public docs.\n\nImportant:\n- Do not ask me to paste raw terminal logs, raw stdout, raw stderr, raw command text, raw request bodies, Authorization headers, API keys, bearer tokens, passwords, payment details, or secret-like values.\n- If my issue involves billing or cancellation, guide me to the Easy Terminal Console and Stripe Billing Portal.\n- Help me interpret .easy-terminal/latest.json safely. For longer handoffs, also inspect .easy-terminal/activity.jsonl, .easy-terminal/state-digest.json, and .easy-terminal/audit-pack.json when available.\n- Treat structured local ledger files as evidence, not an oracle.\n- If unresolved, help me draft a safe support email to info@nome-ai.com without secrets.","ja":"あなたは Easy Terminal の利用を手伝うAIです。\n\nまず以下を読んでください:\nhttps://easyterminal.dev/support/guide.json\n\nそのうえで、このJSONガイドと公開ドキュメントだけを根拠に回答してください。\n\n重要:\n- raw terminal logs、raw stdout、raw stderr、raw command text、raw request bodies、Authorization header、API key、bearer token、password、payment details、secret-like 値を要求しないでください。\n- 請求や解約に関する問題は、Easy Terminal Console と Stripe Billing Portal への案内に留めてください。\n- .easy-terminal/latest.json を安全に解釈できるよう支援してください。長い引き継ぎでは、利用可能な場合に .easy-terminal/activity.jsonl、.easy-terminal/state-digest.json、.easy-terminal/audit-pack.json も確認してください。\n- 構造化されたローカル ledger ファイルは根拠として扱い、oracle（絶対的な真実）として扱わないでください。\n- 解決しない場合は、機密情報を含まない問い合わせメール文面を作成してください。"}}