token-station
Local routing control plane for AI agents and LLM providers, with a loopback-only gateway, smart and quota-aware routing, and desktop + CLI apps.
파일 탐색기
- action.yml
- ci.yml
- desktop-release.yml
- full-ci.yml
- linux-desktop.yml
- platform.yml
- preview-platform-artifacts.yml
- release.yml
- CODEOWNERS
- anthropic_native.rs
- attempt_machine.rs
- provider_call.rs
- responses_native.rs
- web_search.rs
- accounting.rs
- admin.rs
- admission.rs
- backup.rs
- bodylog.rs
- budget.rs
- cancel.rs
- config.rs
- filelog.rs
- gateway.rs
- lib.rs
- main.rs
- manage.rs
- plugins.rs
- pricing.rs
- private_fs.rs
- quota_fetch.rs
- quota_headers.rs
- quota_lease.rs
- quota_ledger.rs
- quota_tracker.rs
- request_context.rs
- secrets.rs
- server.rs
- south_component.rs
- south_provider_call.rs
- south_provider_call_tests.rs
- sse.rs
- stats.rs
- store.rs
- upgrade.rs
- virtual_key.rs
- lib.rs
- Cargo.lock
- Cargo.toml
- manifest.json
- anthropic_roundtrip_ledger.rs
- body_capture_config.rs
- official_package_set.rs
- packaged_provider_conformance.rs
- pricing_ttl.rs
- proxy.rs
- south_component.rs
- upgrade.rs
- build.rs
- Cargo.toml
- claude-code-deepseek-config.json
- claude-code-glm-config.json
- claude-code-kimi-config.json
- claude-code-kimi-moonshot-v1-config.json
- claude-code-minimax-config.json
- claude-code-minimax-m2.5-config.json
- claude-code-qwen-config.json
- codex-deepseek-config.json
- example-config.json
- glm-5.2-local-config.json
- openclaw-deepseek-config.json
- opencode-deepseek-config.json
- extensions.json
- 01-runtime-dark-icon.svg
- package-verification.json
- reference-diff.png
- reference-overlay.png
- reference-side-by-side.png
- style-report.json
- prepare-dark-icon.mjs
- prepared-dark.png
- spec.json
- token-station-dock-dark.origin.png
- token-station-dock-dark.png
- token-station-dock-dark.preview.png
- token-station-dock-dark.preview.svg
- token-station-dock-dark.svg
- 01-background.svg
- 02-yard-tracks.svg
- 03-selected-route.svg
- 04-station-gantry.svg
- 05-entry-signal.svg
- package-verification.json
- style-report.json
- visual-review.json
- preview-32.png
- preview-64.png
- spec.json
- 01-gantry-yard.png
- 01-gantry-yard.preview.png
- 01-gantry-yard.preview.svg
- 01-gantry-yard.svg
- 01-background.svg
- 02-route-bed.svg
- 03-active-route.svg
- 04-entry-cap.svg
- package-verification.json
- style-report.json
- visual-review.json
- preview-32.png
- preview-64.png
- spec.json
- 02-switch-fan.png
- 02-switch-fan.preview.png
- 02-switch-fan.preview.svg
- 02-switch-fan.svg
- 01-background.svg
- 02-station-block.svg
- 03-platform-lines.svg
- 04-central-concourse.svg
- 05-signal-pairs.svg
- package-verification.json
- style-report.json
- visual-review.json
- preview-32.png
- preview-64.png
- spec.json
- 03-platform-matrix.png
- 03-platform-matrix.preview.png
- 03-platform-matrix.preview.svg
- 03-platform-matrix.svg
- 01-background.svg
- 02-secondary-route.svg
- 03-active-route.svg
- 04-station-gantry.svg
- 05-entry-signal.svg
- package-verification.json
- style-report.json
- visual-review.json
- imagegen-station-v1.png
- preview-32.png
- preview-64.png
- spec.json
- 04-route-station.png
- 04-route-station.preview.png
- 04-route-station.preview.svg
- 04-route-station.svg
- first-run-onboarding-prototype.html
- hermes.png
- workbuddy.png
- icon.png
- react.svg
- accordion.tsx
- alert-dialog.tsx
- badge.tsx
- button.tsx
- card.tsx
- dialog.tsx
- dropdown-menu.tsx
- dropdown-motion.css
- dropdown-motion.tsx
- field.tsx
- input-group.tsx
- input.tsx
- label.tsx
- progress.tsx
- scroll-area.tsx
- select.test.tsx
- select.tsx
- separator.tsx
- sheet.tsx
- switch.tsx
- table.tsx
- tabs.tsx
- toggle-group.tsx
- toggle.tsx
- tooltip.tsx
- AgentCapabilityGuide.css
- AgentCapabilityGuide.test.tsx
- AgentCapabilityGuide.tsx
- AgentModelGuide.css
- AgentModelGuide.test.tsx
- AgentModelGuide.tsx
- AgentVisibilityPreferences.test.ts
- AgentVisibilityPreferences.ts
- AppShell.agent-routing-nav.test.tsx
- AppShell.tsx
- CompactCombobox.test.tsx
- CompactCombobox.tsx
- DirectRoutePanel.test.tsx
- DirectRoutePanel.tsx
- DraftNavigation.test.tsx
- DraftNavigation.tsx
- EnterpriseConnectionPanel.test.tsx
- EnterpriseConnectionPanel.tsx
- ErrorToast.test.tsx
- ErrorToast.tsx
- FirstRunGuide.test.tsx
- FirstRunGuide.tsx
- HarnessModelMapping.test.tsx
- HarnessModelMapping.tsx
- InstallationPicker.test.tsx
- InstallationPicker.tsx
- LanguageProvider.test.tsx
- LanguageProvider.tsx
- LaunchScreen.tsx
- ModelPicker.tsx
- ModelTestConsole.test.tsx
- ModelTestConsole.tsx
- PageBackButton.tsx
- PricingEditor.api.test.ts
- PricingEditor.test.tsx
- PricingEditor.tsx
- ProviderList.tsx
- ProviderModelManager.tsx
- ProviderVisionLifecycle.test.tsx
- QuotaPriorityPanel.test.tsx
- QuotaPriorityPanel.tsx
- RecentReceipts.test.tsx
- RecentReceipts.tsx
- RecoveryShell.test.tsx
- RecoveryShell.tsx
- RevisionChain.tsx
- RoutingModeSelector.test.tsx
- RoutingModeSelector.tsx
- ThemeProvider.test.tsx
- ThemeProvider.tsx
- TierKeywords.test.tsx
- TierKeywords.tsx
- TierRouteEditor.test.tsx
- TierRouteEditor.tsx
- TokenStationMark.test.tsx
- TokenStationMark.tsx
- UsageRequestLog.test.tsx
- UsageRequestLog.tsx
- UsageTrendBuckets.test.tsx
- UsageTrendChart.css
- UsageTrendChart.test.tsx
- UsageTrendChart.tsx
- use-page-transition.test.tsx
- use-page-transition.ts
- useVisionVerificationTasks.ts
- utils.ts
- About.tsx
- AboutUpdater.test.tsx
- AddProviderPage.test.tsx
- AddProviderPage.tsx
- AgentRoutePage.test.tsx
- AgentRoutePage.tsx
- AgentsPage.test.tsx
- AgentsPage.tsx
- BudgetPricingPage.test.tsx
- BudgetPricingPage.tsx
- FreeProviderConfigPage.test.tsx
- FreeProviderConfigPage.tsx
- HomePage.tsx
- OverviewPage.test.tsx
- OverviewPage.tsx
- Plugins.tsx
- ProvidersPage.test.tsx
- ProvidersPage.tsx
- QuotaUsagePage.test.tsx
- QuotaUsagePage.tsx
- RequestLogsPage.tsx
- RouterTable.tsx
- Settings.tsx
- SettingsHub.test.tsx
- SettingsHub.tsx
- Stats.test.tsx
- Stats.tsx
- UsageWorkspace.tsx
- setup.ts
- api.test.ts
- api.ts
- App.css
- App.test.tsx
- App.tsx
- bootstrap.test.tsx
- bootstrap.tsx
- brandIcons.test.tsx
- brandIcons.tsx
- catalog.test.ts
- catalog.ts
- diagnostics.test.ts
- diagnostics.ts
- errors.test.ts
- errors.ts
- i18n.ts
- legacy-ui.test.tsx
- main.tsx
- modelCatalog.test.ts
- modelCatalog.ts
- providerCopy.ts
- providerPresentation.ts
- security-config.test.ts
- statusMenuNavigation.test.ts
- statusMenuNavigation.ts
- theme-styles.test.ts
- usagePresentation.test.ts
- usagePresentation.ts
- vite-env.d.ts
- builtin-agents.json
- builtin-compatibility.json
- default.json
- 128x128.png
- [email protected]
- 32x32.png
- icon-dark.png
- icon-light.png
- icon.icns
- icon.ico
- icon.png
- Square107x107Logo.png
- Square142x142Logo.png
- Square150x150Logo.png
- Square284x284Logo.png
- Square30x30Logo.png
- Square310x310Logo.png
- Square44x44Logo.png
- Square71x71Logo.png
- Square89x89Logo.png
- StoreLogo.png
- tray-template.png
- tray-template.svg
- claude_code.rs
- claude_desktop.rs
- codex.rs
- deepseek_harness.rs
- gemini_cli.rs
- grok_build.rs
- hermes.rs
- kimi_code.rs
- mod.rs
- openclaw.rs
- opencode.rs
- workbuddy.rs
- commands.rs
- compatibility.rs
- config_codec.rs
- discovery.rs
- drift.rs
- mod.rs
- ownership.rs
- plan.rs
- platform.rs
- registry.rs
- safe_fs.rs
- snapshot.rs
- transaction.rs
- types.rs
- config_draft.rs
- config_state.rs
- cursor_tunnel.rs
- desktop_shell.rs
- desktop_update.rs
- desktop_update_commands.rs
- dock_icon.rs
- free_provider_catalog.rs
- lib.rs
- lib_tests.rs
- main.rs
- model_catalog.rs
- model_test.rs
- price_sync.rs
- pricing_catalog.rs
- pricing_commands.rs
- provider_commands.rs
- provider_discovery.rs
- provider_tombstones.rs
- recovery.rs
- recovery_commands.rs
- routing_commands.rs
- self_test.rs
- serve_lifecycle.rs
- serve_supervisor.rs
- stats_commands.rs
- views.rs
- vision_probe.rs
- forbidden-router-field.json
- settings.input.json
- settings.invalid.json
- settings.json.token-station.bak
- config.input.toml
- config.invalid.toml
- config.toml.token-station.bak
- config.connected.yaml
- config.input.yaml
- config.invalid.yaml
- openclaw.connected.json5
- openclaw.input.json5
- openclaw.invalid.json5
- opencode.input.json
- opencode.invalid.json
- opencode.json.token-station.bak
- settings.json
- config.toml
- config.yaml
- openclaw.json
- opencode.json
- oversize.sh
- status.sh
- timeout.sh
- platform-paths.json
- desktop_capabilities.rs
- desktop_update.rs
- install_local_desktop.rs
- yaml_scalar_regression.rs
- per-user-main.wxs
- .gitignore
- build.rs
- Cargo.lock
- Cargo.toml
- deny.toml
- Entitlements.plist
- tauri.conf.json
- tauri.windows.conf.json
- .gitignore
- components.json
- index.html
- package-lock.json
- package.json
- README.md
- tsconfig.json
- tsconfig.node.json
- vite.config.ts
- vitest.config.ts
- adapter.rs
- fixture.rs
- lib.rs
- report.rs
- suite.rs
- agent.error.rate-limit.expected.json
- agent.error.rate-limit.input.json
- agent.hint.step-header.expected.json
- agent.hint.step-header.input.json
- agent.normalize.chat.expected.json
- agent.normalize.chat.input.json
- agent.render.tool-call.expected.json
- agent.render.tool-call.input.json
- agent.stream.delta.expected.json
- agent.stream.delta.input.json
- agent_suite.rs
- official_plugins.rs
- Cargo.toml
- lib.rs
- Cargo.toml
- lib.rs
- manifest.rs
- manifest_json.rs
- adapter.wit
- Cargo.toml
- agent.rs
- bindings.rs
- instance.rs
- lib.rs
- loader.rs
- runtime.rs
- official_plugins.rs
- Cargo.toml
- lib.rs
- Cargo.toml
- capability.rs
- chat.rs
- envelope.rs
- error.rs
- hint.rs
- http.rs
- lib.rs
- provider.rs
- stream.rs
- usage.rs
- error.rate-limit.json
- inbound.chat.request.json
- inbound.envelope.json
- model.capability.json
- outbound.chat.response.tool-call.json
- outbound.provider.request.json
- outbound.provider.response.json
- outbound.stream.tool-call.json
- provider.config.json
- canonical_ir.rs
- Cargo.toml
- lib.rs
- main.rs
- Cargo.toml
- config.rs
- decision.rs
- features.rs
- health.rs
- lexicon.rs
- lib.rs
- quota.rs
- route.rs
- source.rs
- test_support.rs
- routing.rs
- Cargo.toml
- claude-code.svg
- claude-desktop.svg
- codex.svg
- cursor.svg
- deepseek-harness.svg
- gemini-cli.svg
- grok-build.svg
- kimi-code.svg
- LICENSE.lobehub-icons
- openclaw.svg
- opencode.svg
- token-station-architecture-en-mobile.svg
- token-station-architecture-en.svg
- token-station-architecture-zh-mobile.svg
- token-station-architecture-zh.svg
- azure-openai-v1-south-header-auth.md
- claude-code-deepseek.md
- claude-code-openai-compatible-providers.md
- codex-deepseek.md
- enterprise-managed-routing.md
- hermes-agent.md
- openclaw.md
- opencode-deepseek.md
- v1.2.0.md
- v1.2.1.md
- v1.2.2.md
- v1.2.3.md
- v1.2.4.md
- v1.3.0.md
- v1.3.2.md
- v1.3.3.md
- v1.3.4.md
- v1.4.0.md
- v2.0.0.md
- v2.1.0.md
- v2.1.1.md
- v2.1.2.md
- rustsec-exceptions.json
- agent-capabilities.md
- README.md
- reference.md
- reference.zh-CN.md
- background.png
- background.svg
- configure-dmg-layout.applescript
- README.md
- agent.error.rate-limit.expected.json
- agent.error.rate-limit.input.json
- agent.hint.none.expected.json
- agent.hint.none.input.json
- agent.hint.step-header.expected.json
- agent.hint.step-header.input.json
- agent.normalize.messages.expected.json
- agent.normalize.messages.input.json
- agent.normalize.thinking.expected.json
- agent.normalize.thinking.input.json
- agent.render.tool-use.expected.json
- agent.render.tool-use.input.json
- agent.stream.text.expected.json
- agent.stream.text.input.json
- agent.stream.tool-use.expected.json
- agent.stream.tool-use.input.json
- lib.rs
- Cargo.lock
- Cargo.toml
- manifest.json
- README.md
- agent.error.rate-limit.expected.json
- agent.error.rate-limit.input.json
- agent.hint.none.expected.json
- agent.hint.none.input.json
- agent.normalize.generate-content.expected.json
- agent.normalize.generate-content.input.json
- agent.render.tool-call.expected.json
- agent.render.tool-call.input.json
- agent.stream.text.expected.json
- agent.stream.text.input.json
- lib.rs
- Cargo.lock
- Cargo.toml
- manifest.json
- agent.error.rate-limit.expected.json
- agent.error.rate-limit.input.json
- agent.hint.step-header.expected.json
- agent.hint.step-header.input.json
- agent.normalize.chat.expected.json
- agent.normalize.chat.input.json
- agent.render.tool-call.expected.json
- agent.render.tool-call.input.json
- agent.stream.delta.expected.json
- agent.stream.delta.input.json
- lib.rs
- Cargo.lock
- Cargo.toml
- manifest.json
- README.md
- agent.error.rate-limit.expected.json
- agent.error.rate-limit.input.json
- agent.hint.step.expected.json
- agent.hint.step.input.json
- agent.normalize.codex-tool-contract.expected.json
- agent.normalize.codex-tool-contract.input.json
- agent.normalize.codex.expected.json
- agent.normalize.codex.input.json
- agent.render.tool-call.expected.json
- agent.render.tool-call.input.json
- agent.stream.codex.expected.json
- agent.stream.codex.input.json
- lib.rs
- Cargo.lock
- Cargo.toml
- manifest.json
- README.md
- provider.capabilities.declared.expected.json
- provider.capabilities.declared.input.json
- provider.error.overloaded.expected.json
- provider.error.overloaded.input.json
- provider.error.rate-limit.expected.json
- provider.error.rate-limit.input.json
- provider.error.rejected-credential.expected.json
- provider.error.rejected-credential.input.json
- provider.request.a-turn-without-content-omits-the-field.expected.json
- provider.request.a-turn-without-content-omits-the-field.input.json
- provider.request.chat.expected.json
- provider.request.chat.input.json
- provider.request.max-tokens-defaults.expected.json
- provider.request.max-tokens-defaults.input.json
- provider.request.system-joins-and-skips-empty-text.expected.json
- provider.request.system-joins-and-skips-empty-text.input.json
- provider.request.thinking-replay-carries-the-signature.expected.json
- provider.request.thinking-replay-carries-the-signature.input.json
- provider.request.tool-choice-none-withholds-the-declarations.expected.json
- provider.request.tool-choice-none-withholds-the-declarations.input.json
- provider.request.tool-round-trip.expected.json
- provider.request.tool-round-trip.input.json
- provider.response.cache-buckets-and-stop-sequence.expected.json
- provider.response.cache-buckets-and-stop-sequence.input.json
- provider.response.text.expected.json
- provider.response.text.input.json
- provider.response.thinking-carries-the-signature.expected.json
- provider.response.thinking-carries-the-signature.input.json
- provider.response.tool-only-turn-has-no-content.expected.json
- provider.response.tool-only-turn-has-no-content.input.json
- provider.response.tool-use.expected.json
- provider.response.tool-use.input.json
- provider.response.unknown-stop-reason-survives.expected.json
- provider.response.unknown-stop-reason-survives.input.json
- provider.stream.an-unfinished-stream-gets-no-synthetic-terminal.expected.json
- provider.stream.an-unfinished-stream-gets-no-synthetic-terminal.input.json
- provider.stream.eof-terminates-without-a-usage-frame.expected.json
- provider.stream.eof-terminates-without-a-usage-frame.input.json
- provider.stream.text-and-terminal.expected.json
- provider.stream.text-and-terminal.input.json
- provider.stream.thinking-signature-survives.expected.json
- provider.stream.thinking-signature-survives.input.json
- provider.stream.tool-call.expected.json
- provider.stream.tool-call.input.json
- provider.stream.unknown-stop-reason-still-terminates.expected.json
- provider.stream.unknown-stop-reason-still-terminates.input.json
- lib.rs
- provider-adapter.wit
- Cargo.lock
- Cargo.toml
- manifest.json
- provider.capabilities.declared.expected.json
- provider.capabilities.declared.input.json
- provider.error.rate-limit.expected.json
- provider.error.rate-limit.input.json
- provider.error.rejected-credential.expected.json
- provider.error.rejected-credential.input.json
- provider.request.azure-header-auth.expected.json
- provider.request.azure-header-auth.input.json
- provider.request.chat.expected.json
- provider.request.chat.input.json
- provider.request.empty-content-shapes.expected.json
- provider.request.empty-content-shapes.input.json
- provider.request.reasoning-content-is-declared.expected.json
- provider.request.reasoning-content-is-declared.input.json
- provider.request.reasoning-content-is-withheld.expected.json
- provider.request.reasoning-content-is-withheld.input.json
- provider.request.redacted-thinking-is-dropped.expected.json
- provider.request.redacted-thinking-is-dropped.input.json
- provider.request.text-parts-array-is-preserved.expected.json
- provider.request.text-parts-array-is-preserved.input.json
- provider.response.bare-reasoning-field.expected.json
- provider.response.bare-reasoning-field.input.json
- provider.response.cached-usage.expected.json
- provider.response.cached-usage.input.json
- provider.response.reasoning.expected.json
- provider.response.reasoning.input.json
- provider.response.tool-call.expected.json
- provider.response.tool-call.input.json
- provider.stream.bare-reasoning-field.expected.json
- provider.stream.bare-reasoning-field.input.json
- provider.stream.duplicate-usage.expected.json
- provider.stream.duplicate-usage.input.json
- provider.stream.empty-choices-frame-is-ignored.expected.json
- provider.stream.empty-choices-frame-is-ignored.input.json
- provider.stream.empty-deltas-are-suppressed.expected.json
- provider.stream.empty-deltas-are-suppressed.input.json
- provider.stream.missing-terminal.expected.json
- provider.stream.missing-terminal.input.json
- provider.stream.no-usage.expected.json
- provider.stream.no-usage.input.json
- provider.stream.tool-call.expected.json
- provider.stream.tool-call.input.json
- provider.stream.unknown-finish.expected.json
- provider.stream.unknown-finish.input.json
- provider.stream.usage-terminal.expected.json
- provider.stream.usage-terminal.input.json
- lib.rs
- provider-adapter.wit
- Cargo.lock
- Cargo.toml
- manifest.json
- fixture-provenance.json
- packages.json
- audit-desktop-artifact.sh
- audit-macos-dmg.sh
- build-desktop.sh
- build-release.sh
- check-ci-msi-trigger-policy.mjs
- check-ci-scaffold-prefetch.mjs
- check-coverage-thresholds.mjs
- check-formal-release-notes.mjs
- check-integration-branch-policy.mjs
- check-macos-dmg-packaging.mjs
- check-preview-release-assets.mjs
- check-provider-fixtures.py
- check-release-assets.mjs
- check-release-inputs.mjs
- check-release-readiness.mjs
- check-rust-format.sh
- check-rustsec-exceptions.mjs
- check-windows-release-config.mjs
- cleanup-request-bodies.sh
- collect-formal-release-artifacts.sh
- com.ballastai.token-station.develop-watch.plist
- create-desktop-update-manifest.mjs
- create-release-checksums.mjs
- cursor-provider.sh
- dev-desktop.mjs
- import-macos-signing-identity.sh
- install-local-desktop.sh
- official-packages.py
- package-macos-dmg.sh
- prepare-desktop-test-plugins.sh
- prepare-formal-release.sh
- publish-formal-release.sh
- release-latest-formal.sh
- report-legacy-usage.py
- resolve-release-mode.mjs
- sign-formal-release.sh
- sync-readme-agent-icons.mjs
- test-router-core-redline.sh
- test-windows-msi.ps1
- verify-release.sh
- watch-develop.sh
- NON_FILE_TESTS.md
- README.md
- sample-large.txt
- sample-special.txt
- sample.csv
- sample.html
- sample.json
- sample.md
- sample.svg
- sample.ts
- sample.yaml
- agent-sensitive-boundary.mjs
- build-desktop-verbosity.sh
- desktop-release-dependencies.mjs
- desktop-updater-release.sh
- diagram-supersession.mjs
- formal-release-artifact-collection.sh
- formal-release-finalization.mjs
- formal-release-notes.mjs
- formal-release-signing.sh
- install-local-desktop.sh
- localized-macos-installation.mjs
- macos-signing-import-policy.mjs
- package-list-line-endings.sh
- preview-platform-artifacts.mjs
- preview-release-assets.mjs
- provider-fixture-staging.sh
- release-assets.mjs
- release-mode-policy.mjs
- release-readiness.mjs
- release-script-variable-order.mjs
- report-legacy-usage.sh
- source-release-mode.mjs
- south-dependency-policy.mjs
- unsigned-test-dmg.mjs
- windows-authenticode-audit.sh
- .gitattributes
- .gitignore
- AGENTS.md
- Cargo.lock
- Cargo.toml
- clippy.toml
- CONTEXT.md
- deny.toml
- LICENSE
- macos-troubleshooting.md
- NOTICE
- README.md
- README.zh-CN.md
- rust-toolchain.toml
- rustfmt.toml
# CDN으로 사용하기
jsDelivrjsDelivr는 공개 GitHub 리포지토리를 별도 설정 없이 CDN으로 즉시 서빙합니다. 버전과 파일을 고르면 웹페이지에 바로 붙일 수 있는 링크와 예시 코드가 만들어집니다.
링크
예시
// repository documentation
Was this content helpful?
(0 ratings)
