tokenade 1.0.0__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.
- tokenade-1.0.0/PKG-INFO +831 -0
- tokenade-1.0.0/README.md +771 -0
- tokenade-1.0.0/pyproject.toml +112 -0
- tokenade-1.0.0/setup.cfg +4 -0
- tokenade-1.0.0/tokenade/__init__.py +84 -0
- tokenade-1.0.0/tokenade/__main__.py +5 -0
- tokenade-1.0.0/tokenade/cli/__init__.py +1937 -0
- tokenade-1.0.0/tokenade/cli/__main__.py +5 -0
- tokenade-1.0.0/tokenade/cli/advanced.py +490 -0
- tokenade-1.0.0/tokenade/cli/completions.py +73 -0
- tokenade-1.0.0/tokenade/cli/config.py +47 -0
- tokenade-1.0.0/tokenade/cli/handlers/__init__.py +51 -0
- tokenade-1.0.0/tokenade/cli/handlers/browser_ops.py +1373 -0
- tokenade-1.0.0/tokenade/cli/handlers/ci.py +361 -0
- tokenade-1.0.0/tokenade/cli/handlers/infrastructure.py +452 -0
- tokenade-1.0.0/tokenade/cli/handlers/misc.py +222 -0
- tokenade-1.0.0/tokenade/cli/handlers/session_ops.py +1263 -0
- tokenade-1.0.0/tokenade/cli/management.py +82 -0
- tokenade-1.0.0/tokenade/cli/output.py +176 -0
- tokenade-1.0.0/tokenade/cli/proxy.py +279 -0
- tokenade-1.0.0/tokenade/cli/security.py +167 -0
- tokenade-1.0.0/tokenade/cli/session.py +885 -0
- tokenade-1.0.0/tokenade/core/__init__.py +0 -0
- tokenade-1.0.0/tokenade/core/antidetection/__init__.py +4 -0
- tokenade-1.0.0/tokenade/core/antidetection/behavioral.py +140 -0
- tokenade-1.0.0/tokenade/core/antidetection/cdp_cleaner.py +60 -0
- tokenade-1.0.0/tokenade/core/api/__init__.py +3 -0
- tokenade-1.0.0/tokenade/core/api/server.py +445 -0
- tokenade-1.0.0/tokenade/core/batch/__init__.py +23 -0
- tokenade-1.0.0/tokenade/core/batch/operations.py +398 -0
- tokenade-1.0.0/tokenade/core/browser/__init__.py +84 -0
- tokenade-1.0.0/tokenade/core/browser/battle.py +865 -0
- tokenade-1.0.0/tokenade/core/browser/captcha.py +244 -0
- tokenade-1.0.0/tokenade/core/browser/cdp_connection.py +1095 -0
- tokenade-1.0.0/tokenade/core/browser/cloak.py +24 -0
- tokenade-1.0.0/tokenade/core/browser/cloudflare.py +294 -0
- tokenade-1.0.0/tokenade/core/browser/dashboard.py +195 -0
- tokenade-1.0.0/tokenade/core/browser/dependencies.py +271 -0
- tokenade-1.0.0/tokenade/core/browser/fingerprint.py +262 -0
- tokenade-1.0.0/tokenade/core/browser/manager.py +317 -0
- tokenade-1.0.0/tokenade/core/browser/patcher.py +322 -0
- tokenade-1.0.0/tokenade/core/browser/profile_cloner.py +344 -0
- tokenade-1.0.0/tokenade/core/browser/profiles.py +221 -0
- tokenade-1.0.0/tokenade/core/browser/session_state.py +254 -0
- tokenade-1.0.0/tokenade/core/browser/stealth/__init__.py +68 -0
- tokenade-1.0.0/tokenade/core/browser/stealth/backend.py +101 -0
- tokenade-1.0.0/tokenade/core/browser/stealth/cloak.py +258 -0
- tokenade-1.0.0/tokenade/core/browser/stealth/launcher.py +593 -0
- tokenade-1.0.0/tokenade/core/browser/stealth/manager.py +671 -0
- tokenade-1.0.0/tokenade/core/browser/stealth.py +24 -0
- tokenade-1.0.0/tokenade/core/browser/stealth_test.py +324 -0
- tokenade-1.0.0/tokenade/core/browser/storage_extractor.py +231 -0
- tokenade-1.0.0/tokenade/core/browser/synchronizer.py +200 -0
- tokenade-1.0.0/tokenade/core/browser/tls_fingerprint.py +179 -0
- tokenade-1.0.0/tokenade/core/browser/undetectable.py +16 -0
- tokenade-1.0.0/tokenade/core/browser/xvfb.py +222 -0
- tokenade-1.0.0/tokenade/core/cicd/__init__.py +29 -0
- tokenade-1.0.0/tokenade/core/cicd/runner.py +548 -0
- tokenade-1.0.0/tokenade/core/cicd/workflow_generator.py +432 -0
- tokenade-1.0.0/tokenade/core/config.py +103 -0
- tokenade-1.0.0/tokenade/core/crypto/__init__.py +19 -0
- tokenade-1.0.0/tokenade/core/crypto/at_rest.py +178 -0
- tokenade-1.0.0/tokenade/core/crypto/cookie_crypto.py +805 -0
- tokenade-1.0.0/tokenade/core/crypto/encryptor.py +301 -0
- tokenade-1.0.0/tokenade/core/daemon/__init__.py +4 -0
- tokenade-1.0.0/tokenade/core/daemon/session_daemon.py +675 -0
- tokenade-1.0.0/tokenade/core/errors.py +77 -0
- tokenade-1.0.0/tokenade/core/fingerprint/__init__.py +0 -0
- tokenade-1.0.0/tokenade/core/fingerprint/collectors/__init__.py +30 -0
- tokenade-1.0.0/tokenade/core/fingerprint/collectors/audio.py +124 -0
- tokenade-1.0.0/tokenade/core/fingerprint/collectors/base.py +66 -0
- tokenade-1.0.0/tokenade/core/fingerprint/collectors/battery.py +59 -0
- tokenade-1.0.0/tokenade/core/fingerprint/collectors/canvas.py +81 -0
- tokenade-1.0.0/tokenade/core/fingerprint/collectors/fonts.py +52 -0
- tokenade-1.0.0/tokenade/core/fingerprint/collectors/navigator.py +99 -0
- tokenade-1.0.0/tokenade/core/fingerprint/collectors/plugins.py +92 -0
- tokenade-1.0.0/tokenade/core/fingerprint/collectors/screen.py +81 -0
- tokenade-1.0.0/tokenade/core/fingerprint/collectors/webgl.py +104 -0
- tokenade-1.0.0/tokenade/core/fingerprint/collectors/webrtc.py +91 -0
- tokenade-1.0.0/tokenade/core/fingerprint/injector.py +94 -0
- tokenade-1.0.0/tokenade/core/fingerprint/manager.py +278 -0
- tokenade-1.0.0/tokenade/core/fingerprint/stealth.py +357 -0
- tokenade-1.0.0/tokenade/core/forensics/__init__.py +15 -0
- tokenade-1.0.0/tokenade/core/forensics/autopsy.py +464 -0
- tokenade-1.0.0/tokenade/core/importer/__init__.py +23 -0
- tokenade-1.0.0/tokenade/core/importer/adb_extractor.py +259 -0
- tokenade-1.0.0/tokenade/core/importer/advanced_validator.py +665 -0
- tokenade-1.0.0/tokenade/core/importer/browser_discovery.py +313 -0
- tokenade-1.0.0/tokenade/core/importer/chromium_forks.py +174 -0
- tokenade-1.0.0/tokenade/core/importer/competitor_import.py +324 -0
- tokenade-1.0.0/tokenade/core/importer/cookie_extractor.py +612 -0
- tokenade-1.0.0/tokenade/core/importer/db_utils.py +66 -0
- tokenade-1.0.0/tokenade/core/importer/format_exporter.py +210 -0
- tokenade-1.0.0/tokenade/core/importer/format_importer.py +277 -0
- tokenade-1.0.0/tokenade/core/importer/local_storage_extractor.py +271 -0
- tokenade-1.0.0/tokenade/core/importer/mobile_extractor.py +263 -0
- tokenade-1.0.0/tokenade/core/importer/mobile_import.py +556 -0
- tokenade-1.0.0/tokenade/core/importer/plugin_export.py +321 -0
- tokenade-1.0.0/tokenade/core/importer/safari_extractor.py +376 -0
- tokenade-1.0.0/tokenade/core/importer/session_comparator.py +126 -0
- tokenade-1.0.0/tokenade/core/importer/session_loader.py +494 -0
- tokenade-1.0.0/tokenade/core/importer/session_manager.py +295 -0
- tokenade-1.0.0/tokenade/core/importer/session_packager.py +492 -0
- tokenade-1.0.0/tokenade/core/importer/session_refresher.py +467 -0
- tokenade-1.0.0/tokenade/core/importer/session_rotation.py +147 -0
- tokenade-1.0.0/tokenade/core/importer/session_rotator.py +279 -0
- tokenade-1.0.0/tokenade/core/importer/session_sharer.py +713 -0
- tokenade-1.0.0/tokenade/core/importer/session_sync.py +298 -0
- tokenade-1.0.0/tokenade/core/importer/session_vault.py +282 -0
- tokenade-1.0.0/tokenade/core/importer/site_configs.py +314 -0
- tokenade-1.0.0/tokenade/core/importer/tor_extractor.py +138 -0
- tokenade-1.0.0/tokenade/core/importer/validator.py +497 -0
- tokenade-1.0.0/tokenade/core/injector/__init__.py +15 -0
- tokenade-1.0.0/tokenade/core/injector/profile_manager.py +386 -0
- tokenade-1.0.0/tokenade/core/integration/__init__.py +32 -0
- tokenade-1.0.0/tokenade/core/integration/container_orchestrator.py +512 -0
- tokenade-1.0.0/tokenade/core/integration/docker_manager.py +349 -0
- tokenade-1.0.0/tokenade/core/integration/fleet.py +464 -0
- tokenade-1.0.0/tokenade/core/integration/kubernetes.py +393 -0
- tokenade-1.0.0/tokenade/core/integration/plugin_browser.py +251 -0
- tokenade-1.0.0/tokenade/core/integration/plugin_loader.py +395 -0
- tokenade-1.0.0/tokenade/core/integration/plugin_registry.py +620 -0
- tokenade-1.0.0/tokenade/core/integration/plugin_search.py +186 -0
- tokenade-1.0.0/tokenade/core/integration/plugin_testing.py +422 -0
- tokenade-1.0.0/tokenade/core/integration/plugin_verifier.py +193 -0
- tokenade-1.0.0/tokenade/core/integration/rating_sync.py +286 -0
- tokenade-1.0.0/tokenade/core/integration/webhooks.py +219 -0
- tokenade-1.0.0/tokenade/core/logging/__init__.py +6 -0
- tokenade-1.0.0/tokenade/core/logging/structured.py +182 -0
- tokenade-1.0.0/tokenade/core/monitoring/__init__.py +0 -0
- tokenade-1.0.0/tokenade/core/monitoring/analytics.py +194 -0
- tokenade-1.0.0/tokenade/core/monitoring/session_monitor.py +479 -0
- tokenade-1.0.0/tokenade/core/proxy/__init__.py +42 -0
- tokenade-1.0.0/tokenade/core/proxy/cdp_api.py +97 -0
- tokenade-1.0.0/tokenade/core/proxy/cdp_gui.py +349 -0
- tokenade-1.0.0/tokenade/core/proxy/cdp_injection.py +376 -0
- tokenade-1.0.0/tokenade/core/proxy/cdp_proxy.py +808 -0
- tokenade-1.0.0/tokenade/core/proxy/cdp_routing.py +419 -0
- tokenade-1.0.0/tokenade/core/proxy/cdp_stealth.py +229 -0
- tokenade-1.0.0/tokenade/core/proxy/extension_bridge.py +132 -0
- tokenade-1.0.0/tokenade/core/proxy/forward_proxy.py +317 -0
- tokenade-1.0.0/tokenade/core/proxy/manager.py +275 -0
- tokenade-1.0.0/tokenade/core/proxy/multi_site_proxy.py +255 -0
- tokenade-1.0.0/tokenade/core/proxy/residential.py +305 -0
- tokenade-1.0.0/tokenade/core/proxy/rotation.py +365 -0
- tokenade-1.0.0/tokenade/core/proxy/server.py +422 -0
- tokenade-1.0.0/tokenade/core/proxy/server_gui.py +214 -0
- tokenade-1.0.0/tokenade/core/proxy/server_routing.py +128 -0
- tokenade-1.0.0/tokenade/core/proxy/server_utils.py +253 -0
- tokenade-1.0.0/tokenade/core/refresh/__init__.py +67 -0
- tokenade-1.0.0/tokenade/core/refresh/batch_refresh.py +319 -0
- tokenade-1.0.0/tokenade/core/refresh/encrypted_refresh.py +342 -0
- tokenade-1.0.0/tokenade/core/refresh/health_checker.py +355 -0
- tokenade-1.0.0/tokenade/core/refresh/health_reporter.py +379 -0
- tokenade-1.0.0/tokenade/core/refresh/health_scorer.py +292 -0
- tokenade-1.0.0/tokenade/core/refresh/oauth_refresh.py +611 -0
- tokenade-1.0.0/tokenade/core/refresh/session_validator.py +367 -0
- tokenade-1.0.0/tokenade/core/runtime/__init__.py +30 -0
- tokenade-1.0.0/tokenade/core/runtime/engine.py +783 -0
- tokenade-1.0.0/tokenade/core/runtime/tls_matcher.py +282 -0
- tokenade-1.0.0/tokenade/core/security/__init__.py +27 -0
- tokenade-1.0.0/tokenade/core/security/audit.py +577 -0
- tokenade-1.0.0/tokenade/core/security/credentials.py +417 -0
- tokenade-1.0.0/tokenade/core/storage/__init__.py +1 -0
- tokenade-1.0.0/tokenade/core/storage/session_versions.py +261 -0
- tokenade-1.0.0/tokenade/core/utils/__init__.py +0 -0
- tokenade-1.0.0/tokenade/core/utils/performance.py +446 -0
- tokenade-1.0.0/tokenade/handlers/__init__.py +42 -0
- tokenade-1.0.0/tokenade/handlers/base.py +288 -0
- tokenade-1.0.0/tokenade/handlers/generic_oauth.py +593 -0
- tokenade-1.0.0/tokenade/handlers/github.py +347 -0
- tokenade-1.0.0/tokenade/handlers/google.py +301 -0
- tokenade-1.0.0/tokenade/handlers/resolve.py +49 -0
- tokenade-1.0.0/tokenade/plugin/__init__.py +62 -0
- tokenade-1.0.0/tokenade/plugin/api.py +139 -0
- tokenade-1.0.0/tokenade/plugin/base.py +681 -0
- tokenade-1.0.0/tokenade/plugin/oauth2/__init__.py +4 -0
- tokenade-1.0.0/tokenade/plugin/oauth2/plugin.py +282 -0
- tokenade-1.0.0/tokenade/sdk/__init__.py +257 -0
- tokenade-1.0.0/tokenade/tests/__init__.py +0 -0
- tokenade-1.0.0/tokenade/tests/portability.py +308 -0
- tokenade-1.0.0/tokenade/tests/test_accounts.py +286 -0
- tokenade-1.0.0/tokenade/tests/test_advanced_validator.py +209 -0
- tokenade-1.0.0/tokenade/tests/test_advanced_validator_edge_cases.py +1115 -0
- tokenade-1.0.0/tokenade/tests/test_analytics.py +222 -0
- tokenade-1.0.0/tokenade/tests/test_antidetection.py +145 -0
- tokenade-1.0.0/tokenade/tests/test_api_monitor_endpoints.py +204 -0
- tokenade-1.0.0/tokenade/tests/test_api_monitoring.py +26 -0
- tokenade-1.0.0/tokenade/tests/test_api_sdk.py +262 -0
- tokenade-1.0.0/tokenade/tests/test_api_server_comprehensive.py +400 -0
- tokenade-1.0.0/tokenade/tests/test_api_server_coverage.py +232 -0
- tokenade-1.0.0/tokenade/tests/test_at_rest_encryption.py +210 -0
- tokenade-1.0.0/tokenade/tests/test_audit_coverage.py +560 -0
- tokenade-1.0.0/tokenade/tests/test_autopsy.py +375 -0
- tokenade-1.0.0/tokenade/tests/test_base_handler_coverage.py +365 -0
- tokenade-1.0.0/tokenade/tests/test_batch_operations.py +311 -0
- tokenade-1.0.0/tokenade/tests/test_batch_operations_coverage.py +415 -0
- tokenade-1.0.0/tokenade/tests/test_batch_refresh.py +175 -0
- tokenade-1.0.0/tokenade/tests/test_battle.py +274 -0
- tokenade-1.0.0/tokenade/tests/test_benchmarks.py +209 -0
- tokenade-1.0.0/tokenade/tests/test_binary_patcher.py +419 -0
- tokenade-1.0.0/tokenade/tests/test_browser.py +367 -0
- tokenade-1.0.0/tokenade/tests/test_browser_discovery.py +58 -0
- tokenade-1.0.0/tokenade/tests/test_browser_discovery_coverage.py +516 -0
- tokenade-1.0.0/tokenade/tests/test_browser_improvements.py +277 -0
- tokenade-1.0.0/tokenade/tests/test_browser_manager_coverage.py +764 -0
- tokenade-1.0.0/tokenade/tests/test_browser_support.py +728 -0
- tokenade-1.0.0/tokenade/tests/test_cdp_gui_coverage.py +573 -0
- tokenade-1.0.0/tokenade/tests/test_cdp_injection_coverage.py +1056 -0
- tokenade-1.0.0/tokenade/tests/test_cdp_injection_edge_cases.py +396 -0
- tokenade-1.0.0/tokenade/tests/test_cdp_proxy_coverage.py +534 -0
- tokenade-1.0.0/tokenade/tests/test_cdp_routing_coverage.py +1162 -0
- tokenade-1.0.0/tokenade/tests/test_cdp_stealth_urls.py +50 -0
- tokenade-1.0.0/tokenade/tests/test_chromium_forks_coverage.py +411 -0
- tokenade-1.0.0/tokenade/tests/test_ci_runner.py +500 -0
- tokenade-1.0.0/tokenade/tests/test_cicd.py +122 -0
- tokenade-1.0.0/tokenade/tests/test_cli.py +200 -0
- tokenade-1.0.0/tokenade/tests/test_cli_advanced.py +943 -0
- tokenade-1.0.0/tokenade/tests/test_cli_helpers.py +99 -0
- tokenade-1.0.0/tokenade/tests/test_cli_init_coverage.py +651 -0
- tokenade-1.0.0/tokenade/tests/test_cli_integration.py +205 -0
- tokenade-1.0.0/tokenade/tests/test_cli_management.py +231 -0
- tokenade-1.0.0/tokenade/tests/test_cli_management_coverage.py +419 -0
- tokenade-1.0.0/tokenade/tests/test_cli_monitor.py +201 -0
- tokenade-1.0.0/tokenade/tests/test_cli_output.py +219 -0
- tokenade-1.0.0/tokenade/tests/test_cli_proxy.py +1004 -0
- tokenade-1.0.0/tokenade/tests/test_cli_refactor.py +454 -0
- tokenade-1.0.0/tokenade/tests/test_cli_security_coverage.py +306 -0
- tokenade-1.0.0/tokenade/tests/test_cli_security_proxy.py +242 -0
- tokenade-1.0.0/tokenade/tests/test_cli_session.py +1168 -0
- tokenade-1.0.0/tokenade/tests/test_cloak.py +375 -0
- tokenade-1.0.0/tokenade/tests/test_cloudflare_akamai.py +384 -0
- tokenade-1.0.0/tokenade/tests/test_collectors.py +283 -0
- tokenade-1.0.0/tokenade/tests/test_comprehensive.py +311 -0
- tokenade-1.0.0/tokenade/tests/test_config_and_cdp_modules.py +610 -0
- tokenade-1.0.0/tokenade/tests/test_container_orchestration.py +488 -0
- tokenade-1.0.0/tokenade/tests/test_cookie_crypto.py +835 -0
- tokenade-1.0.0/tokenade/tests/test_cookie_extractor.py +1088 -0
- tokenade-1.0.0/tokenade/tests/test_credentials_keyring_errors.py +68 -0
- tokenade-1.0.0/tokenade/tests/test_crypto.py +188 -0
- tokenade-1.0.0/tokenade/tests/test_custom_errors.py +100 -0
- tokenade-1.0.0/tokenade/tests/test_daemon.py +430 -0
- tokenade-1.0.0/tokenade/tests/test_db_utils.py +93 -0
- tokenade-1.0.0/tokenade/tests/test_db_utils_coverage.py +218 -0
- tokenade-1.0.0/tokenade/tests/test_docker_manager.py +587 -0
- tokenade-1.0.0/tokenade/tests/test_e2e_headless.py +207 -0
- tokenade-1.0.0/tokenade/tests/test_encrypted_refresh.py +169 -0
- tokenade-1.0.0/tokenade/tests/test_encryptor.py +323 -0
- tokenade-1.0.0/tokenade/tests/test_encryptor_coverage.py +339 -0
- tokenade-1.0.0/tokenade/tests/test_encryptor_edge.py +66 -0
- tokenade-1.0.0/tokenade/tests/test_engine_coverage.py +748 -0
- tokenade-1.0.0/tokenade/tests/test_enterprise.py +819 -0
- tokenade-1.0.0/tokenade/tests/test_errors.py +49 -0
- tokenade-1.0.0/tokenade/tests/test_extension_bridge_coverage.py +215 -0
- tokenade-1.0.0/tokenade/tests/test_fingerprint.py +66 -0
- tokenade-1.0.0/tokenade/tests/test_fingerprint_collectors.py +397 -0
- tokenade-1.0.0/tokenade/tests/test_fingerprint_collectors_coverage.py +298 -0
- tokenade-1.0.0/tokenade/tests/test_fingerprint_consistency.py +202 -0
- tokenade-1.0.0/tokenade/tests/test_fingerprint_injector.py +308 -0
- tokenade-1.0.0/tokenade/tests/test_fingerprint_manager.py +580 -0
- tokenade-1.0.0/tokenade/tests/test_fleet.py +398 -0
- tokenade-1.0.0/tokenade/tests/test_format_export.py +414 -0
- tokenade-1.0.0/tokenade/tests/test_format_importer_and_helpers.py +656 -0
- tokenade-1.0.0/tokenade/tests/test_forward_proxy.py +52 -0
- tokenade-1.0.0/tokenade/tests/test_forward_proxy_coverage.py +725 -0
- tokenade-1.0.0/tokenade/tests/test_generic_oauth_coverage.py +576 -0
- tokenade-1.0.0/tokenade/tests/test_github_handler_coverage.py +342 -0
- tokenade-1.0.0/tokenade/tests/test_google_handler_coverage.py +317 -0
- tokenade-1.0.0/tokenade/tests/test_handler_resolve.py +32 -0
- tokenade-1.0.0/tokenade/tests/test_handlers.py +521 -0
- tokenade-1.0.0/tokenade/tests/test_health_checker_coverage.py +451 -0
- tokenade-1.0.0/tokenade/tests/test_health_reporter.py +287 -0
- tokenade-1.0.0/tokenade/tests/test_health_scorer.py +537 -0
- tokenade-1.0.0/tokenade/tests/test_importer_integration.py +290 -0
- tokenade-1.0.0/tokenade/tests/test_integration.py +662 -0
- tokenade-1.0.0/tokenade/tests/test_kubernetes.py +484 -0
- tokenade-1.0.0/tokenade/tests/test_local_storage.py +56 -0
- tokenade-1.0.0/tokenade/tests/test_local_storage_extractor.py +174 -0
- tokenade-1.0.0/tokenade/tests/test_local_storage_extractor_coverage.py +291 -0
- tokenade-1.0.0/tokenade/tests/test_local_storage_extractor_plyvel.py +400 -0
- tokenade-1.0.0/tokenade/tests/test_mac_crypto.py +74 -0
- tokenade-1.0.0/tokenade/tests/test_mobile_extractor_coverage.py +397 -0
- tokenade-1.0.0/tokenade/tests/test_mobile_import.py +240 -0
- tokenade-1.0.0/tokenade/tests/test_monitoring.py +92 -0
- tokenade-1.0.0/tokenade/tests/test_multi_site_proxy.py +51 -0
- tokenade-1.0.0/tokenade/tests/test_multi_site_proxy_coverage.py +408 -0
- tokenade-1.0.0/tokenade/tests/test_mutmut_killers.py +122 -0
- tokenade-1.0.0/tokenade/tests/test_new_plugins.py +295 -0
- tokenade-1.0.0/tokenade/tests/test_oauth_refresh.py +412 -0
- tokenade-1.0.0/tokenade/tests/test_official_plugin_contracts.py +52 -0
- tokenade-1.0.0/tokenade/tests/test_performance.py +294 -0
- tokenade-1.0.0/tokenade/tests/test_performance_coverage.py +392 -0
- tokenade-1.0.0/tokenade/tests/test_phase80.py +266 -0
- tokenade-1.0.0/tokenade/tests/test_playwright_e2e.py +663 -0
- tokenade-1.0.0/tokenade/tests/test_plugin_api.py +347 -0
- tokenade-1.0.0/tokenade/tests/test_plugin_api_v11.py +357 -0
- tokenade-1.0.0/tokenade/tests/test_plugin_loader.py +297 -0
- tokenade-1.0.0/tokenade/tests/test_plugin_loader_coverage.py +254 -0
- tokenade-1.0.0/tokenade/tests/test_plugin_marketplace.py +838 -0
- tokenade-1.0.0/tokenade/tests/test_plugin_registry.py +447 -0
- tokenade-1.0.0/tokenade/tests/test_plugin_system.py +339 -0
- tokenade-1.0.0/tokenade/tests/test_plugin_types.py +358 -0
- tokenade-1.0.0/tokenade/tests/test_profile_cloner.py +226 -0
- tokenade-1.0.0/tokenade/tests/test_profile_management.py +280 -0
- tokenade-1.0.0/tokenade/tests/test_profile_manager.py +338 -0
- tokenade-1.0.0/tokenade/tests/test_profile_manager_coverage.py +400 -0
- tokenade-1.0.0/tokenade/tests/test_profile_manager_errors.py +397 -0
- tokenade-1.0.0/tokenade/tests/test_property_based.py +214 -0
- tokenade-1.0.0/tokenade/tests/test_proxy.py +652 -0
- tokenade-1.0.0/tokenade/tests/test_proxy_config.py +86 -0
- tokenade-1.0.0/tokenade/tests/test_proxy_gui.py +80 -0
- tokenade-1.0.0/tokenade/tests/test_proxy_manager.py +218 -0
- tokenade-1.0.0/tokenade/tests/test_proxy_modules.py +197 -0
- tokenade-1.0.0/tokenade/tests/test_proxy_rotation.py +584 -0
- tokenade-1.0.0/tokenade/tests/test_rating_sync.py +156 -0
- tokenade-1.0.0/tokenade/tests/test_refresh_browser.py +511 -0
- tokenade-1.0.0/tokenade/tests/test_runtime.py +474 -0
- tokenade-1.0.0/tokenade/tests/test_safari_extractor_coverage.py +538 -0
- tokenade-1.0.0/tokenade/tests/test_sdk_coverage.py +429 -0
- tokenade-1.0.0/tokenade/tests/test_security.py +349 -0
- tokenade-1.0.0/tokenade/tests/test_server_coverage.py +696 -0
- tokenade-1.0.0/tokenade/tests/test_server_routing_coverage.py +349 -0
- tokenade-1.0.0/tokenade/tests/test_server_utils_coverage.py +485 -0
- tokenade-1.0.0/tokenade/tests/test_session_comparator.py +110 -0
- tokenade-1.0.0/tokenade/tests/test_session_loader.py +52 -0
- tokenade-1.0.0/tokenade/tests/test_session_loader_coverage.py +621 -0
- tokenade-1.0.0/tokenade/tests/test_session_manager.py +135 -0
- tokenade-1.0.0/tokenade/tests/test_session_monitor_coverage.py +297 -0
- tokenade-1.0.0/tokenade/tests/test_session_monitor_enhanced.py +618 -0
- tokenade-1.0.0/tokenade/tests/test_session_packager.py +104 -0
- tokenade-1.0.0/tokenade/tests/test_session_packager_coverage.py +466 -0
- tokenade-1.0.0/tokenade/tests/test_session_refresher.py +543 -0
- tokenade-1.0.0/tokenade/tests/test_session_rotation.py +408 -0
- tokenade-1.0.0/tokenade/tests/test_session_rotator.py +377 -0
- tokenade-1.0.0/tokenade/tests/test_session_sharer.py +591 -0
- tokenade-1.0.0/tokenade/tests/test_session_sharer_qr_versions.py +272 -0
- tokenade-1.0.0/tokenade/tests/test_session_sync.py +598 -0
- tokenade-1.0.0/tokenade/tests/test_session_sync_coverage.py +302 -0
- tokenade-1.0.0/tokenade/tests/test_session_validator.py +204 -0
- tokenade-1.0.0/tokenade/tests/test_session_vault.py +418 -0
- tokenade-1.0.0/tokenade/tests/test_session_versions.py +262 -0
- tokenade-1.0.0/tokenade/tests/test_share_improvements.py +181 -0
- tokenade-1.0.0/tokenade/tests/test_site_configs.py +92 -0
- tokenade-1.0.0/tokenade/tests/test_site_filter.py +65 -0
- tokenade-1.0.0/tokenade/tests/test_site_handlers.py +318 -0
- tokenade-1.0.0/tokenade/tests/test_ssrf.py +54 -0
- tokenade-1.0.0/tokenade/tests/test_stealth.py +147 -0
- tokenade-1.0.0/tokenade/tests/test_stealth_enhanced.py +444 -0
- tokenade-1.0.0/tokenade/tests/test_stealth_validation.py +217 -0
- tokenade-1.0.0/tokenade/tests/test_structured_logging.py +243 -0
- tokenade-1.0.0/tokenade/tests/test_sync_import.py +302 -0
- tokenade-1.0.0/tokenade/tests/test_tls.py +39 -0
- tokenade-1.0.0/tokenade/tests/test_tls_matcher.py +133 -0
- tokenade-1.0.0/tokenade/tests/test_tls_matcher_coverage.py +310 -0
- tokenade-1.0.0/tokenade/tests/test_tor_extractor_coverage.py +141 -0
- tokenade-1.0.0/tokenade/tests/test_tui.py +259 -0
- tokenade-1.0.0/tokenade/tests/test_undetectable.py +176 -0
- tokenade-1.0.0/tokenade/tests/test_validator_coverage.py +582 -0
- tokenade-1.0.0/tokenade/tests/test_webhooks.py +290 -0
- tokenade-1.0.0/tokenade/tests/test_xvfb.py +172 -0
- tokenade-1.0.0/tokenade/tui/__init__.py +7 -0
- tokenade-1.0.0/tokenade/tui/app.py +1145 -0
- tokenade-1.0.0/tokenade.egg-info/PKG-INFO +831 -0
- tokenade-1.0.0/tokenade.egg-info/SOURCES.txt +366 -0
- tokenade-1.0.0/tokenade.egg-info/dependency_links.txt +1 -0
- tokenade-1.0.0/tokenade.egg-info/entry_points.txt +2 -0
- tokenade-1.0.0/tokenade.egg-info/requires.txt +42 -0
- tokenade-1.0.0/tokenade.egg-info/top_level.txt +1 -0
tokenade-1.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,831 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: tokenade
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Production-grade token shifting and session portability tool
|
|
5
|
+
Author: Tokenade Team
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/mihir0209/tokenade
|
|
8
|
+
Project-URL: Documentation, https://github.com/mihir0209/tokenade#readme
|
|
9
|
+
Project-URL: Repository, https://github.com/mihir0209/tokenade
|
|
10
|
+
Project-URL: Issues, https://github.com/mihir0209/tokenade/issues
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: Browsers
|
|
22
|
+
Classifier: Topic :: Security
|
|
23
|
+
Requires-Python: >=3.10
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
Requires-Dist: playwright>=1.40.0
|
|
26
|
+
Requires-Dist: cloakbrowser>=0.4.0
|
|
27
|
+
Requires-Dist: curl-cffi>=0.6.0
|
|
28
|
+
Requires-Dist: requests>=2.28.0
|
|
29
|
+
Requires-Dist: pycryptodome>=3.19.0
|
|
30
|
+
Requires-Dist: cryptography>=41.0.0
|
|
31
|
+
Requires-Dist: keyring>=24.0.0
|
|
32
|
+
Requires-Dist: aiohttp>=3.9.0
|
|
33
|
+
Requires-Dist: websockets>=12.0
|
|
34
|
+
Requires-Dist: PyYAML>=6.0
|
|
35
|
+
Provides-Extra: windows
|
|
36
|
+
Requires-Dist: pywin32>=306; extra == "windows"
|
|
37
|
+
Provides-Extra: linux
|
|
38
|
+
Requires-Dist: secretstorage>=3.3.3; extra == "linux"
|
|
39
|
+
Provides-Extra: runtime
|
|
40
|
+
Requires-Dist: curl-cffi>=0.6.0; extra == "runtime"
|
|
41
|
+
Provides-Extra: ldap
|
|
42
|
+
Requires-Dist: ldap3>=2.9; extra == "ldap"
|
|
43
|
+
Provides-Extra: enterprise
|
|
44
|
+
Requires-Dist: ldap3>=2.9; extra == "enterprise"
|
|
45
|
+
Provides-Extra: tui
|
|
46
|
+
Requires-Dist: textual>=0.40.0; extra == "tui"
|
|
47
|
+
Provides-Extra: dev
|
|
48
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
49
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
50
|
+
Requires-Dist: pytest-aiohttp>=1.0.0; extra == "dev"
|
|
51
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
52
|
+
Requires-Dist: pytest-timeout>=2.0.0; extra == "dev"
|
|
53
|
+
Requires-Dist: pytest-xdist>=3.0.0; extra == "dev"
|
|
54
|
+
Requires-Dist: hypothesis>=6.0.0; extra == "dev"
|
|
55
|
+
Requires-Dist: mutmut<3,>=2.4.0; extra == "dev"
|
|
56
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
57
|
+
Requires-Dist: flake8>=6.0.0; extra == "dev"
|
|
58
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
59
|
+
Requires-Dist: build>=1.0.0; extra == "dev"
|
|
60
|
+
|
|
61
|
+
# Tokenade v6.4 — Browser Session Portability Tool
|
|
62
|
+
|
|
63
|
+
Extract browser sessions from one device, package them into portable `.tokenade` files, and browse as the donor on another device using a **CDP reverse proxy** with TLS fingerprint matching.
|
|
64
|
+
|
|
65
|
+
**Product focus:** session portability + TLS-matched replay — not a Multilogin replacement.
|
|
66
|
+
|
|
67
|
+
**~5250 automated tests** · **large CLI surface** · **22 official plugins (unverified)** · **stealth: measured, not “Grade A”**
|
|
68
|
+
|
|
69
|
+
> **Honesty policy:** This README separates **battle-tested** behavior from **code that exists but is not production-proven**. Overclaims were removed 2026-07-09. Deferred goals live in [`.agent/plans/2026-07-09-p0-honesty-deferred-claims.md`](.agent/plans/2026-07-09-p0-honesty-deferred-claims.md).
|
|
70
|
+
|
|
71
|
+
## What actually works (battle-tested)
|
|
72
|
+
|
|
73
|
+
Evidence: `.agent/working.md`, `.agent/testing-reports/2026-07-06-e2e-headless-test.md`, manual multi-device notes.
|
|
74
|
+
|
|
75
|
+
| Capability | Status | Notes |
|
|
76
|
+
|------------|--------|-------|
|
|
77
|
+
| Cookie export (Chrome/Firefox/Brave/Edge) | **Works** | SQLite extraction, domain filters |
|
|
78
|
+
| CDP proxy + session inject (Gmail, ChatGPT) | **Works** | Confirmed logged-in in real runs |
|
|
79
|
+
| localStorage transfer (Telegram Web) | **Works** | E2E headless 2026-07-06 |
|
|
80
|
+
| Google persistent cookies → CloakBrowser | **Works** | 171 cookies, login selectors matched |
|
|
81
|
+
| AES-256-GCM session file encryption | **Works** | Core `TokenadeEncryptor`, PBKDF2 600k |
|
|
82
|
+
| Session health scoring (cookie heuristics) | **Works** | Heuristic score — not a live auth proof |
|
|
83
|
+
| Forward proxy CONNECT | **Works** | Battle-tested 2026-06-17 |
|
|
84
|
+
| Multi-site proxy (2 sessions) | **Works** | Battle-tested 2026-06-17 |
|
|
85
|
+
| CloakBrowser as default stealth backend | **Works** | Prefer over pure JS patches |
|
|
86
|
+
| GitHub/Discord/Reddit from **session-only** Firefox cookies | **Often fails** | Auth cookies not always persisted to disk |
|
|
87
|
+
| Google Chrome→Chrome / multi-device | **Often fails** | DBSC + risk signals; see working notes |
|
|
88
|
+
| Cloudflare Turnstile / hard bot labs | **Often fails** | Battle suite ~Grade C (~78/100), not A |
|
|
89
|
+
| Enterprise LDAP / fleet / K8s generators | **Code present** | Not battle-tested as a product |
|
|
90
|
+
| Official plugin marketplace “ratings/downloads” | **Removed** | Were never real telemetry |
|
|
91
|
+
|
|
92
|
+
## Features
|
|
93
|
+
|
|
94
|
+
### Core (primary product)
|
|
95
|
+
|
|
96
|
+
| Feature | Description | Confidence |
|
|
97
|
+
|---------|-------------|------------|
|
|
98
|
+
| **Session Export** | Extract cookies from Chrome, Firefox, Brave, Edge; Safari/Tor/mobile available | High for desktop Chromium/Firefox |
|
|
99
|
+
| **Session Injection** | CDP proxy or direct profile modification | High for persistent-cookie sites |
|
|
100
|
+
| **TLS Fingerprint Matching** | `curl-cffi` impersonation on proxied requests | High when `tokenade[runtime]` installed |
|
|
101
|
+
| **localStorage Support** | Extract/inject localStorage (critical for Telegram) | High for Telegram; mixed for Discord |
|
|
102
|
+
| **Encryption** | AES-256-GCM via **core** encryptor only | High |
|
|
103
|
+
| **Session Refresh** | Cookie re-warm via headless browser; OAuth path exists | Medium (site-dependent) |
|
|
104
|
+
| **Health Scoring** | Heuristic cookie/auth scoring | Medium (not live site proof) |
|
|
105
|
+
| **Site Configs / plugins** | Domain + critical-cookie presets | Medium (configs/lists, not deep site engines) |
|
|
106
|
+
|
|
107
|
+
### Stealth (honest)
|
|
108
|
+
|
|
109
|
+
| Feature | Description | Confidence |
|
|
110
|
+
|---------|-------------|------------|
|
|
111
|
+
| **CloakBrowser** | Stealth Chromium backend (default when available) | High as launcher |
|
|
112
|
+
| **JS patch fallback** | Webdriver/plugins/WebGL/canvas/etc. when CloakBrowser unavailable | Best-effort |
|
|
113
|
+
| **Battle testing** | Multi-site detection suite with scores | Use scores; do not assume “undetectable” |
|
|
114
|
+
| **CAPTCHA / CF / Akamai helpers** | Detection + partial automation | Partial — not a guaranteed bypass product |
|
|
115
|
+
| **Humanize** | Mouse/keyboard timing helpers | Best-effort |
|
|
116
|
+
|
|
117
|
+
### Also present (code exists — not the sales pitch)
|
|
118
|
+
|
|
119
|
+
| Area | What exists | Caveat |
|
|
120
|
+
|------|-------------|--------|
|
|
121
|
+
| Advanced refresh/share/merge/rotate | CLI + modules | Prefer core loop first |
|
|
122
|
+
| Browser extension | MV3 export helper | Manual install; not a full product surface |
|
|
123
|
+
| Plugin marketplace | Install/search/TUI; 22 official plugins | Plugins **unverified**; many thin or core-overlapping |
|
|
124
|
+
| Profile / fingerprint / competitor import | Modules + CLI | Competitor parity is incomplete vs AdsPower/Multilogin |
|
|
125
|
+
| Enterprise (audit, RBAC, LDAP) | Modules + optional deps | Not production-hardened for multi-tenant ops |
|
|
126
|
+
| Fleet / K8s YAML / CI generators | CLI scaffolding | Generators ≠ managed platform |
|
|
127
|
+
| GitHub Actions CI for this repo | Present | Matrix lint/test |
|
|
128
|
+
|
|
129
|
+
### Browser support
|
|
130
|
+
|
|
131
|
+
| Browser | Status | Notes |
|
|
132
|
+
|---------|--------|-------|
|
|
133
|
+
| Chrome | Strong | SQLite extraction, profile discovery; binary patch experimental |
|
|
134
|
+
| Firefox | Strong | SQLite + LevelDB localStorage paths used in E2E |
|
|
135
|
+
| Edge / Brave | Strong | Chromium-based |
|
|
136
|
+
| Safari | Partial | macOS cookie parsing |
|
|
137
|
+
| Tor Browser | Available | Firefox-based profile discovery |
|
|
138
|
+
| Mobile (Android) | Available | Via ADB — less battle coverage than desktop |
|
|
139
|
+
|
|
140
|
+
## Quick Start (3 commands)
|
|
141
|
+
|
|
142
|
+
### Step 1 — Install
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
pip install tokenade
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Step 2 — Export cookies from your browser
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
# See what browsers are installed
|
|
152
|
+
tokenade export --list-profiles
|
|
153
|
+
|
|
154
|
+
# Export ChatGPT session from Firefox
|
|
155
|
+
tokenade export --browser-name firefox --domains "chatgpt.com,openai.com" -o chatgpt.tokenade
|
|
156
|
+
|
|
157
|
+
# Export Gmail session from Chrome
|
|
158
|
+
tokenade export --browser-name chrome --domains "google.com,accounts.google.com,mail.google.com" -o gmail.tokenade
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Step 3 — Launch with stealth (CloakBrowser)
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# Launch stealth browser with session injected
|
|
165
|
+
tokenade launch -s gmail.tokenade -u https://mail.google.com
|
|
166
|
+
|
|
167
|
+
# With human-like behavior
|
|
168
|
+
tokenade launch -s gmail.tokenade -u https://mail.google.com --humanize
|
|
169
|
+
|
|
170
|
+
# Or use the proxy mode
|
|
171
|
+
tokenade proxy -s gmail.tokenade
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## Full CLI Reference (58 Commands)
|
|
175
|
+
|
|
176
|
+
### Session Management
|
|
177
|
+
```bash
|
|
178
|
+
tokenade export # Extract cookies from browser
|
|
179
|
+
tokenade load # Load session into browser
|
|
180
|
+
tokenade sessions list # List all sessions
|
|
181
|
+
tokenade sessions stats # Session statistics
|
|
182
|
+
tokenade session-diff # Compare two sessions
|
|
183
|
+
tokenade validate # Validate session integrity
|
|
184
|
+
tokenade validate-rules # Validate against custom rules
|
|
185
|
+
tokenade validate-session # Validate for CI/CD health gates
|
|
186
|
+
tokenade health # Check session health
|
|
187
|
+
tokenade health-report # Batch health report for CI/CD
|
|
188
|
+
tokenade diff # Diff two sessions
|
|
189
|
+
tokenade merge # Merge multiple sessions
|
|
190
|
+
tokenade rotate # Rotate sessions
|
|
191
|
+
tokenade transfer # Transfer session between browsers
|
|
192
|
+
tokenade extract # Extract session (alias for export)
|
|
193
|
+
tokenade inject-profile # Inject session into browser profile
|
|
194
|
+
tokenade import # Import from competitor format
|
|
195
|
+
tokenade versions # Show session versions
|
|
196
|
+
tokenade rollback # Rollback to previous version
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Stealth & Browser
|
|
200
|
+
```bash
|
|
201
|
+
tokenade stealth test # 18-point detection test suite
|
|
202
|
+
tokenade stealth battle # Battle test against 5 detection sites
|
|
203
|
+
tokenade stealth report # Generate detection report
|
|
204
|
+
tokenade stealth deps # Check stealth dependencies
|
|
205
|
+
tokenade launch # Launch stealth browser with session
|
|
206
|
+
tokenade patch-chrome # Binary patch Chrome for stealth
|
|
207
|
+
tokenade fingerprint # Generate fingerprint
|
|
208
|
+
tokenade clone-profile # Clone browser profile
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### CloakBrowser
|
|
212
|
+
```bash
|
|
213
|
+
tokenade cloak info # Show CloakBrowser status
|
|
214
|
+
tokenade cloak install # Download CloakBrowser binary
|
|
215
|
+
tokenade cloak serve # Start CDP server (cloakserve)
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Session Refresh
|
|
219
|
+
```bash
|
|
220
|
+
tokenade refresh # Refresh session from source browser
|
|
221
|
+
tokenade refresh-browser # Refresh via undetectable browser
|
|
222
|
+
tokenade refresh-oauth # Refresh OAuth2 tokens
|
|
223
|
+
tokenade encrypted-refresh # Refresh encrypted sessions
|
|
224
|
+
tokenade batch-refresh # Refresh multiple sessions
|
|
225
|
+
tokenade oauth-config # Configure OAuth settings
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Plugins
|
|
229
|
+
```bash
|
|
230
|
+
tokenade plugin list # List installed plugins
|
|
231
|
+
tokenade plugin install # Install a plugin
|
|
232
|
+
tokenade plugin uninstall # Uninstall a plugin
|
|
233
|
+
tokenade plugin info # Show plugin details
|
|
234
|
+
tokenade plugin search # Search marketplace
|
|
235
|
+
tokenade plugin rate # Rate a plugin (syncs to GitHub)
|
|
236
|
+
tokenade plugin ratings # View global ratings
|
|
237
|
+
tokenade plugin popular # Show popular plugins
|
|
238
|
+
tokenade plugin recent # Show newest plugins
|
|
239
|
+
tokenade plugin categories # List categories
|
|
240
|
+
tokenade plugin verify # Verify plugin integrity
|
|
241
|
+
tokenade plugin outdated # Show outdated plugins
|
|
242
|
+
tokenade plugin browse # Generate HTML marketplace
|
|
243
|
+
tokenade plugin test # Test a plugin
|
|
244
|
+
tokenade plugin enable # Enable a plugin
|
|
245
|
+
tokenade plugin disable # Disable a plugin
|
|
246
|
+
tokenade plugin update # Update plugins
|
|
247
|
+
tokenade plugin reload # Reload a plugin
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Proxy & Network
|
|
251
|
+
```bash
|
|
252
|
+
tokenade proxy # Start CDP reverse proxy
|
|
253
|
+
tokenade serve # Serve session via HTTP
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### Session Sharing
|
|
257
|
+
```bash
|
|
258
|
+
tokenade share # Share session (URL, QR, email)
|
|
259
|
+
tokenade unshare # Revoke shared session
|
|
260
|
+
tokenade sync # Sync sessions across devices
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
### Encryption
|
|
264
|
+
```bash
|
|
265
|
+
tokenade encrypt # Encrypt session file
|
|
266
|
+
tokenade decrypt # Decrypt session file
|
|
267
|
+
tokenade rekey # Re-encrypt with new key
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### CI/CD & Fleet
|
|
271
|
+
```bash
|
|
272
|
+
tokenade ci run # Run CI pipeline from tokenade.yml
|
|
273
|
+
tokenade ci init # Create starter tokenade.yml
|
|
274
|
+
tokenade ci validate # Validate tokenade.yml
|
|
275
|
+
tokenade ci lint # Lint tokenade.yml
|
|
276
|
+
tokenade cicd # Generate CI/CD workflow files
|
|
277
|
+
tokenade fleet status # Show all containers/pods
|
|
278
|
+
tokenade fleet health # Health check across fleet
|
|
279
|
+
tokenade fleet refresh # Refresh all containers
|
|
280
|
+
tokenade fleet logs # Get container logs
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### Forensics
|
|
284
|
+
```bash
|
|
285
|
+
tokenade autopsy # Analyze why a session died
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### Container & Kubernetes
|
|
289
|
+
```bash
|
|
290
|
+
tokenade container start/stop/restart/status/logs/refresh/scale/cleanup/health/generate
|
|
291
|
+
tokenade k8s deploy/status/scale/logs/delete/pods
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### TUI
|
|
295
|
+
```bash
|
|
296
|
+
tokenade tui # Launch interactive terminal UI
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### Other
|
|
300
|
+
```bash
|
|
301
|
+
tokenade setup # Initial setup
|
|
302
|
+
tokenade config show/get/set # Manage configuration
|
|
303
|
+
tokenade monitor start/stop/status # Session monitoring
|
|
304
|
+
tokenade analytics report/cleanup # Session analytics
|
|
305
|
+
tokenade daemon start/stop/status # Background daemon
|
|
306
|
+
tokenade logs # View logs
|
|
307
|
+
tokenade diff # Diff sessions
|
|
308
|
+
tokenade deps check/install # System dependencies
|
|
309
|
+
tokenade batch-export # Export multiple sessions
|
|
310
|
+
tokenade batch-load # Load multiple sessions
|
|
311
|
+
tokenade completion # Shell completion scripts
|
|
312
|
+
tokenade test # Run built-in tests
|
|
313
|
+
tokenade mobile-import # Import from mobile device
|
|
314
|
+
```
|
|
315
|
+
--no-open-browser Don't auto-open GUI
|
|
316
|
+
--timeout SECONDS Request timeout (default: 30)
|
|
317
|
+
--all Multi-site mode (use -d for sessions directory)
|
|
318
|
+
--mode {cdp,forward} Proxy mode
|
|
319
|
+
--legacy Use legacy service-worker proxy
|
|
320
|
+
--auto-refresh Enable auto-refresh from source browser
|
|
321
|
+
--source-browser NAME Browser to refresh from
|
|
322
|
+
--rotate Enable session rotation
|
|
323
|
+
--rotate-strategy Rotation strategy (health-weighted, round-robin, random, lru)
|
|
324
|
+
--rotate-interval Rotation interval in seconds
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### Stealth
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
tokenade stealth test # Run 18-point detection test suite
|
|
331
|
+
tokenade stealth battle # Battle test against 5 real detection sites
|
|
332
|
+
tokenade stealth report # Generate HTML/JSON detection report
|
|
333
|
+
tokenade stealth deps # Check stealth system dependencies
|
|
334
|
+
tokenade stealth deps-install # Install missing dependencies
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**Battle Test Options:**
|
|
338
|
+
|
|
339
|
+
```bash
|
|
340
|
+
tokenade stealth battle --browser chromium # Test with Chromium (default)
|
|
341
|
+
tokenade stealth battle --browser firefox # Test with Firefox
|
|
342
|
+
tokenade stealth battle --site bot_sannysoft # Test specific site only
|
|
343
|
+
tokenade stealth battle --output report.json # Save JSON report
|
|
344
|
+
tokenade stealth battle -s bot_sannysoft -s creepjs # Multiple sites
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
**Detection Sites Tested:**
|
|
348
|
+
|
|
349
|
+
| Site | What It Detects | Weight |
|
|
350
|
+
|------|----------------|--------|
|
|
351
|
+
| bot.sannysoft.com | WebDriver, automation flags | 1.0 |
|
|
352
|
+
| creepjs | Browser fingerprint anomalies | 0.8 |
|
|
353
|
+
| pixelscan.net | Headless, automation vectors | 1.0 |
|
|
354
|
+
| browserleaks.com | JavaScript API leaks | 0.7 |
|
|
355
|
+
| iphey.com | Bot detection, behavioral analysis | 0.6 |
|
|
356
|
+
|
|
357
|
+
### Browser Launch
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
tokenade launch -s session.tokenade -u https://site.com [options]
|
|
361
|
+
|
|
362
|
+
Options:
|
|
363
|
+
-s, --session FILE Session file (required)
|
|
364
|
+
-u, --url URL Target URL
|
|
365
|
+
-b, --browser NAME Browser (chrome, firefox, brave, edge)
|
|
366
|
+
--visible Show browser window
|
|
367
|
+
--headless Run in headless mode
|
|
368
|
+
--proxy URL Upstream proxy
|
|
369
|
+
--proxy-file FILE Proxy list file
|
|
370
|
+
--proxy-rotate Rotate proxies
|
|
371
|
+
--plugin NAME Plugin to use
|
|
372
|
+
--encrypt Encrypt session at rest
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
### Session Refresh
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
tokenade refresh-browser -s session.tokenade -b chrome --url https://github.com
|
|
379
|
+
tokenade accounts list # List all sessions
|
|
380
|
+
tokenade accounts status # Health status with color coding
|
|
381
|
+
tokenade accounts refresh --all # Parallel refresh with unique CDP ports
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
### Sessions
|
|
385
|
+
|
|
386
|
+
```bash
|
|
387
|
+
tokenade sessions list -d ./sessions # List sessions
|
|
388
|
+
tokenade sessions list --site google # Filter by site
|
|
389
|
+
tokenade sessions merge s1.tokenade s2.tokenade -o merged.tokenade
|
|
390
|
+
tokenade sessions rotate s1.tokenade s2.tokenade
|
|
391
|
+
tokenade sessions stats *.tokenade
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
### Session Sharing
|
|
395
|
+
|
|
396
|
+
```bash
|
|
397
|
+
tokenade share -s session.tokenade # Create URL
|
|
398
|
+
tokenade share -s session.tokenade --format qr -o qr.png
|
|
399
|
+
tokenade share -s session.tokenade --password x --expiry 48
|
|
400
|
+
tokenade share -s session.tokenade --webhook https://hooks.slack.com/...
|
|
401
|
+
tokenade unshare --list
|
|
402
|
+
tokenade unshare <session-id>
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
### Encrypt / Decrypt
|
|
406
|
+
|
|
407
|
+
```bash
|
|
408
|
+
tokenade encrypt -s session.tokenade -o encrypted.tokenade
|
|
409
|
+
tokenade decrypt -s encrypted.tokenade -o session.tokenade
|
|
410
|
+
tokenade rekey -s encrypted.tokenade
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
### Health & Validation
|
|
414
|
+
|
|
415
|
+
```bash
|
|
416
|
+
tokenade health -s session.tokenade
|
|
417
|
+
tokenade health-report --sessions-dir ./sessions
|
|
418
|
+
tokenade validate-rules -s session.tokenade -r rules.json
|
|
419
|
+
tokenade diff file1.tokenade file2.tokenade
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
### Profile Management
|
|
423
|
+
|
|
424
|
+
```bash
|
|
425
|
+
tokenade profile create --name "Work" --browser chrome
|
|
426
|
+
tokenade profile list
|
|
427
|
+
tokenade profile get --name "Work"
|
|
428
|
+
tokenade profile delete --name "Work"
|
|
429
|
+
tokenade profile export --name "Work" -o work-profile.json
|
|
430
|
+
tokenade profile import --file work-profile.json
|
|
431
|
+
tokenade profile recent
|
|
432
|
+
tokenade profile stats
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
### Fingerprint
|
|
436
|
+
|
|
437
|
+
```bash
|
|
438
|
+
tokenade fingerprint --browser chrome --platform windows
|
|
439
|
+
tokenade fingerprint --seed my-seed --count 5
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
### Multi-Profile Sync
|
|
443
|
+
|
|
444
|
+
```bash
|
|
445
|
+
tokenade sync --action "navigate,url=https://example.com;click,button#submit"
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
### Plugins
|
|
449
|
+
|
|
450
|
+
```bash
|
|
451
|
+
tokenade plugin list # List installed plugins
|
|
452
|
+
tokenade plugin install <name> # Install from marketplace
|
|
453
|
+
tokenade plugin uninstall <name> # Remove plugin
|
|
454
|
+
tokenade plugin info <name> # Plugin details
|
|
455
|
+
tokenade plugin enable <name> # Enable plugin
|
|
456
|
+
tokenade plugin disable <name> # Disable plugin
|
|
457
|
+
tokenade plugin update <name> # Update plugin
|
|
458
|
+
tokenade plugin reload # Reload all plugins
|
|
459
|
+
tokenade plugin search <query> # Search marketplace
|
|
460
|
+
tokenade plugin categories # List categories
|
|
461
|
+
tokenade plugin popular # Top by downloads
|
|
462
|
+
tokenade plugin recent # Recently added
|
|
463
|
+
tokenade plugin trending # Trending plugins
|
|
464
|
+
tokenade plugin rate <name> <1-5> # Rate plugin
|
|
465
|
+
tokenade plugin verify <name> # Verify checksum
|
|
466
|
+
tokenade plugin outdated # Check for updates
|
|
467
|
+
tokenade plugin browse # Generate HTML marketplace
|
|
468
|
+
tokenade plugin test <name> # Run plugin test suite
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
### Server
|
|
472
|
+
|
|
473
|
+
```bash
|
|
474
|
+
tokenade serve --port 8080 # Start REST API server
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
### Configuration
|
|
478
|
+
|
|
479
|
+
```bash
|
|
480
|
+
tokenade config show # View all config
|
|
481
|
+
tokenade config set default_browser brave
|
|
482
|
+
tokenade config set stealth_level maximum
|
|
483
|
+
tokenade config get default_browser
|
|
484
|
+
tokenade config path
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
### Daemon
|
|
488
|
+
|
|
489
|
+
```bash
|
|
490
|
+
tokenade daemon start # Start background daemon
|
|
491
|
+
tokenade daemon stop # Stop daemon
|
|
492
|
+
tokenade daemon status # Check daemon status
|
|
493
|
+
tokenade daemon add session.tokenade # Add session to daemon
|
|
494
|
+
tokenade daemon remove session.tokenade # Remove session
|
|
495
|
+
tokenade daemon list # List managed sessions
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
### Session Versioning
|
|
499
|
+
|
|
500
|
+
```bash
|
|
501
|
+
tokenade versions list session.tokenade # List versions
|
|
502
|
+
tokenade versions create session.tokenade # Create version
|
|
503
|
+
tokenade versions delete session.tokenade 2 # Delete version
|
|
504
|
+
tokenade rollback session.tokenade 2 # Rollback to version
|
|
505
|
+
tokenade session-diff session.tokenade 1 2 # Diff versions
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
### Logging
|
|
509
|
+
|
|
510
|
+
```bash
|
|
511
|
+
tokenade logs # View recent logs
|
|
512
|
+
tokenade logs --follow # Tail logs
|
|
513
|
+
tokenade logs --search "error" # Search logs
|
|
514
|
+
tokenade logs --json # JSON format
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
### Other Commands
|
|
518
|
+
|
|
519
|
+
```bash
|
|
520
|
+
tokenade batch-export # Batch export multiple sessions
|
|
521
|
+
tokenade batch-load # Batch load sessions
|
|
522
|
+
tokenade batch-refresh # Batch refresh with rate limiting
|
|
523
|
+
tokenade clone-profile # Clone browser profile
|
|
524
|
+
tokenade completion # Shell completion
|
|
525
|
+
tokenade container start/status/health # Docker container management
|
|
526
|
+
tokenade deps # System dependency check
|
|
527
|
+
tokenade inject-profile # Inject session into browser profile
|
|
528
|
+
tokenade k8s deploy/status/scale # Kubernetes management
|
|
529
|
+
tokenade mobile-import # Import from Android/iOS
|
|
530
|
+
tokenade monitor start/stop/status/history # Session monitoring
|
|
531
|
+
tokenade oauth-config # Configure OAuth
|
|
532
|
+
tokenade patch-chrome scan/patch/restore # Chrome binary patching
|
|
533
|
+
tokenade refresh-oauth # Refresh OAuth tokens
|
|
534
|
+
tokenade setup # Initial setup
|
|
535
|
+
tokenade transfer # Transfer sessions
|
|
536
|
+
tokenade validate-session # CI/CD validation
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
## How It Works
|
|
540
|
+
|
|
541
|
+
### 1. Session Export
|
|
542
|
+
|
|
543
|
+
```
|
|
544
|
+
Your Browser (Firefox/Chrome/Safari/Tor)
|
|
545
|
+
│
|
|
546
|
+
▼
|
|
547
|
+
┌─────────────────┐
|
|
548
|
+
│ tokenade export │
|
|
549
|
+
└─────────────────┘
|
|
550
|
+
│
|
|
551
|
+
▼
|
|
552
|
+
┌─────────────────┐
|
|
553
|
+
│ Read SQLite DB │──── Browser stores cookies in SQLite
|
|
554
|
+
└─────────────────┘
|
|
555
|
+
│
|
|
556
|
+
▼
|
|
557
|
+
┌─────────────────┐
|
|
558
|
+
│ Decrypt Cookies │──── Platform-specific decryption
|
|
559
|
+
└─────────────────┘
|
|
560
|
+
│
|
|
561
|
+
▼
|
|
562
|
+
┌─────────────────┐
|
|
563
|
+
│ Package .tokenade│──── JSON with cookies, fingerprint, TLS profile
|
|
564
|
+
└─────────────────┘
|
|
565
|
+
│
|
|
566
|
+
▼
|
|
567
|
+
session.tokenade
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
### 2. Session Injection (CDP Proxy)
|
|
571
|
+
|
|
572
|
+
```
|
|
573
|
+
.tokenade file
|
|
574
|
+
│
|
|
575
|
+
▼
|
|
576
|
+
┌─────────────────┐
|
|
577
|
+
│ tokenade proxy │
|
|
578
|
+
└─────────────────┘
|
|
579
|
+
│
|
|
580
|
+
▼
|
|
581
|
+
┌─────────────────┐
|
|
582
|
+
│ Launch Chromium │──── Playwright browser
|
|
583
|
+
└─────────────────┘
|
|
584
|
+
│
|
|
585
|
+
▼
|
|
586
|
+
┌─────────────────┐
|
|
587
|
+
│ Inject Cookies │──── Add to browser context
|
|
588
|
+
└─────────────────┘
|
|
589
|
+
│
|
|
590
|
+
▼
|
|
591
|
+
┌─────────────────┐
|
|
592
|
+
│ page.route() │──── Intercept ALL browser requests
|
|
593
|
+
└─────────────────┘
|
|
594
|
+
│
|
|
595
|
+
▼
|
|
596
|
+
┌─────────────────┐
|
|
597
|
+
│ curl-cffi │──── Forward with donor TLS fingerprint
|
|
598
|
+
│ (TLS matched) │
|
|
599
|
+
└─────────────────┘
|
|
600
|
+
│
|
|
601
|
+
▼
|
|
602
|
+
http://127.0.0.1:9222
|
|
603
|
+
You are logged in as donor
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
### 3. TLS Fingerprint Matching (Why It Works)
|
|
607
|
+
|
|
608
|
+
```
|
|
609
|
+
Without Tokenade:
|
|
610
|
+
Your Browser → Your TLS fingerprint → Blocked by Cloudflare
|
|
611
|
+
|
|
612
|
+
With Tokenade:
|
|
613
|
+
Your Browser → Tokenade Proxy → Donor's TLS fingerprint → Allowed
|
|
614
|
+
|
|
615
|
+
curl-cffi impersonates Chrome's TLS handshake (JA3 hash),
|
|
616
|
+
so servers see the donor's fingerprint, not yours.
|
|
617
|
+
```
|
|
618
|
+
|
|
619
|
+
## Why Tokenade?
|
|
620
|
+
|
|
621
|
+
| Feature | Tokenade (honest) | Browser Extensions | Simple cookie dump tools |
|
|
622
|
+
|---------|-------------------|--------------------|--------------------------|
|
|
623
|
+
| **CLI + portable `.tokenade` files** | Yes | Usually no | Partial |
|
|
624
|
+
| **TLS-matched CDP proxy** | Yes (needs `curl-cffi`) | No | No |
|
|
625
|
+
| **Multi-browser extract** | Yes (desktop strong) | Limited | Varies |
|
|
626
|
+
| **localStorage packaging** | Yes (Telegram proven) | Varies | Rare |
|
|
627
|
+
| **Encrypted session files** | Yes (core AES-GCM) | Rare | Rare |
|
|
628
|
+
| **Undetectable vs all bot labs** | **No — do not claim this** | No | No |
|
|
629
|
+
| **Full Multilogin replacement** | **No** | No | No |
|
|
630
|
+
| **Self-hosted** | Yes | N/A | Yes |
|
|
631
|
+
|
|
632
|
+
## What's New in v6.4
|
|
633
|
+
|
|
634
|
+
- **Plugin API v1.0/v1.1** — Base classes + PluginResult/PluginConfig
|
|
635
|
+
- **Full ecosystem transfer format** — `.tokenade` v3 storage.local / storage.session per origin
|
|
636
|
+
- **Encryption at export** — `--encrypt-password` uses core encryptor
|
|
637
|
+
- **Plugin-first export** — site handlers can drive domains/critical cookies
|
|
638
|
+
- **Honesty pass (2026-07-09)** — removed Grade A / fake plugin stats; single crypto path for session-encrypt plugin
|
|
639
|
+
|
|
640
|
+
## What's New in v6.3
|
|
641
|
+
|
|
642
|
+
- **Stealth modules consolidated** — `core/browser/stealth/` package (manager, launcher, cloak, backend)
|
|
643
|
+
- **CLI handlers split** — `cli/handlers/` with infrastructure, CI, misc modules
|
|
644
|
+
- **Test suite optimization** — pytest-xdist parallel execution (150s → 27s)
|
|
645
|
+
|
|
646
|
+
## What's New in v6.2
|
|
647
|
+
|
|
648
|
+
- **CloakBrowser Integration** — Stealth Chromium binary with 58 C++ patches as default backend
|
|
649
|
+
- **Session CI Runner** — `tokenade ci run` reads `tokenade.yml` for automated session validation
|
|
650
|
+
- **Fleet Management** — `tokenade fleet status|health|refresh|logs` across Docker/k8s containers
|
|
651
|
+
- **Session Forensics** — `tokenade autopsy -s session.tokenade` — root-cause analysis for dead sessions
|
|
652
|
+
- **Interactive TUI** — `tokenade tui` — marketplace browser, session manager, keyboard navigation
|
|
653
|
+
|
|
654
|
+
## What's New in v6.0
|
|
655
|
+
|
|
656
|
+
- **Enhanced Browser Stealth** — 14 patch categories, 2026-grade anti-detection
|
|
657
|
+
- **Cloudflare & Akamai Bypass** — Turnstile solver, cf_clearance extraction, residential proxy support
|
|
658
|
+
- **CAPTCHA Detection** — Turnstile, hCaptcha, reCAPTCHA detection
|
|
659
|
+
- **Plugin Marketplace** — Search, categories, ratings, trending, HTML marketplace page
|
|
660
|
+
- **Profile Manager** — Create, list, export/import browser profiles
|
|
661
|
+
- **Fingerprint Generator** — OS/hardware-aware deterministic fingerprints
|
|
662
|
+
- **Multi-Profile Sync** — Execute actions across multiple browser profiles
|
|
663
|
+
- **Competitor Import** — Import sessions from AdsPower, Multilogin, GoLogin
|
|
664
|
+
- **Stealth Testing** — 18-point automated detection test suite with HTML/JSON reports
|
|
665
|
+
- **Python 3.10+ Required** — Dropped Python 3.9 support
|
|
666
|
+
|
|
667
|
+
## Installation
|
|
668
|
+
|
|
669
|
+
```bash
|
|
670
|
+
pip install tokenade
|
|
671
|
+
```
|
|
672
|
+
|
|
673
|
+
CloakBrowser (stealth Chromium with 58 C++ patches) is a core dependency. The binary (~200MB) auto-downloads on first use.
|
|
674
|
+
|
|
675
|
+
### Optional Dependencies
|
|
676
|
+
|
|
677
|
+
```bash
|
|
678
|
+
pip install tokenade[enterprise] # ldap3 for LDAP/SSO (experimental)
|
|
679
|
+
pip install tokenade[linux] # secretstorage for Linux keyring
|
|
680
|
+
pip install 'tokenade[tui]' # Interactive terminal UI (textual)
|
|
681
|
+
# tokenade[runtime] still installs curl-cffi (now also a core dependency)
|
|
682
|
+
```
|
|
683
|
+
|
|
684
|
+
**Note:** `curl-cffi` is a **core** dependency (P1). TLS-matched proxy fails closed if it is missing (broken install), instead of silently degrading.
|
|
685
|
+
|
|
686
|
+
### Development
|
|
687
|
+
|
|
688
|
+
```bash
|
|
689
|
+
git clone https://github.com/mihir0209/tokenade.git
|
|
690
|
+
cd tokenade
|
|
691
|
+
pip install -e ".[dev]"
|
|
692
|
+
playwright install chromium --with-deps
|
|
693
|
+
```
|
|
694
|
+
|
|
695
|
+
## .tokenade File Format
|
|
696
|
+
|
|
697
|
+
```json
|
|
698
|
+
{
|
|
699
|
+
"version": "2.0",
|
|
700
|
+
"created_at": "2026-06-27T12:00:00Z",
|
|
701
|
+
"source_device": {
|
|
702
|
+
"browser": "firefox",
|
|
703
|
+
"profile": "default",
|
|
704
|
+
"platform": "Linux",
|
|
705
|
+
"hostname": "my-pc"
|
|
706
|
+
},
|
|
707
|
+
"site_name": "google",
|
|
708
|
+
"auth_status": "logged_in",
|
|
709
|
+
"cookies": [
|
|
710
|
+
{
|
|
711
|
+
"name": "SID",
|
|
712
|
+
"value": "abc123",
|
|
713
|
+
"domain": ".google.com",
|
|
714
|
+
"path": "/",
|
|
715
|
+
"secure": true,
|
|
716
|
+
"httpOnly": true,
|
|
717
|
+
"sameSite": "Lax",
|
|
718
|
+
"expires": 1781000000
|
|
719
|
+
}
|
|
720
|
+
],
|
|
721
|
+
"fingerprint": {
|
|
722
|
+
"user_agent": "Mozilla/5.0 ...",
|
|
723
|
+
"platform": "Linux",
|
|
724
|
+
"language": "en-US"
|
|
725
|
+
},
|
|
726
|
+
"tls_profile": {
|
|
727
|
+
"browser": "chrome",
|
|
728
|
+
"version": "131",
|
|
729
|
+
"impersonate": "chrome131",
|
|
730
|
+
"http_version": "2"
|
|
731
|
+
},
|
|
732
|
+
"metadata": {
|
|
733
|
+
"cookie_count": 50,
|
|
734
|
+
"critical_cookie_count": 30
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
```
|
|
738
|
+
|
|
739
|
+
## Architecture
|
|
740
|
+
|
|
741
|
+
```
|
|
742
|
+
tokenade/
|
|
743
|
+
├── core/
|
|
744
|
+
│ ├── browser/
|
|
745
|
+
│ │ ├── stealth.py # 14-patch stealth injection
|
|
746
|
+
│ │ ├── stealth_test.py # 18-point detection test suite
|
|
747
|
+
│ │ ├── dashboard.py # HTML/JSON detection reports
|
|
748
|
+
│ │ ├── cloudflare.py # Cloudflare & Akamai bypass
|
|
749
|
+
│ │ ├── captcha.py # CAPTCHA detection
|
|
750
|
+
│ │ ├── tls_fingerprint.py # curl-cffi TLS matching
|
|
751
|
+
│ │ ├── undetectable.py # System browser launcher
|
|
752
|
+
│ │ ├── cdp_connection.py # CDP WebSocket connection
|
|
753
|
+
│ │ ├── patcher.py # Chrome binary patcher
|
|
754
|
+
│ │ ├── profiles.py # Browser profile manager
|
|
755
|
+
│ │ ├── fingerprint.py # Fingerprint generator
|
|
756
|
+
│ │ ├── synchronizer.py # Multi-profile sync
|
|
757
|
+
│ │ └── dependencies.py # System dependency checker
|
|
758
|
+
│ ├── proxy/
|
|
759
|
+
│ │ ├── cdp_proxy.py # CDP proxy (recommended)
|
|
760
|
+
│ │ ├── forward_proxy.py # HTTP forward proxy
|
|
761
|
+
│ │ ├── multi_site_proxy.py # Multi-site bundler
|
|
762
|
+
│ │ ├── rotation.py # Proxy rotation
|
|
763
|
+
│ │ └── residential.py # Residential proxy pool
|
|
764
|
+
│ ├── importer/
|
|
765
|
+
│ │ ├── browser_discovery.py # Find browser profiles
|
|
766
|
+
│ │ ├── cookie_extractor.py # Extract cookies from SQLite
|
|
767
|
+
│ │ ├── session_packager.py # Package into .tokenade
|
|
768
|
+
│ │ ├── session_loader.py # Load .tokenade into browser
|
|
769
|
+
│ │ ├── session_refresher.py # Auto-refresh sessions
|
|
770
|
+
│ │ ├── session_sharer.py # Email, webhook, QR codes
|
|
771
|
+
│ │ ├── session_manager.py # Multi-session management
|
|
772
|
+
│ │ ├── competitor_import.py # AdsPower/Multilogin/GoLogin import
|
|
773
|
+
│ │ └── mobile_import.py # Android/iOS import
|
|
774
|
+
│ ├── integration/
|
|
775
|
+
│ │ ├── plugin_loader.py # Plugin auto-discovery
|
|
776
|
+
│ │ ├── plugin_registry.py # Plugin marketplace registry
|
|
777
|
+
│ │ ├── plugin_search.py # TF-IDF search index
|
|
778
|
+
│ │ ├── plugin_browser.py # HTML marketplace generator
|
|
779
|
+
│ │ ├── plugin_verifier.py # SHA256 verification
|
|
780
|
+
│ │ ├── plugin_testing.py # Plugin test runner
|
|
781
|
+
│ │ └── container_orchestrator.py
|
|
782
|
+
│ ├── crypto/
|
|
783
|
+
│ │ ├── encryptor.py # AES-256-GCM encryption
|
|
784
|
+
│ │ └── at_rest.py # Transparent encryption at rest
|
|
785
|
+
│ ├── security/
|
|
786
|
+
│ │ ├── credentials.py # Credential management
|
|
787
|
+
│ │ └── audit.py # Audit logging, RBAC, LDAP
|
|
788
|
+
│ ├── api/
|
|
789
|
+
│ │ └── server.py # REST API server
|
|
790
|
+
│ ├── daemon/
|
|
791
|
+
│ │ └── session_daemon.py # Background refresh daemon
|
|
792
|
+
│ ├── logging/
|
|
793
|
+
│ │ └── structured.py # JSON structured logging
|
|
794
|
+
│ ├── config.py # Config file support
|
|
795
|
+
│ └── utils/
|
|
796
|
+
│ └── performance.py # LRU cache, connection pooling
|
|
797
|
+
├── cli/ # 47 CLI commands
|
|
798
|
+
├── plugin/
|
|
799
|
+
│ └── base.py # Plugin base classes
|
|
800
|
+
├── handlers/ # Site-specific handlers
|
|
801
|
+
├── extension/ # Browser extension
|
|
802
|
+
└── tests/ # large automated suite (~5250 tests; not a quality grade)
|
|
803
|
+
```
|
|
804
|
+
|
|
805
|
+
## Security
|
|
806
|
+
|
|
807
|
+
- Session files contain raw cookies — treat like passwords
|
|
808
|
+
- Use `tokenade encrypt` to encrypt at rest
|
|
809
|
+
- The proxy runs on `127.0.0.1` only (not accessible from network)
|
|
810
|
+
- Cookies are injected into an isolated Playwright browser context
|
|
811
|
+
- SSRF protection blocks private/loopback/link-local IPs
|
|
812
|
+
- HMAC-SHA256 signatures on shared sessions
|
|
813
|
+
- Audit logging tracks all session operations
|
|
814
|
+
- Stealth patches hide automation artifacts from detection
|
|
815
|
+
- Residential proxy support for anonymous session refresh
|
|
816
|
+
|
|
817
|
+
## Documentation
|
|
818
|
+
|
|
819
|
+
- [Use Cases & Competitor Comparison](USE-CASES.md)
|
|
820
|
+
- [Site Configurations](docs/SITE_CONFIGS.md)
|
|
821
|
+
- [Troubleshooting Guide](docs/TROUBLESHOOTING.md)
|
|
822
|
+
- [Tutorials](docs/)
|
|
823
|
+
- [API Reference](docs/API.md)
|
|
824
|
+
- [Architecture](docs/ARCHITECTURE.md)
|
|
825
|
+
- [Security](docs/SECURITY.md)
|
|
826
|
+
- [Competitor Comparison](docs/competitor-comparison.md)
|
|
827
|
+
- [Contributing](docs/CONTRIBUTING.md)
|
|
828
|
+
|
|
829
|
+
## License
|
|
830
|
+
|
|
831
|
+
MIT License
|