



  

<!DOCTYPE html>
<html
  lang="en"
  
  data-color-mode="auto" data-light-theme="light" data-dark-theme="dark"
  data-a11y-animated-images="system" data-a11y-link-underlines="true"
  
  >




  <head>
    <meta charset="utf-8">
  <link rel="dns-prefetch" href="https://github.githubassets.com">
  <link rel="dns-prefetch" href="https://avatars.githubusercontent.com">
  <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
  <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
  <link rel="preconnect" href="https://github.githubassets.com" crossorigin>
  <link rel="preconnect" href="https://avatars.githubusercontent.com">

<script type="importmap">{"imports":{"react":"https://github.githubassets.com/assets/react-e27d1b3e03961e68.js","react-dom":"https://github.githubassets.com/assets/react-dom-e5fd46a22d5c4058.js","react-dom/client":"https://github.githubassets.com/assets/react-dom-client-1b4a3ee065998cea.js","react-is":"https://github.githubassets.com/assets/react-is-e0b593954b4706d8.js","react-reconciler":"https://github.githubassets.com/assets/react-reconciler-8e99e505c4429605.js","react/compiler-runtime":"https://github.githubassets.com/assets/react-compiler-runtime-4610bd6d3de9c049.js","react/jsx-dev-runtime":"https://github.githubassets.com/assets/react-jsx-dev-runtime-ea55d68667d559e5.js","react/jsx-runtime":"https://github.githubassets.com/assets/react-jsx-runtime-4915cb0f5b3aff04.js","scheduler":"https://github.githubassets.com/assets/scheduler-58b860b049ca307c.js"}}</script>
<meta name="react-profiling" content="0" data-turbo-transient="true" />
<meta name="react-import-map" content="react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@777f63f87cd0" data-turbo-track="reload" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-e27d1b3e03961e68.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-compiler-runtime-4610bd6d3de9c049.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/scheduler-58b860b049ca307c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-dom-e5fd46a22d5c4058.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-dom-client-1b4a3ee065998cea.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-is-e0b593954b4706d8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-jsx-runtime-4915cb0f5b3aff04.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-reconciler-8e99e505c4429605.js" />

  


  <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-5c4e9fc574bf49f3.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light_high_contrast-fb37c309e0603a69.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-afff6c53aef9b9d1.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark_high_contrast-c409873d7987dffa.css" /><link data-color-theme="light" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light-5c4e9fc574bf49f3.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-fb37c309e0603a69.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-0f910d8806d5761b.css" /><link data-color-theme="light_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind_high_contrast-a7abd4d4c49ac593.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-5fc4c4a9cb41e596.css" /><link data-color-theme="light_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia_high_contrast-ed0cee9214dedabd.css" /><link data-color-theme="dark" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark-afff6c53aef9b9d1.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-c409873d7987dffa.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-78a2491d538dab5a.css" /><link data-color-theme="dark_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind_high_contrast-c26b63d7c532d0a2.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-a6f60cea68c08405.css" /><link data-color-theme="dark_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia_high_contrast-f66faf28b2ea18b6.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-6701f6218c53cf5b.css" /><link data-color-theme="dark_dimmed_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed_high_contrast-7037fa46ae124d97.css" />

  <style type="text/css">
    :root {
      --tab-size-preference: 4;
    }

    pre, code {
      tab-size: var(--tab-size-preference);
    }
  </style>

    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-97df7784617ce1ea.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-9be9fe6313f476af.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-62747e27e61258dc.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-b04ca6fccda778e2.css" />
  <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/repository-72bd7d974b5ac1cc.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-4c5c0895f723f870.css" />

  

  <script type="application/json" id="client-env">{"locale":"en","featureFlags":["actions_caches_react_shell","actions_enable_background_steps","actions_new_hosted_runner_image_select_sizes_and_versions","actions_runners_react_shell","agent_author_search_expansion","agent_author_search_expansion_ui_pulls","alternate_user_config_repo","async_conversion_coverage_enabled","billing_billable_licenses_cost_center_bucket_fix","billing_budget_expiration","billing_cost_center_list_assigned_resources","billing_discount_threshold_notification","code_quality_enablement_banner_targeting","code_quality_remove_preview","code_view_raf_sticky_lines","codespaces_prebuild_region_target_update","coding_agent_third_party_model_ui","copilot_agent_snippy","copilot_ahp_tool_call_timing","copilot_api_agentic_issue_marshal_yaml","copilot_automation_repo_mcp_servers","copilot_automations_pagination","copilot_base_model_policy_row","copilot_chat_auto_mode_v2","copilot_chat_clear_model_selection_for_default_change","copilot_chat_early_task_provisioning","copilot_chat_persist_session_drafts","copilot_chat_vision_dotcom_chat_ga_gate","copilot_css_textarea_autosize","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_removal_on_marketplace","copilot_fix_failed_workflows_all_skus","copilot_hide_hovercard","copilot_immersive_task_hyperlinking","copilot_mc_cli_resume_any_users_task","copilot_mission_control_agent_merge_fix_ci","copilot_mission_control_agent_merge_resolve_conflicts","copilot_mission_control_awps_batching","copilot_mission_control_early_stop","copilot_mission_control_managed_sandbox_environments","copilot_mission_control_needs_attention","copilot_mission_control_reasoning_effort","copilot_mission_control_sandbox_remote_bypass","copilot_mission_control_task_alive_updates","copilot_mission_control_task_sharing","copilot_org_policy_page_focus_mode","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_swe_agent_authorization_status_ui","copilot_swe_agent_automation_resource_scoped_writes","copilot_swe_agent_discussion_comment_trigger","copilot_swe_agent_discussion_opened_trigger","copilot_swe_agent_discussion_updated_trigger","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_issue_assigned_trigger","copilot_swe_agent_issue_comment_trigger","copilot_swe_agent_issue_labeled_trigger","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_pull_request_assigned_trigger","copilot_swe_agent_pull_request_comment_trigger","copilot_swe_agent_pull_request_labeled_trigger","copilot_swe_agent_pull_request_merged_trigger","copilot_swe_agent_pull_request_opened_trigger","copilot_swe_agent_pull_request_ready_for_review_trigger","copilot_swe_agent_pull_request_review_requested_trigger","copilot_swe_agent_pull_request_review_submitted_trigger","copilot_swe_agent_pull_request_synchronize_trigger","copilot_swe_agent_sub_issue_added_trigger","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_task_scoped_alive_channel","copilot_token_based_billing","copilot_unconfigured_is_inherited","copilot_user_can_upgrade_plan_field","copilot_web_integration_cutover","copilot_workbench_sunset_redirect","dashboard_agents_module_auth_token_check","dashboard_indexeddb_caching","fgpat_permissions_selector_redesign","glc_code_quality_repo_settings_workflow_config","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","in_product_messaging_datadog_monitoring","ipm_ubb_individual_budget_banner","issue_fields_multi_select","issue_inline_avatars","issue_pinned_views","issue_pinned_views_team_vs_personal","issue_relative_time_micro","issue_viewer_paved_path","issues_expanded_file_types","issues_hide_closed_sub_issues","issues_lazy_load_comment_box_suggestions","issues_react_chrome_container_query_fix","labels_archiving","labels_archiving_info","landing_pages_ninetailed","lifecycle_label_name_updates","marketing_cookie_consent_banner","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","memex_remove_deprecated_type_issue","merge_queue_restricted_pushers_warning","merge_status_header_feedback","milestone_closed_issues_prioritization","octocaptcha_origin_optimization","primer_react_css_anchor_positioning","primer_react_merged_forwarded_refs","primer_react_timeline_list_semantics","prs_copilot_app_open_action","prs_css_anchor_positioning","pull_request_copilot_attribution_header","pull_request_overview_merge_control","pull_request_overview_panel_edit_description","pull_request_persister","pull_request_stacks_navigation_shortcuts","pull_request_virtualization_image_estimate","pull_request_virtualization_loader_batching","pull_request_virtualization_scroll_compensation","pull_request_virtualization_scroll_intent","quick_search_lazy_suggestions","react_blob_isolate_code_lines","react_blob_ssr_content_visibility","react_data_router_tanstack_allowed","react_logged_out_repository_header","react_query_props_with_key","react_sandbox_future_tanstack","repo_app_turbo","repo_issues_sidebar_layout","repo_pulls_dashboard_declutter","repo_pulls_dashboard_ga","repo_pulls_dashboard_persistence","repos_contributors_limited_default_range","review_involves_filter","rule_ignored_file_paths","rulesets_actor_list_editor","sample_network_conn_type","security_center_artifact_filters_popover","see_who_reacted","semantic_similarity_duplicate_issue_detection","session_logs_ungroup_reasoning_text","set_sha256_on_repo_creation_form","site_banner_desktop_copilot_app","site_ghca_pixel_mona","site_github_app_ga_page","site_github_app_ga_page_highlight","site_github_app_mobile_native_share","site_global_banner_dev_days_attendee","site_global_nav_spark_models_removed","speculation_rules_ui_service","suggest_custom_property_values_copilot","suppress_automated_browser_vitals","swp_forms_disable_octocaptcha","thread_resolution_reason","update_issue_suggestions","viewscreen_sandbox","warn_inaccessible_attachments","webp_support","workstream_plugin_bootstrap"],"githubDomain":"https://github.com","copilotApiOverrideUrl":"https://api.githubcopilot.com","cmcApiUrl":"https://api.github.com/cmc_internal/api"}</script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/high-contrast-cookie-3663bcaacc724f4c.js"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wp-runtime-721126455a2225e3.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-foundation-156c6259e31cc551.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-runtime-f6ce38f47c2e1d56.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fetch-utilities-804a14996977c014.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ser-fb5d13278eb42203.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tp-ea613009a991e211.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/environment-107a7753389a8a2d.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/app-runtime.25915bc98fb322a6.module.css" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/catalyst-52ed81112a548e10.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/selector-observer-e8810f64c443fb9b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/relative-time-element-fe7e72f699fdf493.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/by-9da36843ba9d191d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ja9-9a1160b939f2cd52.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/3h-55903cf2303047ad.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hk-0d35a1220587d888.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/jz5-c964b1a3671f2a92.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hj-1d800d09e9a8720a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j0-1ad12374da9777f2.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/github-elements-531d35538b61fd0d.js" defer="defer"></script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/element-registry-bf5e3b2aee197122.js" defer="defer"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/runtime-helpers-5e0b3ae3c4036207.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/aria-live-752acdc868e2da64.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hotkey-e87ffadced20a3c9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-core-75bc55d9971828b7.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/a9-34620c7b13885011.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ur-643d2814115561a9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4t6-5d0869970ac0aac0.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/pb0-a5c5ec36d311aeef.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/6n-afcf86ccabc4cad2.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/zj-f08c728cf00018aa.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/o6-2a1c68d269710ee9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/h9a-c6405aa090de0e84.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/vy6-3c3e6e96629c2ce4.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/js-4eb97d5803e657c0.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/g7-baf9e817ae102b01.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/unc-96389cade7bad821.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/nu-65322a6997c6c93c.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/behaviors-5dd3809b5c8bac3c.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/react-core.3792087592bf207a.module.css" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/code-menu-4318f0f4c608f3dd.js" defer="defer"></script>
  
  <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/primer-react-7afef75d393cf294.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/op-acddf38478d45ef9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ncx-461e4b09f2e67ee5.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/qmp-c7cfba40cf5a93b0.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j6-148a74299e5a01ab.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/t7l-a52ba56147f77909.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4u-ec4874f70bfd5d76.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/s0-481bd34f90bc2bd7.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/y5-ed17e73b4c0bd15e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/n4-be595475cdbf7d4b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j8-23a3c5ff8eef412d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/la-27679061f16e1495.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/iu-9806a0291a782cbe.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ftx-39fb490e3c1d778f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/zi-32a0c3c081ea5cce.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/sg-7a5d50475874c0e1.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/pd-6a8710840033e042.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/86g-ec28c25ed7d5de06.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/sn-1bab7384818953b7.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/iq-6d4ecf6d2fb6993c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/p2-7d8e7cee5b46cb45.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/7d-2e3cc25d719f3a95.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4d-76d8acdf21a33266.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tsb-e0f6288ab985d9d2.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/lf-910ef220ce85c660.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/2j-2f19c1afd2ceaf93.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/me-f1476ec44a29f34a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/p2u-e654a57b1a70c47d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/5d-d97cc006d4da4d9b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/r5-38f013bc2c0fd298.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/r6s-9039f5619230a653.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/9e-cece06724bf6ea3b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/x9-3e077a3a37a73f9f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/pj-87629cb5389d7663.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/eq-3764fd5f66494289.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/13-d889936dff7e5c0f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/44-8193eea4af825ead.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/v4-9c1327d212e52a0d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/id-7f39706ba9007db6.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ah-271362a1ed227d03.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/s1g-d434d712bca59d3a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/vz-d7f4a583896f872e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/47-c8c0ce2700acc5be.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/code-view-4118a687d0150749.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.2d881b4d4a503d1c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/pj.75627bfeb9ceb1da.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/ah.2623f7c6ecbe2ecd.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/47.78770c57a48a810c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-view.37656c95a9729fb9.module.css" />


  <title>cortex/docs/CLI-REFERENCE.md at v2.4.11 · lleontor705/cortex · GitHub</title>



  <meta name="route-pattern" content="/:user_id/:repository/blob/*name(/*path)" data-turbo-transient>
  <meta name="route-controller" content="blob" data-turbo-transient>
  <meta name="route-action" content="show" data-turbo-transient>
  <meta name="fetch-nonce" content="v2:3fd4d3bd-1449-e51a-7d62-3b4b3c26d1d1">

    
  <meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb">


  <meta name="request-id" content="A940:3B874F:B0C59FD:E67BB84:6ACA691E" data-pjax-transient="true"/><meta name="html-safe-nonce" content="088ee1d05fde2f4015dce35f328a0cceb1cfbaee60cb086f20da122f8dc1aec0" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBOTQwOjNCODc0RjpCMEM1OUZEOkU2N0JCODQ6NkFDQTY5MUUiLCJ2aXNpdG9yX2lkIjoiMzMzMDQ2NjMwOTEwODAzMzgyMiIsInJlZ2lvbl9lZGdlIjoiZnJhIiwicmVnaW9uX3JlbmRlciI6ImZyYSJ9" data-pjax-transient="true"/><meta name="visitor-hmac" content="0a2a6729568c61e897b14943874b76ec591a59abbc2bbeba077178c257f6f184" data-pjax-transient="true"/>


    <meta name="hovercard-subject-tag" content="repository:1194305059" data-turbo-transient>


  <meta name="github-keyboard-shortcuts" content="repository,source-code,file-tree,copilot" data-turbo-transient="true" />
  

  <meta name="selected-link" value="repo_source" data-turbo-transient>
  <link rel="assets" href="https://github.githubassets.com/">

    <meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I">

<meta name="octolytics-url" content="https://collector.github.com/github/collect" />





  <meta name="analytics-location" content="/&lt;user-name&gt;/&lt;repo-name&gt;/blob/show" data-turbo-transient="true" />

  




    <meta name="user-login" content="">

  

    <meta name="viewport" content="width=device-width">

    

      <meta name="description" content="Persistent memory for AI coding agents — knowledge graph, importance scoring, vector search - cortex/docs/CLI-REFERENCE.md at v2.4.11 · lleontor705/cortex">

      <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">

    <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
    <meta property="fb:app_id" content="1401488693436528">
    <meta name="apple-itunes-app" content="app-id=1477376905, app-argument=https://github.com/lleontor705/cortex/blob/v2.4.11/docs/CLI-REFERENCE.md" />

      <meta name="twitter:image" content="https://opengraph.githubassets.com/bf83891de75465647838d251cf8cca49442ec4b65bed336e97def45bbe82c029/lleontor705/cortex" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="cortex/docs/CLI-REFERENCE.md at v2.4.11 · lleontor705/cortex" /><meta name="twitter:description" content="Persistent memory for AI coding agents — knowledge graph, importance scoring, vector search - lleontor705/cortex" />
  <meta property="og:image" content="https://opengraph.githubassets.com/bf83891de75465647838d251cf8cca49442ec4b65bed336e97def45bbe82c029/lleontor705/cortex" /><meta property="og:image:alt" content="Persistent memory for AI coding agents — knowledge graph, importance scoring, vector search - lleontor705/cortex" /><meta property="og:image:width" content="1200" /><meta property="og:image:height" content="600" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="cortex/docs/CLI-REFERENCE.md at v2.4.11 · lleontor705/cortex" /><meta property="og:url" content="https://github.com/lleontor705/cortex/blob/v2.4.11/docs/CLI-REFERENCE.md" /><meta property="og:description" content="Persistent memory for AI coding agents — knowledge graph, importance scoring, vector search - lleontor705/cortex" />
  




      <meta name="hostname" content="github.com">



        <meta name="expected-hostname" content="github.com">


  <meta http-equiv="x-pjax-version" content="d05be8f8b6905b6460fc264e80447721dfee1e32cf9e4291c4bf58f160c9f705" data-turbo-track="reload">
  <meta http-equiv="x-pjax-csp-version" content="c4a65e47b0c850e1157ae8e66298070851d7e3b558038de5a3b4ff7a93e630ed" data-turbo-track="reload">
  <meta http-equiv="x-pjax-css-version" content="a80b0545b169f440b929ce2b977c76b6988f014cca6513fb83c5df6581635fb3" data-turbo-track="reload">
  <meta http-equiv="x-pjax-js-version" content="af51c6f9d659be0324665373df3ee542f817dbd7f66f352a087935f2ceabe545" data-turbo-track="reload">

  <meta name="turbo-cache-control" content="no-preview" data-turbo-transient="">

      <meta name="turbo-cache-control" content="no-cache" data-turbo-transient>

    <meta data-hydrostats="publish">

  <meta name="go-import" content="github.com/lleontor705/cortex git https://github.com/lleontor705/cortex.git">

  <meta name="octolytics-dimension-user_id" content="14917127" /><meta name="octolytics-dimension-user_login" content="lleontor705" /><meta name="octolytics-dimension-repository_id" content="1194305059" /><meta name="octolytics-dimension-repository_nwo" content="lleontor705/cortex" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="1194305059" /><meta name="octolytics-dimension-repository_network_root_nwo" content="lleontor705/cortex" />
  



    

    <meta name="turbo-body-classes" content="logged-out env-production page-responsive">
  <meta name="disable-turbo" content="false">


  <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">


  <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">

  <meta name="release" content="3b1bb5b10f5c7fd1769d56e38b15dfddb34052a8" data-turbo-track="reload">
  <meta name="ui-target" content="full">

  <link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000">
  <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png">
  <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg" data-base-href="https://github.githubassets.com/favicons/favicon">

<meta name="theme-color" content="#1e2327">
<meta name="color-scheme" content="light dark" />


  <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">

  </head>

  <body class="logged-out env-production page-responsive" style="word-wrap: break-word;" >
    <div data-turbo-body class="logged-out env-production page-responsive" style="word-wrap: break-word;" >
      <div id="__primerPortalRoot__" style="z-index: 1000; position: absolute; width: 100%;" data-turbo-permanent></div>
      

    <div class="position-relative header-wrapper js-header-wrapper ">
      <a href="#start-of-content" data-skip-target-assigned="false" class="px-2 tmp-py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a>

      <span data-view-component="true" class="progress-pjax-loader Progress position-fixed width-full">
    <span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span>
</span>      
      <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/19-c660652a0a1639be.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog-47c5223d8d1af8ef.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.2d881b4d4a503d1c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog.d53d993320d57e14.module.css" />

<react-partial
  partial-name="keyboard-shortcuts-dialog"
  data-ssr="false"
  data-attempted-ssr="false"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"docsUrl":"https://docs.github.com/get-started/accessibility/keyboard-shortcuts"}}</script>
  <div data-target="react-partial.reactRoot"></div>
</react-partial>





      

          <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-install-banner-partial-3c87deb7f0f20434.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.2d881b4d4a503d1c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/app-install-banner-partial.7b357012e82003e7.module.css" />

<react-partial
  partial-name="app-install-banner-partial"
  data-ssr="false"
  data-attempted-ssr="false"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{}}</script>
  <div data-target="react-partial.reactRoot"></div>
</react-partial>


          

                <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/et9-7eeec247c287fca4.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/94v-e20946127faa8f6e.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fz5-892a9e99cc92858d.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/jag-441e702bfd4c7904.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hw-8ce7888b57d0a23c.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/rq-0ec82a12cf538a4d.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/1m-a7a4c022483b2713.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/marketing-header-70703fe17422eb58.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.2d881b4d4a503d1c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-brand-css.fbc35b3d20e988ff.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/1m.fec8b575d0e5234f.module.css" />

<react-partial
  partial-name="marketing-header"
  data-ssr="true"
  data-attempted-ssr="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"color_mode":"dark","logged_in":false,"marketing_page":false,"home_path":"/","login_path":"/login?return_to=https%3A%2F%2Fgithub.com%2Flleontor705%2Fcortex%2Fblob%2Fv2.4.11%2Fdocs%2FCLI-REFERENCE.md","signup_path":"/signup?ref_cta=Sign+up\u0026ref_loc=header+logged+out\u0026ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow\u0026source=header-repo\u0026source_repo=lleontor705%2Fcortex","signup_enabled":true,"is_signup_controller":false,"show_search_and_nav":true,"hide_search":false,"private_mode_enabled":false,"should_use_dotcom_links":true,"auth_hydro_click":"{\"event_type\":\"authentication.click\",\"payload\":{\"location_in_page\":\"site header menu\",\"repository_id\":null,\"auth_type\":\"SIGN_UP\",\"originating_url\":\"https://github.com/lleontor705/cortex/blob/v2.4.11/docs/CLI-REFERENCE.md\",\"user_id\":null}}","auth_hydro_click_hmac":"1438f396ea753f1787babeaef3f74d5e31f9adf58f7f1c4fd8e47ed8c28e33a0","overlay":false,"fixed":false}}</script>
  <div data-target="react-partial.reactRoot"><div data-color-mode="dark" data-light-theme="light" data-dark-theme="dark"><header class="MarketingHeader-module__root__Tk7n3 HeaderMktg header-logged-out" role="banner" data-marketing-header="true" data-color-mode="dark" data-light-theme="light" data-dark-theme="dark" data-is-top="true"><h2 class="MarketingHeader-module__visuallyHidden__sqKsl">Navigation Menu</h2><button type="button" class="MarketingHeader-module__backdrop__sw4RU" aria-label="Close navigation menu"></button><div class="MarketingHeader-module__bar__mBSyE"><div class="MarketingHeader-module__topRow__yeury"><div class="MarketingHeader-module__toggleSlot__hDxbh"><button type="button" class="HeaderMenuToggle-module__toggle__i8EiC" aria-label="Toggle navigation" aria-expanded="false"><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span></button></div><a href="/" aria-label="Homepage" class="HeaderLogo-module__logo__UFyHI" data-analytics-event="{&quot;action&quot;:&quot;homepage&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;logo&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;homepage_link_logo_header&quot;}"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mark-github" viewBox="0 0 24 24" width="32" height="32" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943"></path></svg></a><div class="AuthCTAs-module__mobileActions__NNzeV"><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq" href="/login?return_to=https%3A%2F%2Fgithub.com%2Flleontor705%2Fcortex%2Fblob%2Fv2.4.11%2Fdocs%2FCLI-REFERENCE.md" data-analytics-event="{&quot;action&quot;:&quot;sign_in&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_in_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/lleontor705/cortex/blob/v2.4.11/docs/CLI-REFERENCE.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="1438f396ea753f1787babeaef3f74d5e31f9adf58f7f1c4fd8e47ed8c28e33a0"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH">Sign in</span></span></a><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderAppearanceSettings-module__trigger__hUheK" type="button" aria-haspopup="dialog" aria-labelledby="_R_3dd_"><span class="Primer_Brand__Button-module__Button__leading-visual___jjtTe" data-testid="Button-leading-visual"><svg data-component="Octicon" focusable="false" aria-hidden="true" class="octicon octicon-sliders Primer_Brand__Button-module__Button__icon-visual____qybb" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path></svg></span><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"></span></span></button><div class="Primer_Brand__Tooltip-module__Tooltip___0Eipx" data-direction="s" aria-hidden="true" id="_R_3dd_">Appearance settings</div></div></div><div class="MarketingHeader-module__menu__GIy3y"><div class="MarketingHeader-module__menuWrapper__owstH"><nav class="MarketingNavigation-module__nav__W0KYY" aria-label="Global"><ul class="MarketingNavigation-module__list__tFbMb"><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_nd_">Platform<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5knd_">AI CODE CREATION</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5knd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/copilot" data-analytics-event="{&quot;action&quot;:&quot;github_copilot&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_copilot_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copilot NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path></svg>GitHub Copilot</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Write better code with AI</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/ai/github-app" data-analytics-event="{&quot;action&quot;:&quot;github_copilot_app&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_copilot_app_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mark-github NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M6.766 11.328c-2.063-.25-3.516-1.734-3.516-3.656 0-.781.281-1.625.75-2.188-.203-.515-.172-1.609.063-2.062.625-.078 1.468.25 1.968.703.594-.187 1.219-.281 1.985-.281.765 0 1.39.094 1.953.265.484-.437 1.344-.765 1.969-.687.218.422.25 1.515.046 2.047.5.593.766 1.39.766 2.203 0 1.922-1.453 3.375-3.547 3.64.531.344.89 1.094.89 1.954v1.625c0 .468.391.734.86.547C13.781 14.359 16 11.53 16 8.03 16 3.61 12.406 0 7.984 0 3.563 0 0 3.61 0 8.031a7.88 7.88 0 0 0 5.172 7.422c.422.156.828-.125.828-.547v-1.25c-.219.094-.5.156-.75.156-1.031 0-1.64-.562-2.078-1.609-.172-.422-.36-.672-.719-.719-.187-.015-.25-.093-.25-.187 0-.188.313-.328.625-.328.453 0 .844.281 1.25.86.313.452.64.655 1.031.655s.641-.14 1-.5c.266-.265.47-.5.657-.656"></path></svg>GitHub Copilot app</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Direct agents from issue to merge</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/mcp" data-analytics-event="{&quot;action&quot;:&quot;mcp_registry&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;mcp_registry_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mcp NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M5.52 1.12a3.578 3.578 0 0 1 6.078 2.98 3.578 3.578 0 0 1 2.982 6.08l-3.292 3.293a.252.252 0 0 0 0 .354l.843.843a.749.749 0 1 1-1.06 1.06l-.844-.843a1.75 1.75 0 0 1 0-2.474L13.52 9.12a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0L7.731 9.03A.75.75 0 0 1 6.67 7.97l2.85-2.85a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0l-4.799 4.8A.75.75 0 0 1 .72 5.92Z"></path><path d="M7.52 3.12a.749.749 0 1 1 1.06 1.06L5.731 7.03A2.079 2.079 0 0 0 8.67 9.97l2.85-2.85a.749.749 0 1 1 1.06 1.06l-2.849 2.85A3.578 3.578 0 0 1 4.67 5.97Z"></path></svg>MCP Registry</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Integrate external tools</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9knd_">DEVELOPER WORKFLOWS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9knd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/actions" data-analytics-event="{&quot;action&quot;:&quot;actions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;actions_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-workflow NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h3.5C6.216 0 7 .784 7 1.75v3.5A1.75 1.75 0 0 1 5.25 7H4v4a1 1 0 0 0 1 1h4v-1.25C9 9.784 9.784 9 10.75 9h3.5c.966 0 1.75.784 1.75 1.75v3.5A1.75 1.75 0 0 1 14.25 16h-3.5A1.75 1.75 0 0 1 9 14.25v-.75H5A2.5 2.5 0 0 1 2.5 11V7h-.75A1.75 1.75 0 0 1 0 5.25Zm1.75-.25a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Zm9 9a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Z"></path></svg>Actions</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Automate any workflow</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/codespaces" data-analytics-event="{&quot;action&quot;:&quot;codespaces&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;codespaces_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-codespaces NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm2-9.5C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 0 1-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 6.75Zm1.75-.25a.25.25 0 0 0-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5a.25.25 0 0 0-.25-.25Zm-2 9.5a.25.25 0 0 0-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-3a.25.25 0 0 0-.25-.25Z"></path><path d="M7 12.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path></svg>Codespaces</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Instant dev environments</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/issues" data-analytics-event="{&quot;action&quot;:&quot;issues&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;issues_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-issue-opened NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path></svg>Issues</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Plan and track work</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/code-review" data-analytics-event="{&quot;action&quot;:&quot;code_review&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_review_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg>Code Review</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Manage code changes</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/code-quality" data-analytics-event="{&quot;action&quot;:&quot;code_quality&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_quality_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-codescan-checkmark NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.28 6.28a.75.75 0 1 0-1.06-1.06L6.25 8.19l-.97-.97a.75.75 0 0 0-1.06 1.06l1.5 1.5a.75.75 0 0 0 1.06 0l3.5-3.5Z"></path><path d="M7.5 15a7.5 7.5 0 1 1 5.807-2.754l2.473 2.474a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2.474-2.473A7.472 7.472 0 0 1 7.5 15Zm0-13.5a6 6 0 1 0 4.094 10.386.748.748 0 0 1 .293-.292 6.002 6.002 0 0 0 1.117-6.486A6.002 6.002 0 0 0 7.5 1.5Z"></path></svg>Code Quality</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enforce quality at merge</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dknd_">APPLICATION SECURITY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dknd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security" data-analytics-event="{&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_advanced_security_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield-check NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>GitHub Advanced Security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Find and fix vulnerabilities</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security/code-security" data-analytics-event="{&quot;action&quot;:&quot;code_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_security_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code-square NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>Code security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Secure your code as you build</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security/secret-protection" data-analytics-event="{&quot;action&quot;:&quot;secret_protection&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;secret_protection_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-lock NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M4 4a4 4 0 0 1 8 0v2h.25c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 12.25 15h-8.5A1.75 1.75 0 0 1 2 13.25v-5.5C2 6.784 2.784 6 3.75 6H4Zm8.25 3.5h-8.5a.25.25 0 0 0-.25.25v5.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25ZM10.5 6V4a2.5 2.5 0 1 0-5 0v2Z"></path></svg>Secret protection</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Stop leaks before they start</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ NavGroup-module__hasSeparator__FnMrN"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_hknd_">EXPLORE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_hknd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/why-github" data-analytics-event="{&quot;action&quot;:&quot;why_github&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;why_github_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Why GitHub</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://docs.github.com" data-analytics-event="{&quot;action&quot;:&quot;documentation&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;documentation_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Documentation</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://github.blog" data-analytics-event="{&quot;action&quot;:&quot;blog&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;blog_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Blog</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://github.blog/changelog" data-analytics-event="{&quot;action&quot;:&quot;changelog&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;changelog_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Changelog</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/marketplace" data-analytics-event="{&quot;action&quot;:&quot;marketplace&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;marketplace_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Marketplace</span></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/features" data-analytics-event="{&quot;action&quot;:&quot;view_all_features&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_features_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all features</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_17d_">Solutions<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_17d_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5l7d_">BY COMPANY SIZE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5l7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/enterprise" data-analytics-event="{&quot;action&quot;:&quot;enterprises&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;enterprises_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Enterprises</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/team" data-analytics-event="{&quot;action&quot;:&quot;small_and_medium_teams&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;small_and_medium_teams_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Small and medium teams</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/enterprise/startups" data-analytics-event="{&quot;action&quot;:&quot;startups&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;startups_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Startups</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/nonprofits" data-analytics-event="{&quot;action&quot;:&quot;nonprofits&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;nonprofits_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Nonprofits</span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9l7d_">BY USE CASE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9l7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/app-modernization" data-analytics-event="{&quot;action&quot;:&quot;app_modernization&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;app_modernization_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">App Modernization</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/devsecops" data-analytics-event="{&quot;action&quot;:&quot;devsecops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devsecops_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevSecOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/devops" data-analytics-event="{&quot;action&quot;:&quot;devops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devops_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/ci-cd" data-analytics-event="{&quot;action&quot;:&quot;ci/cd&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ci/cd_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">CI/CD</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions/use-case" data-analytics-event="{&quot;action&quot;:&quot;view_all_use_cases&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_use_cases_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all use cases</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dl7d_">BY INDUSTRY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dl7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/healthcare" data-analytics-event="{&quot;action&quot;:&quot;healthcare&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;healthcare_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Healthcare</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/financial-services" data-analytics-event="{&quot;action&quot;:&quot;financial_services&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;financial_services_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Financial services</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/manufacturing" data-analytics-event="{&quot;action&quot;:&quot;manufacturing&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;manufacturing_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Manufacturing</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/government" data-analytics-event="{&quot;action&quot;:&quot;government&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;government_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Government</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions/industry" data-analytics-event="{&quot;action&quot;:&quot;view_all_industries&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_industries_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all industries</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions" data-analytics-event="{&quot;action&quot;:&quot;view_all_solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_solutions_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all solutions</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_1nd_">Resources<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_1nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5lnd_">EXPLORE BY TOPIC</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5lnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=ai" data-analytics-event="{&quot;action&quot;:&quot;ai&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ai_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">AI</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=software-development" data-analytics-event="{&quot;action&quot;:&quot;software_development&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;software_development_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Software Development</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=devops" data-analytics-event="{&quot;action&quot;:&quot;devops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devops_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=security" data-analytics-event="{&quot;action&quot;:&quot;security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;security_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Security</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/resources/articles" data-analytics-event="{&quot;action&quot;:&quot;view_all_topics&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_topics_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all topics</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9lnd_">EXPLORE BY TYPE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9lnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/customer-stories" data-analytics-event="{&quot;action&quot;:&quot;customer_stories&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;customer_stories_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Customer stories</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/events" data-analytics-event="{&quot;action&quot;:&quot;events__webinars&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;events__webinars_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Events &amp; webinars</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/whitepapers" data-analytics-event="{&quot;action&quot;:&quot;ebooks__reports&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ebooks__reports_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Ebooks &amp; reports</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/executive-insights" data-analytics-event="{&quot;action&quot;:&quot;business_insights&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;business_insights_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Business insights</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://skills.github.com" data-analytics-event="{&quot;action&quot;:&quot;github_skills&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_skills_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Skills</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dlnd_">SUPPORT &amp; SERVICES</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dlnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://docs.github.com" data-analytics-event="{&quot;action&quot;:&quot;documentation&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;documentation_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Documentation</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://support.github.com" data-analytics-event="{&quot;action&quot;:&quot;customer_support&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;customer_support_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Customer support</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/orgs/community/discussions" data-analytics-event="{&quot;action&quot;:&quot;community_forum&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;community_forum_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Community forum</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/trust-center" data-analytics-event="{&quot;action&quot;:&quot;trust_center&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;trust_center_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Trust center</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/partners" data-analytics-event="{&quot;action&quot;:&quot;partners&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;partners_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Partners</span></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/resources" data-analytics-event="{&quot;action&quot;:&quot;view_all_resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_resources_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all resources</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_27d_">Open Source<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_27d_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5m7d_">COMMUNITY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5m7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/open-source/sponsors" data-analytics-event="{&quot;action&quot;:&quot;github_sponsors&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_sponsors_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-sponsor-tiers NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.586 1C12.268 1 13.5 2.37 13.5 4.25c0 1.745-.996 3.359-2.622 4.831-.166.15-.336.297-.509.438l1.116 5.584a.75.75 0 0 1-.991.852l-2.409-.876a.25.25 0 0 0-.17 0l-2.409.876a.75.75 0 0 1-.991-.852L5.63 9.519a13.78 13.78 0 0 1-.51-.438C3.497 7.609 2.5 5.995 2.5 4.25 2.5 2.37 3.732 1 5.414 1c.963 0 1.843.403 2.474 1.073L8 2.198l.112-.125a3.385 3.385 0 0 1 2.283-1.068L10.586 1Zm-3.621 9.495-.718 3.594 1.155-.42a1.75 1.75 0 0 1 1.028-.051l.168.051 1.154.42-.718-3.592c-.199.13-.37.235-.505.314l-.169.097a.75.75 0 0 1-.72 0 9.54 9.54 0 0 1-.515-.308l-.16-.105ZM10.586 2.5c-.863 0-1.611.58-1.866 1.459-.209.721-1.231.721-1.44 0C7.025 3.08 6.277 2.5 5.414 2.5 4.598 2.5 4 3.165 4 4.25c0 1.23.786 2.504 2.128 3.719.49.443 1.018.846 1.546 1.198l.325.21.076-.047.251-.163a13.341 13.341 0 0 0 1.546-1.198C11.214 6.754 12 5.479 12 4.25c0-1.085-.598-1.75-1.414-1.75Z"></path></svg>GitHub Sponsors</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Fund open source developers</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9m7d_">PROGRAMS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9m7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://securitylab.github.com" data-analytics-event="{&quot;action&quot;:&quot;security_lab&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;security_lab_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Security Lab</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://maintainers.github.com" data-analytics-event="{&quot;action&quot;:&quot;maintainer_community&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;maintainer_community_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Maintainer Community</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://stars.github.com" data-analytics-event="{&quot;action&quot;:&quot;github_stars&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_stars_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Stars</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://archiveprogram.github.com" data-analytics-event="{&quot;action&quot;:&quot;archive_program&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;archive_program_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Archive Program</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dm7d_">REPOSITORIES</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dm7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/topics" data-analytics-event="{&quot;action&quot;:&quot;topics&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;topics_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Topics</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/trending" data-analytics-event="{&quot;action&quot;:&quot;trending&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;trending_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Trending</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/collections" data-analytics-event="{&quot;action&quot;:&quot;collections&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;collections_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Collections</span></a></li></ul></div></li></ul></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_2nd_">Enterprise<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_2nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5mnd_">ENTERPRISE SOLUTIONS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5mnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/enterprise" data-analytics-event="{&quot;action&quot;:&quot;enterprise_platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;enterprise_platform_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-stack NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.122.392a1.75 1.75 0 0 1 1.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 0 1-1.756 0L2.119 5.456a1.251 1.251 0 0 1 0-2.162ZM8.125 1.69a.248.248 0 0 0-.25 0l-4.63 2.685 4.63 2.685a.248.248 0 0 0 .25 0l4.63-2.685ZM1.601 7.789a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0L1.874 8.814A.75.75 0 0 1 1.6 7.789Zm0 3.5a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0l-5.248-3.044a.75.75 0 0 1-.273-1.025Z"></path></svg>Enterprise platform</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">AI-powered developer platform</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9mnd_">AVAILABLE ADD-ONS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9mnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security" data-analytics-event="{&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_advanced_security_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield-check NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>GitHub Advanced Security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade security features</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/copilot/copilot-business" data-analytics-event="{&quot;action&quot;:&quot;copilot_for_business&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;copilot_for_business_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copilot NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path></svg>Copilot for Business</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade AI features</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/enterprise/premium-support" data-analytics-event="{&quot;action&quot;:&quot;premium_support&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;premium_support_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-comment-discussion NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path></svg>Premium Support</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade 24/7 support</span></span></a></li></ul></div></li></ul></div></div></li><li><a href="https://github.com/pricing" data-analytics-event="{&quot;action&quot;:&quot;pricing&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;pricing&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;pricing_link_pricing_navbar&quot;}" class="MarketingNavigation-module__navLink__hUomM">Pricing</a></li></ul></nav><div class="MarketingHeader-module__ctaContainer__tBmPz"><div class="HeaderSearch-module__searchSlot__oVOUS"><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderSearch-module__trigger__zsF9q" type="button" aria-haspopup="dialog" aria-expanded="false" aria-label="Search or jump to, type / to search" data-analytics-event="{&quot;action&quot;:&quot;searchbar&quot;,&quot;tag&quot;:&quot;input&quot;,&quot;context&quot;:&quot;global&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;searchbar_input_global_navbar&quot;}"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"><span class="HeaderSearch-module__content__kMpxU"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-search HeaderSearch-module__icon__wcrHX" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg><span class="HeaderSearch-module__label__d1iWG">Search</span><kbd class="HeaderSearch-module__kbd__HNG0o" aria-hidden="true">/</kbd></span></span></span></button><div class="d-none"></div></div><div class="AuthCTAs-module__signInWrap__q2P60"><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq AuthCTAs-module__desktopActionGap__UZuXT AuthCTAs-module__hiddenBelowLg__BfKBw" href="/login?return_to=https%3A%2F%2Fgithub.com%2Flleontor705%2Fcortex%2Fblob%2Fv2.4.11%2Fdocs%2FCLI-REFERENCE.md" data-analytics-event="{&quot;action&quot;:&quot;sign_in&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_in_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/lleontor705/cortex/blob/v2.4.11/docs/CLI-REFERENCE.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="1438f396ea753f1787babeaef3f74d5e31f9adf58f7f1c4fd8e47ed8c28e33a0"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH">Sign in</span></span></a></div><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--secondary___gHnw_ Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq" href="/signup?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow&amp;source=header-repo&amp;source_repo=lleontor705%2Fcortex" data-analytics-event="{&quot;action&quot;:&quot;sign_up&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_up_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/lleontor705/cortex/blob/v2.4.11/docs/CLI-REFERENCE.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="1438f396ea753f1787babeaef3f74d5e31f9adf58f7f1c4fd8e47ed8c28e33a0"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-secondary___eJ0_a">Sign up</span></span></a><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderAppearanceSettings-module__trigger__hUheK" type="button" aria-haspopup="dialog" aria-labelledby="_R_fbd_"><span class="Primer_Brand__Button-module__Button__leading-visual___jjtTe" data-testid="Button-leading-visual"><svg data-component="Octicon" focusable="false" aria-hidden="true" class="octicon octicon-sliders Primer_Brand__Button-module__Button__icon-visual____qybb" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path></svg></span><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"></span></span></button><div class="Primer_Brand__Tooltip-module__Tooltip___0Eipx" data-direction="s" aria-hidden="true" id="_R_fbd_">Appearance settings</div></div></div></div></div><div class="MarketingHeader-module__bottomBorder__uZT38" aria-hidden="true"></div></header></div></div>
</react-partial>



      <div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full">
  
        <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
        <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
        <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
        <span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>

    <button id="icon-button-5e52eb8d-e2ec-4d74-8670-bf1573eeebba" aria-labelledby="tooltip-dcac4950-388e-4ffa-8d9a-3d944e910c3d" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close">  <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
</button><tool-tip id="tooltip-dcac4950-388e-4ffa-8d9a-3d944e910c3d" for="icon-button-5e52eb8d-e2ec-4d74-8670-bf1573eeebba" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip>


  
</div>
    </div>

  <div id="start-of-content" class="show-on-focus"></div>








    <div id="js-flash-container" class="flash-container" data-turbo-replace>






  <template class="js-flash-template">
    
<div class="flash flash-full   {{ className }}">
  <div >
    <button autofocus class="flash-close js-flash-close" type="button" aria-label="Dismiss this message">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
    </button>
    <div aria-atomic="true" role="alert" class="js-flash-alert">
      
      <div>{{ message }}</div>

    </div>
  </div>
</div>
  </template>
</div>


    






  <div
    class="application-main "
    data-commit-hovercards-enabled
    data-discussion-hovercards-enabled
    data-issue-and-pr-hovercards-enabled
    data-project-hovercards-enabled
  >
        <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
    <main id="js-repo-pjax-container" >
      
      








  

    <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ym-6bc2c9bf8112c038.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/sk2-8deeef9351be3911.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ni-3e194d222c7770bf.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/7x-71d30cb240cd901f.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wwk-ad869086822937b1.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/a1-9f79841ecac1da8e.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wzg-40a3213b3e83400b.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/5f-64f8e7d5bcbd4787.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/z5-b53a93078d026f1e.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/8h-cef26f68c1331011.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fq-3ce13a77e863807a.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/a7-596b507bd20acddc.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/xfx-c82d8352413aea0a.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j4-b3a9e87fa7878a98.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/global-nav-bar-29c7aef68ee9db41.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.2d881b4d4a503d1c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/pj.75627bfeb9ceb1da.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-nav-bar.2f2560cba06ab359.module.css" />

<react-partial
  partial-name="global-nav-bar"
  data-ssr="true"
  data-attempted-ssr="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"contextRegion":{"crumbs":[{"crumb_type":"user","label":"lleontor705","is_root":false,"href":"/lleontor705"},{"crumb_type":"repository","label":"cortex","is_root":false,"href":"/lleontor705/cortex"}],"localNavigation":[{"id":"code","icon":"code","label":"Code","href":"/lleontor705/cortex","selectedLinks":["repo_source","repo_downloads","repo_commits","repo_releases","repo_tags","repo_branches","repo_packages","repo_deployments","repo_attestations"],"popoverTarget":false,"commandId":"repositories:go-to-code","reactNav":{"appTarget":"code-view","anchor":"code-view-repo-link"},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"issues","icon":"issue-opened","label":"Issues","href":"/lleontor705/cortex/issues","selectedLinks":["repo_issues","repo_labels","repo_milestones"],"count":1,"popoverTarget":false,"commandId":"repositories:go-to-issues","reactNav":{"appTarget":"repo","anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"pull-requests","icon":"git-pull-request","label":"Pull requests","href":"/lleontor705/cortex/pulls","selectedLinks":["repo_pulls","checks"],"count":10,"popoverTarget":false,"commandId":"repositories:go-to-pull-requests","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"actions","icon":"play","label":"Actions","href":"/lleontor705/cortex/actions","selectedLinks":["repo_actions"],"popoverTarget":false,"commandId":"repositories:go-to-actions","reactNav":{"appTarget":"actions-workflows","anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"projects","icon":"table","label":"Projects","href":"/lleontor705/cortex/projects","selectedLinks":["repo_projects","new_repo_project","repo_project"],"popoverTarget":false,"commandId":"repositories:go-to-projects","reactNav":{"appTarget":"repo","anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"security-and-quality","icon":"shield","label":"Security and quality","href":"/lleontor705/cortex/security","selectedLinks":["security","overview","alerts","policy","token_scanning","code_scanning"],"count":0,"popoverTarget":false,"commandId":"repositories:go-to-security","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"insights","icon":"graph","label":"Insights","href":"/lleontor705/cortex/pulse","selectedLinks":["repo_graphs","repo_contributors","dependency_graph","dependabot_updates","pulse","people","community"],"popoverTarget":false,"commandId":"repositories:go-to-insights","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}}],"localNavigationUpdateChannel":null,"selectedLink":"repo_source"},"owner":null,"headerLogo":{"href":"/","aria-label":"Homepage "},"notifications":{"indicatorMode":"disabled","websocketChannel":null,"fetchIndicatorSrc":"/notifications/indicator","fetchIndicatorEnabled":false},"issues":{"href":"/issues"},"pulls":{"href":"/pulls"},"contributedRepos":{"href":"/repos"},"copilot":{"show":false,"showAgentsButton":false,"showRelaunchAnnouncement":false,"copilotChatUrl":null,"copilotApiUrl":"https://api.githubcopilot.com"},"search":{"show":true,"showCommandPalette":false,"isSearchPage":false,"isJumpToSearch":false,"searchContext":{"scope":"repo:lleontor705/cortex","current_repo_name":"cortex","current_repo_nwo":"lleontor705/cortex","user_id":"lleontor705"}},"commandPalette":null,"enterpriseBar":{"show":false},"globalTransactionalMessage":[],"payloadsUrl":"/_global-navigation/payloads.json?can_toggle_site_admin_and_employee_status=0\u0026is_admin_mode_on=0\u0026is_ui_opted_out=0\u0026show_ui_opt_out=0\u0026v=7","contextRegionUrl":"/_global-navigation/context-region.json"}}</script>
  <div data-target="react-partial.reactRoot"><header aria-label="Global navigation menu" data-component="Stack" class="GlobalNav styles-module__appHeader__YzYWk prc-Stack-Stack-UQ9k6" data-gap="none" data-direction="vertical" data-align="stretch" data-wrap="nowrap" data-justify="start" data-padding="none"><div data-component="Stack" class="prc-Stack-Stack-UQ9k6" data-direction="horizontal" data-align="center" data-wrap="nowrap" data-justify="center" data-padding="none"><div data-testid="top-nav-center" data-component="Stack" class="styles-module__center__R3QRv styles-module__withLocalNavigation__rjTJ_ GlobalNavBar-module__loggedOut__Jv1rk prc-Stack-Stack-UQ9k6" data-gap="condensed" data-direction="horizontal" data-align="stretch" data-wrap="nowrap" data-justify="start" data-padding="normal"><nav class="styles-module__contextRegion__VbSp2 prc-Breadcrumbs-BreadcrumbsBase-3Gb-B" aria-label="Breadcrumbs" data-overflow="menu" data-variant="normal" data-component="Breadcrumbs"><ol class="prc-Breadcrumbs-BreadcrumbsList-BKjpe"><li class="prc-Breadcrumbs-ItemWrapper-k0NLn"><a class="styles-module__contextCrumb__IzGIq prc-Breadcrumbs-Item-jcraJ" data-component="Breadcrumbs.Item" href="/lleontor705" data-discover="true"><span class="">lleontor705</span></a></li><li class="prc-Breadcrumbs-ItemWrapper-k0NLn"><a class="styles-module__contextCrumb__IzGIq prc-Breadcrumbs-Item-jcraJ" data-component="Breadcrumbs.Item" href="/lleontor705/cortex" data-discover="true"><span class="styles-module__contextCrumbLast__tI2e3">cortex</span></a></li></ol></nav></div><div data-testid="top-nav-right" data-component="Stack" class="styles-module__right__mlBQg styles-module__withLocalNavigation__rjTJ_ styles-module__rightWithResponsiveCreateButton__SKn2W prc-Stack-Stack-UQ9k6" data-gap="condensed" data-direction="horizontal" data-align="center" data-wrap="nowrap" data-justify="start" data-padding="normal"></div></div><h2 class="prc-src-InternalVisuallyHidden-2YaI6">Repository navigation</h2><nav class="prc-components-UnderlineWrapper-eT-Yj prc-UnderlineNav-UnderlineWrapper-GWONT LocalNavigation-module__LocalNavigation__b0Xc0" aria-label="Repository" data-variant="inset" data-overflow-mode="wrap" data-hide-icons-breakpoint="medium"><ul class="prc-UnderlineNav-ItemsList-oj8gN prc-components-UnderlineItemList-xKlKC" role="list"><li role="presentation" aria-hidden="true" class="prc-UnderlineNav-WrapSpacer--aLgz"></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a aria-current="page" data-tab-item="code" data-react-nav="code-view" data-react-nav-anchor="code-view-repo-link" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/lleontor705/cortex" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg></span><span data-component="text" data-content="Code">Code</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="issues" data-react-nav="repo" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/lleontor705/cortex/issues" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-issue-opened" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path></svg></span><span data-component="text" data-content="Issues">Issues</span><span data-component="counter"><span aria-hidden="true" data-variant="secondary" data-component="CounterLabel" class="prc-CounterLabel-CounterLabel-X-kRU">1</span><span class="prc-VisuallyHidden-VisuallyHidden-Q0qSB"> (<!-- -->1<!-- -->)</span></span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="pull-requests" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/lleontor705/cortex/pulls" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-git-pull-request" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path></svg></span><span data-component="text" data-content="Pull requests">Pull requests</span><span data-component="counter"><span aria-hidden="true" data-variant="secondary" data-component="CounterLabel" class="prc-CounterLabel-CounterLabel-X-kRU">10</span><span class="prc-VisuallyHidden-VisuallyHidden-Q0qSB"> (<!-- -->10<!-- -->)</span></span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="actions" data-react-nav="actions-workflows" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/lleontor705/cortex/actions" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-play" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg></span><span data-component="text" data-content="Actions">Actions</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="projects" data-react-nav="repo" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/lleontor705/cortex/projects" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-table" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25ZM6.5 6.5v8h7.75a.25.25 0 0 0 .25-.25V6.5Zm8-1.5V1.75a.25.25 0 0 0-.25-.25H6.5V5Zm-13 1.5v7.75c0 .138.112.25.25.25H5v-8ZM5 5V1.5H1.75a.25.25 0 0 0-.25.25V5Z"></path></svg></span><span data-component="text" data-content="Projects">Projects</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="security-and-quality" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/lleontor705/cortex/security" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg></span><span data-component="text" data-content="Security and quality">Security and quality</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="insights" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/lleontor705/cortex/pulse" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-graph" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg></span><span data-component="text" data-content="Insights">Insights</span></a></li></ul><div class="prc-UnderlineNav-MoreButtonContainer-Dnrq6"><div class="prc-UnderlineNav-MoreButtonDivider-dN0a-"></div><button data-component="overflow-menu-button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk prc-UnderlineNav-MoreButton-Y8soj" data-loading="false" data-size="medium" data-variant="invisible" id="_R_2ktp_"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3"><span>More<span class="prc-src-InternalVisuallyHidden-2YaI6"> items</span></span></span></span><span data-component="trailingAction" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></button></div></nav><div class="d-none"></div></header></div>
</react-partial>


  



<turbo-frame id="repo-content-turbo-frame" target="_top" data-turbo-action="advance" class="">
    <div id="repo-content-pjax-container" class="repository-content " >
    



    
      
    








<react-app
  app-name="code-view"
  initial-path="/lleontor705/cortex/blob/v2.4.11/docs/CLI-REFERENCE.md"
  style="display: block; min-height: calc(100vh - 64px);"
  data-attempted-ssr="true"
  data-ssr="true"
  data-lazy="false"
  data-alternate="false"
  data-data-router-enabled="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-app.embeddedData">{"payload":{"codeViewBlobRoute":{"csv":null,"csvError":null,"headerInfo":{"toc":[{"level":1,"text":"Cortex CLI Reference","anchor":"cortex-cli-reference","htmlText":"Cortex CLI Reference"},{"level":2,"text":"1. Invocation model","anchor":"1-invocation-model","htmlText":"1. Invocation model"},{"level":3,"text":"1.1 Binary and argument order","anchor":"11-binary-and-argument-order","htmlText":"1.1 Binary and argument order"},{"level":3,"text":"1.2 The mode triad","anchor":"12-the-mode-triad","htmlText":"1.2 The mode triad"},{"level":3,"text":"1.3 Exit-code contract","anchor":"13-exit-code-contract","htmlText":"1.3 Exit-code contract"},{"level":3,"text":"1.4 Bare interactive invocation → TUI","anchor":"14-bare-interactive-invocation--tui","htmlText":"1.4 Bare interactive invocation → TUI"},{"level":3,"text":"1.5 Background update notice","anchor":"15-background-update-notice","htmlText":"1.5 Background update notice"},{"level":3,"text":"1.6 cortex serve versus --mode server","anchor":"16-cortex-serve-versus---mode-server","htmlText":"1.6 cortex serve versus --mode server"},{"level":3,"text":"1.7 --mode server","anchor":"17---mode-server","htmlText":"1.7 --mode server"},{"level":2,"text":"2. Global conventions","anchor":"2-global-conventions","htmlText":"2. Global conventions"},{"level":3,"text":"2.1 Flag styles","anchor":"21-flag-styles","htmlText":"2.1 Flag styles"},{"level":3,"text":"2.2 Defaults","anchor":"22-defaults","htmlText":"2.2 Defaults"},{"level":3,"text":"2.3 Privacy preflight","anchor":"23-privacy-preflight","htmlText":"2.3 Privacy preflight"},{"level":3,"text":"2.4 Identifier spaces","anchor":"24-identifier-spaces","htmlText":"2.4 Identifier spaces"},{"level":3,"text":"2.5 Output streams","anchor":"25-output-streams","htmlText":"2.5 Output streams"},{"level":2,"text":"3. Command reference","anchor":"3-command-reference","htmlText":"3. Command reference"},{"level":3,"text":"3.1 help","anchor":"31-help","htmlText":"3.1 help"},{"level":3,"text":"3.2 version","anchor":"32-version","htmlText":"3.2 version"},{"level":3,"text":"3.3 tui","anchor":"33-tui","htmlText":"3.3 tui"},{"level":3,"text":"3.4 serve","anchor":"34-serve","htmlText":"3.4 serve"},{"level":3,"text":"3.5 mcp","anchor":"35-mcp","htmlText":"3.5 mcp"},{"level":3,"text":"3.6 search","anchor":"36-search","htmlText":"3.6 search"},{"level":3,"text":"3.7 save","anchor":"37-save","htmlText":"3.7 save"},{"level":3,"text":"3.8 context","anchor":"38-context","htmlText":"3.8 context"},{"level":3,"text":"3.9 stats","anchor":"39-stats","htmlText":"3.9 stats"},{"level":3,"text":"3.10 timeline","anchor":"310-timeline","htmlText":"3.10 timeline"},{"level":3,"text":"3.11 revisions","anchor":"311-revisions","htmlText":"3.11 revisions"},{"level":3,"text":"3.12 setup","anchor":"312-setup","htmlText":"3.12 setup"},{"level":3,"text":"3.13 import","anchor":"313-import","htmlText":"3.13 import"},{"level":3,"text":"3.14 export","anchor":"314-export","htmlText":"3.14 export"},{"level":3,"text":"3.15 sync","anchor":"315-sync","htmlText":"3.15 sync"},{"level":3,"text":"3.16 merge-projects","anchor":"316-merge-projects","htmlText":"3.16 merge-projects"},{"level":3,"text":"3.17 reindex","anchor":"317-reindex","htmlText":"3.17 reindex"},{"level":3,"text":"3.18 doctor","anchor":"318-doctor","htmlText":"3.18 doctor"},{"level":3,"text":"3.19 gc","anchor":"319-gc","htmlText":"3.19 gc"},{"level":3,"text":"3.20 backup","anchor":"320-backup","htmlText":"3.20 backup"},{"level":3,"text":"3.21 watch","anchor":"321-watch","htmlText":"3.21 watch"},{"level":3,"text":"3.22 ingest","anchor":"322-ingest","htmlText":"3.22 ingest"},{"level":3,"text":"3.23 code","anchor":"323-code","htmlText":"3.23 code"},{"level":4,"text":"code scan","anchor":"code-scan","htmlText":"code scan"},{"level":4,"text":"code symbols","anchor":"code-symbols","htmlText":"code symbols"},{"level":4,"text":"code analyze","anchor":"code-analyze","htmlText":"code analyze"},{"level":4,"text":"code impact","anchor":"code-impact","htmlText":"code impact"},{"level":4,"text":"code diff","anchor":"code-diff","htmlText":"code diff"},{"level":4,"text":"code graph","anchor":"code-graph","htmlText":"code graph"},{"level":4,"text":"code map","anchor":"code-map","htmlText":"code map"},{"level":4,"text":"code tests","anchor":"code-tests","htmlText":"code tests"},{"level":4,"text":"code find","anchor":"code-find","htmlText":"code find"},{"level":3,"text":"3.24 config","anchor":"324-config","htmlText":"3.24 config"},{"level":3,"text":"3.25 auth","anchor":"325-auth","htmlText":"3.25 auth"},{"level":3,"text":"3.26 web","anchor":"326-web","htmlText":"3.26 web"},{"level":3,"text":"3.27 status / mode","anchor":"327-status--mode","htmlText":"3.27 status / mode"},{"level":3,"text":"3.28 migrate","anchor":"328-migrate","htmlText":"3.28 migrate"},{"level":3,"text":"3.29 update","anchor":"329-update","htmlText":"3.29 update"},{"level":2,"text":"4. Environment-variable index","anchor":"4-environment-variable-index","htmlText":"4. Environment-variable index"},{"level":3,"text":"4.1 Core and identity","anchor":"41-core-and-identity","htmlText":"4.1 Core and identity"},{"level":3,"text":"4.2 Server storage and startup","anchor":"42-server-storage-and-startup","htmlText":"4.2 Server storage and startup"},{"level":3,"text":"4.3 HTTP, logging, and MCP","anchor":"43-http-logging-and-mcp","htmlText":"4.3 HTTP, logging, and MCP"},{"level":3,"text":"4.4 Database and storage","anchor":"44-database-and-storage","htmlText":"4.4 Database and storage"},{"level":3,"text":"4.5 Search, embeddings, and LLM","anchor":"45-search-embeddings-and-llm","htmlText":"4.5 Search, embeddings, and LLM"},{"level":3,"text":"4.6 Memory, lifecycle, and vectors","anchor":"46-memory-lifecycle-and-vectors","htmlText":"4.6 Memory, lifecycle, and vectors"},{"level":3,"text":"4.7 Sync","anchor":"47-sync","htmlText":"4.7 Sync"},{"level":3,"text":"4.8 Ignored, legacy, and test-only variables","anchor":"48-ignored-legacy-and-test-only-variables","htmlText":"4.8 Ignored, legacy, and test-only variables"},{"level":2,"text":"5. Authentication matrix","anchor":"5-authentication-matrix","htmlText":"5. Authentication matrix"},{"level":2,"text":"6. Deprecated and retired surface","anchor":"6-deprecated-and-retired-surface","htmlText":"6. Deprecated and retired surface"},{"level":3,"text":"6.1 Retired MCP toolsets: admin and temporal","anchor":"61-retired-mcp-toolsets-admin-and-temporal","htmlText":"6.1 Retired MCP toolsets: admin and temporal"},{"level":3,"text":"6.2 Retired container image: cortex-web","anchor":"62-retired-container-image-cortex-web","htmlText":"6.2 Retired container image: cortex-web"},{"level":3,"text":"6.3 Retired tool namespace: mem_* and Engram-era framing","anchor":"63-retired-tool-namespace-mem_-and-engram-era-framing","htmlText":"6.3 Retired tool namespace: mem_* and Engram-era framing"},{"level":3,"text":"6.4 Retired configuration key: multi_tenant","anchor":"64-retired-configuration-key-multi_tenant","htmlText":"6.4 Retired configuration key: multi_tenant"},{"level":3,"text":"6.5 Retired v1 root migrations","anchor":"65-retired-v1-root-migrations","htmlText":"6.5 Retired v1 root migrations"}]},"issueTemplate":null,"discussionTemplate":null,"richText":"\u003carticle class=\"markdown-body entry-content container-lg\" itemprop=\"text\"\u003e\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch1 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eCortex CLI Reference\u003c/h1\u003e\u003ca id=\"user-content-cortex-cli-reference\" class=\"anchor\" aria-label=\"Permalink: Cortex CLI Reference\" href=\"#cortex-cli-reference\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThis is the single authoritative contract for the \u003ccode\u003ecortex\u003c/code\u003e command line binary\n(\u003ccode\u003ecmd/cortex\u003c/code\u003e). Every command, flag, default, environment-variable override, exit\ncode, and authentication requirement documented here is anchored to the shipped\nimplementation: \u003ccode\u003ecmd/cortex/main.go\u003c/code\u003e, \u003ccode\u003einternal/cli/cli.go\u003c/code\u003e, \u003ccode\u003einternal/cli/web.go\u003c/code\u003e,\n\u003ccode\u003einternal/cli/watch.go\u003c/code\u003e, \u003ccode\u003einternal/platform/mode.go\u003c/code\u003e, and \u003ccode\u003einternal/config\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eIf this document and any other repository document disagree about CLI behavior,\nthis document wins. Flag tables must exist in exactly one place, and that place is\nhere.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eRelated references.\u003c/strong\u003e Configuration keys and file formats live in\n\u003ca href=\"/lleontor705/cortex/blob/v2.4.11/docs/CONFIGURATION.md\"\u003eCONFIGURATION.md\u003c/a\u003e. The MCP tool catalogs and profiles live in\n\u003ca href=\"/lleontor705/cortex/blob/v2.4.11/docs/MCP.md\"\u003eMCP.md\u003c/a\u003e. Server deployment lives in \u003ca href=\"/lleontor705/cortex/blob/v2.4.11/docs/SERVER.md\"\u003eSERVER.md\u003c/a\u003e. The HTTP\nREST surface lives in \u003ca href=\"/lleontor705/cortex/blob/v2.4.11/docs/HTTP-API.md\"\u003eHTTP-API.md\u003c/a\u003e. Interactive terminal screens\nlive in \u003ca href=\"/lleontor705/cortex/blob/v2.4.11/docs/TUI-GUIDE.md\"\u003eTUI-GUIDE.md\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp dir=\"auto\"\u003eSections: \u003ca href=\"#1-invocation-model\"\u003einvocation model\u003c/a\u003e,\n\u003ca href=\"#2-global-conventions\"\u003eglobal conventions\u003c/a\u003e,\n\u003ca href=\"#3-command-reference\"\u003ecommand reference\u003c/a\u003e,\n\u003ca href=\"#4-environment-variable-index\"\u003eenvironment-variable index\u003c/a\u003e,\n\u003ca href=\"#5-authentication-matrix\"\u003eauthentication matrix\u003c/a\u003e, and\n\u003ca href=\"#6-deprecated-and-retired-surface\"\u003edeprecated surface\u003c/a\u003e.\u003c/p\u003e\n\u003chr\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1. Invocation model\u003c/h2\u003e\u003ca id=\"user-content-1-invocation-model\" class=\"anchor\" aria-label=\"Permalink: 1. Invocation model\" href=\"#1-invocation-model\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.1 Binary and argument order\u003c/h3\u003e\u003ca id=\"user-content-11-binary-and-argument-order\" class=\"anchor\" aria-label=\"Permalink: 1.1 Binary and argument order\" href=\"#11-binary-and-argument-order\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThe production entrypoint is \u003ccode\u003ecmd/cortex\u003c/code\u003e (the \u003ccode\u003ecortex\u003c/code\u003e binary). The general form is:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex [--mode local|hybrid|server] \u0026lt;command\u0026gt; [arguments...]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex [--mode local|hybrid|server] \u0026lt;command\u0026gt; [arguments...]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThe binary first extracts and removes the global \u003ccode\u003e--mode\u003c/code\u003e flag, then dispatches on\nthe next positional argument (\u003ccode\u003eargs[1]\u003c/code\u003e). Both flag syntaxes are accepted and the\nflag may appear before or after the subcommand:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex --mode hybrid search \u0026quot;release notes\u0026quot;\ncortex --mode=hybrid search \u0026quot;release notes\u0026quot;\ncortex search \u0026quot;release notes\u0026quot; --mode=hybrid\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex --mode hybrid search \"release notes\"\ncortex --mode=hybrid search \"release notes\"\ncortex search \"release notes\" --mode=hybrid\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003e--mode\u003c/code\u003e parsing is strict. The valid set is exactly \u003ccode\u003elocal\u003c/code\u003e, \u003ccode\u003ehybrid\u003c/code\u003e, and\n\u003ccode\u003eserver\u003c/code\u003e; any other value fails closed with exit code \u003ccode\u003e2\u003c/code\u003e and the error message:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex: unknown mode \u0026quot;…\u0026quot;: use --mode local, --mode hybrid, or --mode server\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex: unknown mode \"…\": use --mode local, --mode hybrid, or --mode server\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eWhen \u003ccode\u003e--mode\u003c/code\u003e is absent the effective mode is \u003ccode\u003elocal\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.2 The mode triad\u003c/h3\u003e\u003ca id=\"user-content-12-the-mode-triad\" class=\"anchor\" aria-label=\"Permalink: 1.2 The mode triad\" href=\"#12-the-mode-triad\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eMode\u003c/th\u003e\n\u003cth\u003eBackend\u003c/th\u003e\n\u003cth\u003eNetwork surface\u003c/th\u003e\n\u003cth\u003eNotes\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003elocal\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eSingle-binary SQLite (\u003ccode\u003e~/.cortex/cortex.db\u003c/code\u003e) with local stdio MCP\u003c/td\u003e\n\u003ctd\u003eNone required\u003c/td\u003e\n\u003ctd\u003eDefault. Byte-compatible with the standalone local composition.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003ehybrid\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eLocal SQLite plus the remote sync/replication loop\u003c/td\u003e\n\u003ctd\u003eRemote sync endpoint\u003c/td\u003e\n\u003ctd\u003eNot a separate store: it is the local composition with replication layered on. The binary exports \u003ccode\u003eCORTEX_MODE=hybrid\u003c/code\u003e for the process.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eserver\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eSingle-tenant PostgreSQL over authenticated HTTP and Streamable HTTP MCP\u003c/td\u003e\n\u003ctd\u003eHTTP listener + \u003ccode\u003e/mcp\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eWired by \u003ccode\u003ecmd/cortex\u003c/code\u003e; see \u003ca href=\"#137-mode-server\"\u003e\u003ccode\u003e--mode server\u003c/code\u003e\u003c/a\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003ecortex status\u003c/code\u003e (alias \u003ccode\u003ecortex mode\u003c/code\u003e) reports the active triad and its\ndescription. Server-mode PostgreSQL is single-tenant; tenant and workspace scope\nare configuration constants, never client input.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.3 Exit-code contract\u003c/h3\u003e\u003ca id=\"user-content-13-exit-code-contract\" class=\"anchor\" aria-label=\"Permalink: 1.3 Exit-code contract\" href=\"#13-exit-code-contract\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCode\u003c/th\u003e\n\u003cth\u003eMeaning\u003c/th\u003e\n\u003cth\u003eProducing conditions\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e0\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eSuccess.\u003c/td\u003e\n\u003ctd\u003eThe command completed and printed its result. Commands that find no matching data (for example an empty search) still exit \u003ccode\u003e0\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e1\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eFailure.\u003c/td\u003e\n\u003ctd\u003eA runtime error (database, network, filesystem), a validation failure, an unknown command, or a per-command argument/usage error (missing required arguments, invalid numeric flag, invalid subcommand). Running \u003ccode\u003ecortex\u003c/code\u003e with no command also exits \u003ccode\u003e1\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e2\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eUsage / argument error at the invocation layer.\u003c/td\u003e\n\u003ctd\u003eAn invalid \u003ccode\u003e--mode\u003c/code\u003e value, or a \u003ccode\u003e--mode server\u003c/code\u003e argument/configuration failure: unknown server argument, \u003ccode\u003e--config\u003c/code\u003e without a path, invalid \u003ccode\u003ereindex --project-id\u003c/code\u003e, server config that fails to load, or server bootstrap/web-key failure.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"# exit 0: a successful search\ncortex search \u0026quot;auth tokens\u0026quot;\n\n# exit 1: missing search query\ncortex search\necho $?   # 1\n\n# exit 2: invalid mode\ncortex --mode bogus search \u0026quot;x\u0026quot;\necho $?   # 2\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e exit 0: a successful search\u003c/span\u003e\ncortex search \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003eauth tokens\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e\n\n\u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e exit 1: missing search query\u003c/span\u003e\ncortex search\n\u003cspan class=\"pl-c1\"\u003eecho\u003c/span\u003e \u003cspan class=\"pl-smi\"\u003e$?\u003c/span\u003e   \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e 1\u003c/span\u003e\n\n\u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e exit 2: invalid mode\u003c/span\u003e\ncortex --mode bogus search \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003ex\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan class=\"pl-c1\"\u003eecho\u003c/span\u003e \u003cspan class=\"pl-smi\"\u003e$?\u003c/span\u003e   \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e 2\u003c/span\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eNote.\u003c/strong\u003e Per-command usage errors (for example \u003ccode\u003ecortex save\u003c/code\u003e without a title and\ncontent, or \u003ccode\u003ecortex config\u003c/code\u003e without a subcommand) currently return \u003ccode\u003e1\u003c/code\u003e, not \u003ccode\u003e2\u003c/code\u003e.\nOnly top-level mode parsing and the server invocation layer use \u003ccode\u003e2\u003c/code\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.4 Bare interactive invocation → TUI\u003c/h3\u003e\u003ca id=\"user-content-14-bare-interactive-invocation--tui\" class=\"anchor\" aria-label=\"Permalink: 1.4 Bare interactive invocation → TUI\" href=\"#14-bare-interactive-invocation--tui\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eWhen the effective mode is \u003ccode\u003elocal\u003c/code\u003e or \u003ccode\u003ehybrid\u003c/code\u003e and the process is invoked\ninteractively with no command arguments:\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003ethe caller is an interactive terminal (\u003ccode\u003estdout\u003c/code\u003e is a TTY and \u003ccode\u003estdin\u003c/code\u003e is a TTY), and\u003c/li\u003e\n\u003cli\u003ethere are no command arguments,\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003ethen the binary rewrites the invocation to \u003ccode\u003ecortex tui\u003c/code\u003e and launches the\ninteractive terminal UI instead of printing usage. This covers double-clicking the\nbinary on Windows or running \u003ccode\u003ecortex\u003c/code\u003e directly in a terminal. Non-interactive\ninvocations (pipes, scripts, CI) still print usage and exit \u003ccode\u003e1\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.5 Background update notice\u003c/h3\u003e\u003ca id=\"user-content-15-background-update-notice\" class=\"anchor\" aria-label=\"Permalink: 1.5 Background update notice\" href=\"#15-background-update-notice\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eEvery dispatch attempt except \u003ccode\u003ehelp\u003c/code\u003e starts a background update check. The result\nis printed to \u003cstrong\u003estderr\u003c/strong\u003e, never stdout, so it cannot corrupt machine-readable\noutput:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"A new version of cortex is available: vX.Y.Z (current: vA.B.C)\n\u0026lt;release-url\u0026gt;\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003eA new version of cortex is available: vX.Y.Z (current: vA.B.C)\n\u0026lt;release-url\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ccode\u003ecortex version\u003c/code\u003e prints the notice synchronously.\u003c/li\u003e\n\u003cli\u003eOther commands drain the background channel non-blockingly right before exiting,\nso the notice appears only when the check has already finished (best effort).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecortex update --check\u003c/code\u003e performs a synchronous check instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.6 \u003ccode\u003ecortex serve\u003c/code\u003e versus \u003ccode\u003e--mode server\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-16-cortex-serve-versus---mode-server\" class=\"anchor\" aria-label=\"Permalink: 1.6 cortex serve versus --mode server\" href=\"#16-cortex-serve-versus---mode-server\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003ecortex serve\u003c/code\u003e starts the \u003cstrong\u003elocal\u003c/strong\u003e SQLite HTTP REST API and embedded web UI on the\nconfigured listener (\u003ccode\u003ehttp.host\u003c/code\u003e/\u003ccode\u003ehttp.port\u003c/code\u003e, default \u003ccode\u003elocalhost:7438\u003c/code\u003e). It is not\nthe PostgreSQL server.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003ecortex --mode server\u003c/code\u003e starts the \u003cstrong\u003esingle-tenant PostgreSQL\u003c/strong\u003e composition with\nauthenticated \u003ccode\u003e/api/*\u003c/code\u003e and Streamable HTTP MCP at \u003ccode\u003e/mcp\u003c/code\u003e, plus the embedded web UI.\nSee \u003ca href=\"#137-mode-server\"\u003e\u003ccode\u003e--mode server\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.7 \u003ccode\u003e--mode server\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-17---mode-server\" class=\"anchor\" aria-label=\"Permalink: 1.7 --mode server\" href=\"#17---mode-server\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex --mode server [options]\ncortex --mode server reindex --project-id \u0026lt;uuid\u0026gt; [options]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex --mode server [options]\ncortex --mode server reindex --project-id \u0026lt;uuid\u0026gt; [options]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eArgument\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--config \u0026lt;path\u0026gt;\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(none)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003ePath to the server YAML configuration file. Also accepts \u003ccode\u003e--config=\u0026lt;path\u0026gt;\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003ereindex\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eRun offline synchronous reindexing for one project, then exit.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--project-id \u0026lt;uuid\u0026gt;\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(required with reindex)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003ePublic project UUID to reindex. Must be a well-formed non-nil UUID.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e-h\u003c/code\u003e, \u003ccode\u003e--help\u003c/code\u003e, \u003ccode\u003ehelp\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003ePrint server help and exit \u003ccode\u003e0\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e-v\u003c/code\u003e, \u003ccode\u003e--version\u003c/code\u003e, \u003ccode\u003eversion\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003ePrint the binary version and exit \u003ccode\u003e0\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eServer startup reads configuration from \u003ccode\u003e--config\u003c/code\u003e (or the default search paths),\nopens the PostgreSQL composition, mints or loads the embedded web access key, and\nprints the endpoint banner:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex: server endpoint http://\u0026lt;host\u0026gt;:\u0026lt;port\u0026gt;\ncortex: readiness http://\u0026lt;host\u0026gt;:\u0026lt;port\u0026gt;/health\ncortex: API http://\u0026lt;host\u0026gt;:\u0026lt;port\u0026gt;/api/\ncortex: MCP http://\u0026lt;host\u0026gt;:\u0026lt;port\u0026gt;/mcp\ncortex: web http://\u0026lt;host\u0026gt;:\u0026lt;port\u0026gt;/\ncortex: web key file \u0026lt;path\u0026gt;\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex: server endpoint http://\u0026lt;host\u0026gt;:\u0026lt;port\u0026gt;\ncortex: readiness http://\u0026lt;host\u0026gt;:\u0026lt;port\u0026gt;/health\ncortex: API http://\u0026lt;host\u0026gt;:\u0026lt;port\u0026gt;/api/\ncortex: MCP http://\u0026lt;host\u0026gt;:\u0026lt;port\u0026gt;/mcp\ncortex: web http://\u0026lt;host\u0026gt;:\u0026lt;port\u0026gt;/\ncortex: web key file \u0026lt;path\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eOn first boot the plaintext web access key is printed exactly once. \u003ccode\u003ereindex\u003c/code\u003e\nprints a single summary line:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex: server reindex complete project=\u0026lt;uuid\u0026gt; corpus=N upserted=N reembedded=N skipped=N batches=N\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex: server reindex complete project=\u0026lt;uuid\u0026gt; corpus=N upserted=N reembedded=N skipped=N batches=N\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eExit codes: \u003ccode\u003e0\u003c/code\u003e success; \u003ccode\u003e2\u003c/code\u003e argument/config/bootstrap failure; \u003ccode\u003e1\u003c/code\u003e runtime\nfailure (\u003ccode\u003ert.Serve\u003c/code\u003e error) or reindex execution error.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eAuthentication: the server verifies the configured static bearer\n(\u003ccode\u003ehttp.token\u003c/code\u003e / \u003ccode\u003eCORTEX_HTTP_TOKEN\u003c/code\u003e) on every \u003ccode\u003e/api/*\u003c/code\u003e and \u003ccode\u003e/mcp\u003c/code\u003e request before\nbinding the synthetic constant principal. \u003ccode\u003e/health\u003c/code\u003e is unauthenticated. The\nembedded web UI uses the separate web access key.\u003c/p\u003e\n\u003chr\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2. Global conventions\u003c/h2\u003e\u003ca id=\"user-content-2-global-conventions\" class=\"anchor\" aria-label=\"Permalink: 2. Global conventions\" href=\"#2-global-conventions\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.1 Flag styles\u003c/h3\u003e\u003ca id=\"user-content-21-flag-styles\" class=\"anchor\" aria-label=\"Permalink: 2.1 Flag styles\" href=\"#21-flag-styles\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003cstrong\u003eValue flags\u003c/strong\u003e accept both forms: \u003ccode\u003e--limit 20\u003c/code\u003e and \u003ccode\u003e--limit=20\u003c/code\u003e. Most commands\nimplement the space-separated form; \u003ccode\u003e--mode\u003c/code\u003e, \u003ccode\u003e--tools\u003c/code\u003e, \u003ccode\u003e--profile\u003c/code\u003e, and the\n\u003ccode\u003ecode\u003c/code\u003e subcommands also accept the \u003ccode\u003e=\u003c/code\u003e form. When a value flag is used without a\nvalue, the parser either ignores it or falls back to its default rather than\nconsuming the next token as a value.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBoolean flags\u003c/strong\u003e are presence-only (\u003ccode\u003e--json\u003c/code\u003e, \u003ccode\u003e--graph-expand\u003c/code\u003e, \u003ccode\u003e--staged\u003c/code\u003e,\n\u003ccode\u003e--regex\u003c/code\u003e, \u003ccode\u003e--pack\u003c/code\u003e, \u003ccode\u003e--dry-run\u003c/code\u003e, \u003ccode\u003e--check\u003c/code\u003e, \u003ccode\u003e--include-personal\u003c/code\u003e, \u003ccode\u003e--force\u003c/code\u003e,\n\u003ccode\u003e--to-obsidian\u003c/code\u003e, \u003ccode\u003e--remote\u003c/code\u003e). There is no \u003ccode\u003e--flag=false\u003c/code\u003e form for them.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAliases.\u003c/strong\u003e Several commands accept short aliases: \u003ccode\u003e-p\u003c/code\u003e (\u003ccode\u003e--project\u003c/code\u003e),\n\u003ccode\u003e-m\u003c/code\u003e (\u003ccode\u003e--max-files\u003c/code\u003e), \u003ccode\u003e-f\u003c/code\u003e (\u003ccode\u003e--file\u003c/code\u003e/\u003ccode\u003e--force\u003c/code\u003e, context dependent),\n\u003ccode\u003e-t\u003c/code\u003e (\u003ccode\u003e--token\u003c/code\u003e), \u003ccode\u003e-k\u003c/code\u003e (\u003ccode\u003e--key-file\u003c/code\u003e), \u003ccode\u003e-c\u003c/code\u003e (\u003ccode\u003e--check\u003c/code\u003e), \u003ccode\u003e-o\u003c/code\u003e (\u003ccode\u003e--output\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eUnknown tokens that do not start with \u003ccode\u003e-\u003c/code\u003e are treated as positional arguments\n(a query, a path, a target). Unknown tokens that do start with \u003ccode\u003e-\u003c/code\u003e are ignored\nby most parsers rather than rejected.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.2 Defaults\u003c/h3\u003e\u003ca id=\"user-content-22-defaults\" class=\"anchor\" aria-label=\"Permalink: 2.2 Defaults\" href=\"#22-defaults\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eFlag defaults documented in this reference are the effective CLI defaults in\n\u003ccode\u003einternal/cli\u003c/code\u003e. They are independent of configuration defaults: for example\n\u003ccode\u003ecortex search\u003c/code\u003e uses a hard-coded result limit of \u003ccode\u003e10\u003c/code\u003e, while the configuration\nkey \u003ccode\u003esearch.default_limit\u003c/code\u003e defaults to \u003ccode\u003e20\u003c/code\u003e. When both exist, the CLI default\napplies unless the flag is supplied.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.3 Privacy preflight\u003c/h3\u003e\u003ca id=\"user-content-23-privacy-preflight\" class=\"anchor\" aria-label=\"Permalink: 2.3 Privacy preflight\" href=\"#23-privacy-preflight\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003ecortex save\u003c/code\u003e and \u003ccode\u003ecortex import\u003c/code\u003e run a privacy preflight before persisting:\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAll metadata fields (\u003ccode\u003eproject\u003c/code\u003e, \u003ccode\u003etopic_key\u003c/code\u003e, \u003ccode\u003escope\u003c/code\u003e, \u003ccode\u003etype\u003c/code\u003e, \u003ccode\u003esource\u003c/code\u003e,\n\u003ccode\u003esession_id\u003c/code\u003e, and tags) are validated with \u003ccode\u003eprivacy.ValidateMetadata\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etitle\u003c/code\u003e and \u003ccode\u003econtent\u003c/code\u003e are passed through \u003ccode\u003eprivacy.ProtectField\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFor batch import, the entire request is staged and validated against defensive\ncopies; if any record fails, the import is rejected atomically with exit \u003ccode\u003e1\u003c/code\u003e and\nnothing is written.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.4 Identifier spaces\u003c/h3\u003e\u003ca id=\"user-content-24-identifier-spaces\" class=\"anchor\" aria-label=\"Permalink: 2.4 Identifier spaces\" href=\"#24-identifier-spaces\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003cstrong\u003eLocal mode\u003c/strong\u003e uses integer observation IDs (for example \u003ccode\u003e#42\u003c/code\u003e), opaque\nagent-provided session strings, and integer graph IDs.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eServer mode\u003c/strong\u003e uses public UUIDs for observations and projects.\u003c/li\u003e\n\u003cli\u003eThe two spaces are not interchangeable. Numeric IDs from a local catalog must\nnever be passed to server endpoints and vice versa.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.5 Output streams\u003c/h3\u003e\u003ca id=\"user-content-25-output-streams\" class=\"anchor\" aria-label=\"Permalink: 2.5 Output streams\" href=\"#25-output-streams\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003ePrimary results go to \u003cstrong\u003estdout\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eErrors, warnings, and the background update notice go to \u003cstrong\u003estderr\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecortex serve\u003c/code\u003e emits a pipe-safe \u003ccode\u003ekey=value\u003c/code\u003e banner so its output stays\nmachine-readable.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3. Command reference\u003c/h2\u003e\u003ca id=\"user-content-3-command-reference\" class=\"anchor\" aria-label=\"Permalink: 3. Command reference\" href=\"#3-command-reference\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eCommand inventory at a glance:\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommand\u003c/th\u003e\n\u003cth\u003ePurpose\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#31-help\"\u003e\u003ccode\u003ehelp\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ePrint usage\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#32-version\"\u003e\u003ccode\u003eversion\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ePrint the binary version\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#33-tui\"\u003e\u003ccode\u003etui\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eLaunch the interactive terminal UI\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#34-serve\"\u003e\u003ccode\u003eserve\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eStart the local SQLite HTTP API + embedded web\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#35-mcp\"\u003e\u003ccode\u003emcp\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eStart the local stdio MCP server\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#36-search\"\u003e\u003ccode\u003esearch\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eSearch observations\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#37-save\"\u003e\u003ccode\u003esave\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eSave an observation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#38-context\"\u003e\u003ccode\u003econtext\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eShow recent session context or a context pack\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#39-stats\"\u003e\u003ccode\u003estats\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eShow memory statistics\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#310-timeline\"\u003e\u003ccode\u003etimeline\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eShow chronological context around an observation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#311-revisions\"\u003e\u003ccode\u003erevisions\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eShow revision history for an observation\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#312-setup\"\u003e\u003ccode\u003esetup\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eInstall agent integrations / configure Ollama\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#313-import\"\u003e\u003ccode\u003eimport\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eImport observations from JSON\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#314-export\"\u003e\u003ccode\u003eexport\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eExport observations to JSON or Obsidian\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#315-sync\"\u003e\u003ccode\u003esync\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eSync via file chunks or remote replication\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#316-merge-projects\"\u003e\u003ccode\u003emerge-projects\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eMerge project-name variants\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#317-reindex\"\u003e\u003ccode\u003ereindex\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eRebuild vector embeddings\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#318-doctor\"\u003e\u003ccode\u003edoctor\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eRun health checks\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#319-gc\"\u003e\u003ccode\u003egc\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eGarbage-collect archived observations\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#320-backup\"\u003e\u003ccode\u003ebackup\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eCreate an atomic SQLite snapshot\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#321-watch\"\u003e\u003ccode\u003ewatch\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eContinuous file watcher for AST indexing\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#322-ingest\"\u003e\u003ccode\u003eingest\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eOne-shot AST ingestion\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#323-code\"\u003e\u003ccode\u003ecode\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eCode AST intelligence (9 subcommands)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#324-config\"\u003e\u003ccode\u003econfig\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eManage configuration\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#325-auth\"\u003e\u003ccode\u003eauth\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eManage the local authentication token\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#326-web\"\u003e\u003ccode\u003eweb\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eManage the embedded web credential\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#327-status--mode\"\u003e\u003ccode\u003estatus\u003c/code\u003e / \u003ccode\u003emode\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eDisplay operational mode and status\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#328-migrate\"\u003e\u003ccode\u003emigrate\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eManage database migrations\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#329-update\"\u003e\u003ccode\u003eupdate\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eUpdate Cortex to the latest release\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.1 \u003ccode\u003ehelp\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-31-help\" class=\"anchor\" aria-label=\"Permalink: 3.1 help\" href=\"#31-help\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex help\ncortex --help\ncortex -h\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex help\ncortex --help\ncortex -h\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003ePrints the top-level usage/command list to stdout and exits \u003ccode\u003e0\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eArguments:\u003c/strong\u003e none. \u003cstrong\u003eFlags:\u003c/strong\u003e none. \u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExample\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex help\"\u003e\u003cpre\u003ecortex \u003cspan class=\"pl-c1\"\u003ehelp\u003c/span\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#32-version\"\u003eversion\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.2 \u003ccode\u003eversion\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-32-version\" class=\"anchor\" aria-label=\"Permalink: 3.2 version\" href=\"#32-version\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex version\ncortex --version\ncortex -v\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex version\ncortex --version\ncortex -v\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003ePrints \u003ccode\u003ecortex \u0026lt;version\u0026gt;\u003c/code\u003e to stdout, drains the background update notice, and exits\n\u003ccode\u003e0\u003c/code\u003e. The version is injected by GoReleaser via ldflags; when built from source it\nfalls back to the module version, or \u003ccode\u003edev\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eArguments:\u003c/strong\u003e none. \u003cstrong\u003eFlags:\u003c/strong\u003e none. \u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExample\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex version\n# cortex v2.4.0\"\u003e\u003cpre\u003ecortex version\n\u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e cortex v2.4.0\u003c/span\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#329-update\"\u003eupdate\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.3 \u003ccode\u003etui\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-33-tui\" class=\"anchor\" aria-label=\"Permalink: 3.3 tui\" href=\"#33-tui\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex tui [--config]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex tui [--config]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eLaunches the Bubble Tea interactive terminal UI.\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--config\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eOpen the Configuration Center screen directly instead of the dashboard.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eArguments:\u003c/strong\u003e none. \u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success, \u003ccode\u003e1\u003c/code\u003e on app-open or program error.\n\u003cstrong\u003eAuthentication:\u003c/strong\u003e none (local store).\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex tui\ncortex tui --config\"\u003e\u003cpre\u003ecortex tui\ncortex tui --config\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eA bare interactive \u003ccode\u003ecortex\u003c/code\u003e invocation is rewritten to \u003ccode\u003ecortex tui\u003c/code\u003e (see\n\u003ca href=\"#14-bare-interactive-invocation--tui\"\u003e§1.4\u003c/a\u003e).\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"/lleontor705/cortex/blob/v2.4.11/docs/TUI-GUIDE.md\"\u003eTUI-GUIDE.md\u003c/a\u003e, \u003ca href=\"#324-config\"\u003e\u003ccode\u003econfig wizard\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.4 \u003ccode\u003eserve\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-34-serve\" class=\"anchor\" aria-label=\"Permalink: 3.4 serve\" href=\"#34-serve\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex serve\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex serve\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eStarts the local SQLite HTTP REST API (\u003ccode\u003e/api/*\u003c/code\u003e) and, when the web surface mounts,\nthe embedded web UI. The listen address is \u003ccode\u003ehttp.host:http.port\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003eserve\u003c/code\u003e takes no flags; the trailing arguments are ignored.\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eSetting\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003ehttp.host\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003elocalhost\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_HTTP_HOST\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eListen interface. Empty/\u003ccode\u003elocalhost\u003c/code\u003e/loopback is treated as local.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003ehttp.port\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e7438\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_HTTP_PORT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eListen port.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003ehttp.token\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_HTTP_TOKEN\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eStatic bearer. Required for non-loopback binds.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003ehttp.allowed_origins\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e[]\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_HTTP_ALLOWED_ORIGINS\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eCORS browser origins.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eOn first boot the web access key is minted and printed exactly once. The banner:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"mode=local\nstore=\u0026lt;database path\u0026gt;\nsync=disabled|enabled\nweb=mounted|disabled\nkey_file=\u0026lt;path\u0026gt;\nlisten=\u0026lt;host\u0026gt;:\u0026lt;port\u0026gt;\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003emode=local\nstore=\u0026lt;database path\u0026gt;\nsync=disabled|enabled\nweb=mounted|disabled\nkey_file=\u0026lt;path\u0026gt;\nlisten=\u0026lt;host\u0026gt;:\u0026lt;port\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success; \u003ccode\u003e1\u003c/code\u003e if the app fails to open, the non-loopback bind\nhas no \u003ccode\u003ehttp.token\u003c/code\u003e, the web key cannot be resolved, or the listener fails.\n\u003cstrong\u003eAuthentication:\u003c/strong\u003e none by default; when \u003ccode\u003ehttp.token\u003c/code\u003e is set, \u003ccode\u003e/api/*\u003c/code\u003e and the\nmounted MCP require \u003ccode\u003eAuthorization: Bearer \u0026lt;token\u0026gt;\u003c/code\u003e. \u003ccode\u003e/health\u003c/code\u003e stays\nunauthenticated.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex serve\nCORTEX_HTTP_TOKEN=secret CORTEX_HTTP_HOST=0.0.0.0 cortex serve\"\u003e\u003cpre\u003ecortex serve\nCORTEX_HTTP_TOKEN=secret CORTEX_HTTP_HOST=0.0.0.0 cortex serve\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"/lleontor705/cortex/blob/v2.4.11/docs/HTTP-API.md\"\u003eHTTP-API.md\u003c/a\u003e, \u003ca href=\"#326-web\"\u003eweb key\u003c/a\u003e, \u003ca href=\"#17-mode-server\"\u003e\u003ccode\u003e--mode server\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.5 \u003ccode\u003emcp\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-35-mcp\" class=\"anchor\" aria-label=\"Permalink: 3.5 mcp\" href=\"#35-mcp\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex mcp [--tools=PROFILE] [--profile=PROFILE]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex mcp [--tools=PROFILE] [--profile=PROFILE]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eStarts the local stdio MCP server.\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--tools[=]PROFILE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003emcp.profile\u003c/code\u003e (default \u003ccode\u003eagent\u003c/code\u003e)\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_MCP_PROFILE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eTool catalog: \u003ccode\u003eagent\u003c/code\u003e (22 tools), \u003ccode\u003edev\u003c/code\u003e (11 tools), \u003ccode\u003eminimal\u003c/code\u003e (5 tools).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--profile[=]PROFILE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(same as \u003ccode\u003e--tools\u003c/code\u003e)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_MCP_PROFILE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eAlias for \u003ccode\u003e--tools\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eWhen \u003ccode\u003emcp.remote.enabled\u003c/code\u003e is true, \u003ccode\u003ecortex mcp\u003c/code\u003e does not open SQLite; it proxies\nthe configured remote server and forwards calls over the local stdio transport.\nIn that mode the remote server owns the catalog and local profiles do not filter\nit.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success; \u003ccode\u003e1\u003c/code\u003e on config load, app-open, or serve failure.\n\u003cstrong\u003eAuthentication:\u003c/strong\u003e none locally (process-scoped stdio). A remote proxy reads its\nbearer from \u003ccode\u003emcp.remote.token_env\u003c/code\u003e (default \u003ccode\u003eCORTEX_REMOTE_TOKEN\u003c/code\u003e).\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex mcp\ncortex mcp --tools=minimal\ncortex mcp --profile dev\"\u003e\u003cpre\u003ecortex mcp\ncortex mcp --tools=minimal\ncortex mcp --profile dev\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThe \u003ccode\u003eadmin\u003c/code\u003e and \u003ccode\u003etemporal\u003c/code\u003e toolsets are retired; see\n\u003ca href=\"#6-deprecated-and-retired-surface\"\u003e§6\u003c/a\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"/lleontor705/cortex/blob/v2.4.11/docs/MCP.md\"\u003eMCP.md\u003c/a\u003e, \u003ca href=\"#324-config\"\u003e\u003ccode\u003econfig\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.6 \u003ccode\u003esearch\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-36-search\" class=\"anchor\" aria-label=\"Permalink: 3.6 search\" href=\"#36-search\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex search \u0026lt;query\u0026gt; [flags]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex search \u0026lt;query\u0026gt; [flags]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eSearches observations with multi-modal retrieval.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eArguments\u003c/strong\u003e\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eArgument\u003c/th\u003e\n\u003cth\u003eRequired\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e\u0026lt;query\u0026gt;\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eyes\u003c/td\u003e\n\u003ctd\u003eQuery text. Multiple non-flag tokens are joined with spaces.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eFlags\u003c/strong\u003e\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--mode[=]MODE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eauto\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eRetrieval mode: \u003ccode\u003eauto\u003c/code\u003e, \u003ccode\u003edirect\u003c/code\u003e, \u003ccode\u003esemantic\u003c/code\u003e, \u003ccode\u003emulti_hop\u003c/code\u003e. \u003ccode\u003emulti_hop\u003c/code\u003e enables graph expansion; \u003ccode\u003edirect\u003c/code\u003e disables it.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--graph-expand\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eForce graph expansion on.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--type TYPE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eFilter by observation type.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--project PROJECT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eFilter by project.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--scope SCOPE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eFilter by scope.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--limit N\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e10\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eMaximum results. Must be an integer; invalid values exit \u003ccode\u003e1\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success (including zero matches, which prints\n\u003ccode\u003eNo memories found for: \"\u0026lt;query\u0026gt;\"\u003c/code\u003e); \u003ccode\u003e1\u003c/code\u003e for a missing/blank query, invalid\n\u003ccode\u003e--limit\u003c/code\u003e, or store error. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex search \u0026quot;release process\u0026quot;\ncortex search \u0026quot;graph ranking\u0026quot; --mode=multi_hop --limit 5\ncortex search \u0026quot;auth\u0026quot; --type decision --project cortex --scope project\"\u003e\u003cpre\u003ecortex search \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003erelease process\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e\ncortex search \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003egraph ranking\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e --mode=multi_hop --limit 5\ncortex search \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003eauth\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e --type decision --project cortex --scope project\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#38-context\"\u003econtext\u003c/a\u003e, \u003ca href=\"/lleontor705/cortex/blob/v2.4.11/docs/CONFIGURATION.md\"\u003eCONFIGURATION.md\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.7 \u003ccode\u003esave\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-37-save\" class=\"anchor\" aria-label=\"Permalink: 3.7 save\" href=\"#37-save\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex save \u0026lt;title\u0026gt; \u0026lt;content\u0026gt; [flags]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex save \u0026lt;title\u0026gt; \u0026lt;content\u0026gt; [flags]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eSaves a local observation after the privacy preflight.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eArguments\u003c/strong\u003e\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eArgument\u003c/th\u003e\n\u003cth\u003eRequired\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eyes\u003c/td\u003e\n\u003ctd\u003eObservation title. Must be non-blank.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e\u0026lt;content\u0026gt;\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eyes\u003c/td\u003e\n\u003ctd\u003eObservation body. Must be non-blank.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eFlags\u003c/strong\u003e\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--type TYPE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003emanual\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eObservation type.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--project PROJECT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eProject name.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--scope SCOPE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eproject\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eObservation scope.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--topic TOPIC_KEY\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eStable topic key for dedupe/upsert.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eThe session ID defaults to \u003ccode\u003emanual-save\u003c/code\u003e (or \u003ccode\u003emanual-save-\u0026lt;project\u0026gt;\u003c/code\u003e when a\nproject is given).\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success; \u003ccode\u003e1\u003c/code\u003e on validation/privacy rejection or store error.\n\u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex save \u0026quot;Release checklist\u0026quot; \u0026quot;Tag, build, publish, announce\u0026quot;\ncortex save \u0026quot;Auth model\u0026quot; \u0026quot;Static bearer only\u0026quot; --type decision --topic architecture/auth-model --project cortex\"\u003e\u003cpre\u003ecortex save \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003eRelease checklist\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003eTag, build, publish, announce\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e\ncortex save \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003eAuth model\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003eStatic bearer only\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e --type decision --topic architecture/auth-model --project cortex\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#313-import\"\u003eimport\u003c/a\u003e, privacy preflight \u003ca href=\"#23-privacy-preflight\"\u003e§2.3\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.8 \u003ccode\u003econtext\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-38-context\" class=\"anchor\" aria-label=\"Permalink: 3.8 context\" href=\"#38-context\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex context [project] [flags]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex context [project] [flags]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eShows recent session context, or renders a context pack when a format is selected.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eArguments\u003c/strong\u003e\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eArgument\u003c/th\u003e\n\u003cth\u003eRequired\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e[project]\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eno\u003c/td\u003e\n\u003ctd\u003eProject filter. The first non-flag token that is not a flag value.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eFlags\u003c/strong\u003e\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--scope SCOPE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eFilter by scope.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--format FORMAT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eRender a context pack in the given format (for example \u003ccode\u003emarkdown\u003c/code\u003e, \u003ccode\u003ejson\u003c/code\u003e). Also accepts \u003ccode\u003e--format=FORMAT\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--pack\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eShorthand: select the \u003ccode\u003emarkdown\u003c/code\u003e pack format.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--budget=N\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e0\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eInclude the repository map with an N-token budget (enables repo-map only when \u003ccode\u003e\u0026gt; 0\u003c/code\u003e).\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eWithout \u003ccode\u003e--format\u003c/code\u003e/\u003ccode\u003e--pack\u003c/code\u003e, prints up to 5 recent sessions and up to 20 recent\nobservations.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success (including no prior memories); \u003ccode\u003e1\u003c/code\u003e on render or store\nerror. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex context\ncortex context cortex --scope project\ncortex context cortex --pack --budget=4096\"\u003e\u003cpre\u003ecortex context\ncortex context cortex --scope project\ncortex context cortex --pack --budget=4096\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#36-search\"\u003esearch\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.9 \u003ccode\u003estats\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-39-stats\" class=\"anchor\" aria-label=\"Permalink: 3.9 stats\" href=\"#39-stats\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex stats\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex stats\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003ePrints sessions, observations, and project totals. Arguments are ignored.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eFlags:\u003c/strong\u003e none. \u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success, \u003ccode\u003e1\u003c/code\u003e store error.\n\u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExample\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex stats\n# Cortex Memory Stats\n#   Sessions:     4\n#   Observations: 128\n#   Projects:     cortex\"\u003e\u003cpre\u003ecortex stats\n\u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e Cortex Memory Stats\u003c/span\u003e\n\u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e   Sessions:     4\u003c/span\u003e\n\u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e   Observations: 128\u003c/span\u003e\n\u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e   Projects:     cortex\u003c/span\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.10 \u003ccode\u003etimeline\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-310-timeline\" class=\"anchor\" aria-label=\"Permalink: 3.10 timeline\" href=\"#310-timeline\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex timeline \u0026lt;observation_id\u0026gt; [--before N] [--after N]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex timeline \u0026lt;observation_id\u0026gt; [--before N] [--after N]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003ePrints observations adjacent in time around the target, with the target\nhighlighted.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eArguments\u003c/strong\u003e\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eArgument\u003c/th\u003e\n\u003cth\u003eRequired\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e\u0026lt;observation_id\u0026gt;\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eyes\u003c/td\u003e\n\u003ctd\u003eInteger observation ID.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eFlags\u003c/strong\u003e\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--before N\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e3\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eOlder neighbors to show. Must be an integer.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--after N\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e3\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eNewer neighbors to show. Must be an integer.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success; \u003ccode\u003e1\u003c/code\u003e for missing/invalid ID, invalid counts, or store\nerror. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex timeline 42\ncortex timeline 42 --before 5 --after 10\"\u003e\u003cpre\u003ecortex timeline 42\ncortex timeline 42 --before 5 --after 10\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#311-revisions\"\u003erevisions\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.11 \u003ccode\u003erevisions\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-311-revisions\" class=\"anchor\" aria-label=\"Permalink: 3.11 revisions\" href=\"#311-revisions\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex revisions \u0026lt;observation_id\u0026gt; [--limit N]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex revisions \u0026lt;observation_id\u0026gt; [--limit N]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003ePrints the temporal revision history for an observation.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eArguments\u003c/strong\u003e\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eArgument\u003c/th\u003e\n\u003cth\u003eRequired\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e\u0026lt;observation_id\u0026gt;\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eyes\u003c/td\u003e\n\u003ctd\u003eInteger observation ID.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eFlags\u003c/strong\u003e\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--limit N\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e20\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eMaximum revisions to print. Non-positive values fall back to \u003ccode\u003e20\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success (including \u003ccode\u003eNo revision history found\u003c/code\u003e);\n\u003ccode\u003e1\u003c/code\u003e for missing/invalid ID or store error. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex revisions 42\ncortex revisions 42 --limit 100\"\u003e\u003cpre\u003ecortex revisions 42\ncortex revisions 42 --limit 100\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.12 \u003ccode\u003esetup\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-312-setup\" class=\"anchor\" aria-label=\"Permalink: 3.12 setup\" href=\"#312-setup\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex setup [agent] [flags]\ncortex setup ollama [--base-url=URL] [--model=NAME]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex setup [agent] [flags]\ncortex setup ollama [--base-url=URL] [--model=NAME]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eWith no agent argument, prints detected agents and quick commands.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eArguments\u003c/strong\u003e\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eArgument\u003c/th\u003e\n\u003cth\u003eRequired\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e[agent]\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eno\u003c/td\u003e\n\u003ctd\u003eOne of \u003ccode\u003eopencode\u003c/code\u003e, \u003ccode\u003eclaude-code\u003c/code\u003e, \u003ccode\u003egemini-cli\u003c/code\u003e, \u003ccode\u003ecodex\u003c/code\u003e, \u003ccode\u003eollama\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eFlags\u003c/strong\u003e\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--profile[=]P\u003c/code\u003e / \u003ccode\u003e-p P\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003emcp.profile\u003c/code\u003e (default \u003ccode\u003eagent\u003c/code\u003e)\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_MCP_PROFILE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eInstall profile: \u003ccode\u003edev\u003c/code\u003e (11 tools), \u003ccode\u003eminimal\u003c/code\u003e (5 tools), \u003ccode\u003eagent\u003c/code\u003e (22 tools).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--base-url=URL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ehttp://localhost:11434\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esetup ollama\u003c/code\u003e only: Ollama base URL.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--model=NAME\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003enomic-embed-text\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esetup ollama\u003c/code\u003e only: embedding model to configure.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success (including detection-only mode); \u003ccode\u003e1\u003c/code\u003e on install or\nOllama configuration failure. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex setup\ncortex setup claude-code --profile=dev\ncortex setup ollama --model=nomic-embed-text\"\u003e\u003cpre\u003ecortex setup\ncortex setup claude-code --profile=dev\ncortex setup ollama --model=nomic-embed-text\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#327-status--mode\"\u003estatus\u003c/a\u003e, \u003ca href=\"/lleontor705/cortex/blob/v2.4.11/docs/MCP.md\"\u003eMCP.md\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.13 \u003ccode\u003eimport\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-313-import\" class=\"anchor\" aria-label=\"Permalink: 3.13 import\" href=\"#313-import\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex import --from-json --path FILE\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex import --from-json --path FILE\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eImports observations from a JSON array file. The input is capped at \u003cstrong\u003e50 MiB\u003c/strong\u003e\n(\u003ccode\u003e50 \u0026lt;\u0026lt; 20\u003c/code\u003e); the entire batch is privacy-validated before any write.\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--from-json\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(required first token)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eSelect the JSON import source.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--path FILE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(required)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eInput JSON file path.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eRecords whose save fails are skipped with a warning; the command still exits \u003ccode\u003e0\u003c/code\u003e\nand reports \u003ccode\u003eImported \u0026lt;saved\u0026gt; of \u0026lt;total\u0026gt; observations from JSON\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success; \u003ccode\u003e1\u003c/code\u003e for a missing source/\u003ccode\u003e--path\u003c/code\u003e, unreadable file,\ninvalid JSON, privacy rejection, or app-open error. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex export --output backup.json\ncortex import --from-json --path backup.json\"\u003e\u003cpre\u003ecortex \u003cspan class=\"pl-k\"\u003eexport\u003c/span\u003e --output backup.json\ncortex import --from-json --path backup.json\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#314-export\"\u003eexport\u003c/a\u003e, privacy preflight \u003ca href=\"#23-privacy-preflight\"\u003e§2.3\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.14 \u003ccode\u003eexport\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-314-export\" class=\"anchor\" aria-label=\"Permalink: 3.14 export\" href=\"#314-export\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex export [--project P] [--output FILE]\ncortex export --to-obsidian --vault PATH [flags]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex export [--project P] [--output FILE]\ncortex export --to-obsidian --vault PATH [flags]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eExports observations to JSON (stdout or a file) or to an Obsidian read-only\nprojection.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eFlags\u003c/strong\u003e\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--project P\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eFilter by project. Also accepts \u003ccode\u003e--project=P\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--output FILE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(stdout)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eWrite JSON to \u003ccode\u003eFILE\u003c/code\u003e (mode \u003ccode\u003e0600\u003c/code\u003e). Also accepts \u003ccode\u003e--output=FILE\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--to-obsidian\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eSwitch to the Obsidian projection.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--vault PATH\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(required with \u003ccode\u003e--to-obsidian\u003c/code\u003e)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eTarget vault directory.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--include-personal\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eInclude personal-scope observations in the projection.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eThe JSON export lists up to 10,000 observations.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success; \u003ccode\u003e1\u003c/code\u003e for store/write/marshal errors, or\n\u003ccode\u003e--to-obsidian\u003c/code\u003e without \u003ccode\u003e--vault\u003c/code\u003e. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex export --project cortex --output cortex.json\ncortex export --to-obsidian --vault ~/vault/synapse --project cortex\"\u003e\u003cpre\u003ecortex \u003cspan class=\"pl-k\"\u003eexport\u003c/span\u003e --project cortex --output cortex.json\ncortex \u003cspan class=\"pl-k\"\u003eexport\u003c/span\u003e --to-obsidian --vault \u003cspan class=\"pl-k\"\u003e~\u003c/span\u003e/vault/synapse --project cortex\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#313-import\"\u003eimport\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.15 \u003ccode\u003esync\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-315-sync\" class=\"anchor\" aria-label=\"Permalink: 3.15 sync\" href=\"#315-sync\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex sync [--import | --status | --all] [--project P]\ncortex sync --remote\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex sync [--import | --status | --all] [--project P]\ncortex sync --remote\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eSynchronizes observations through file chunks (default: export) or remote\nreplication.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eFlags\u003c/strong\u003e\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--import\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eImport pending chunks instead of exporting.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--status\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003ePrint local/remote chunk counts and pending imports.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--all\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eExport all projects (no project auto-detection).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--project P\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(auto-detected)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eRestrict to a project.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--remote\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eReplicate against the configured remote endpoint (\u003ccode\u003esync.url\u003c/code\u003e).\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eDefault (no \u003ccode\u003e--import\u003c/code\u003e/\u003ccode\u003e--status\u003c/code\u003e/\u003ccode\u003e--remote\u003c/code\u003e): exports a chunk for the detected\nproject. \u003ccode\u003e--remote\u003c/code\u003e requires \u003ccode\u003esync.url\u003c/code\u003e; the bearer is resolved from\n\u003ccode\u003esync.token_env\u003c/code\u003e (default \u003ccode\u003eCORTEX_REMOTE_TOKEN\u003c/code\u003e), falling back to \u003ccode\u003ehttp.token\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success; \u003ccode\u003e1\u003c/code\u003e for missing remote URL, sync errors, or app-open\nfailure. \u003cstrong\u003eAuthentication:\u003c/strong\u003e remote replication requires a bearer; file transport\nrequires none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex sync --status\ncortex sync --all\ncortex sync --remote\"\u003e\u003cpre\u003ecortex sync --status\ncortex sync --all\ncortex sync --remote\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"/lleontor705/cortex/blob/v2.4.11/docs/CONFIGURATION.md\"\u003eCONFIGURATION.md\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.16 \u003ccode\u003emerge-projects\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-316-merge-projects\" class=\"anchor\" aria-label=\"Permalink: 3.16 merge-projects\" href=\"#316-merge-projects\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex merge-projects --from \u0026quot;Name1,Name2\u0026quot; --to canonical-name [--dry-run]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex merge-projects --from \"Name1,Name2\" --to canonical-name [--dry-run]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eMerges project-name variants into one canonical name.\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--from LIST\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(required)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eComma-separated source names.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--to NAME\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(required)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eCanonical target name.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--dry-run\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003ePrint the planned merge without writing.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success (including dry run); \u003ccode\u003e1\u003c/code\u003e for missing \u003ccode\u003e--from\u003c/code\u003e/\u003ccode\u003e--to\u003c/code\u003e\nor merge error. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex merge-projects --from \u0026quot;cortex,cortex-ia\u0026quot; --to cortex --dry-run\ncortex merge-projects --from \u0026quot;cortex,cortex-ia\u0026quot; --to cortex\"\u003e\u003cpre\u003ecortex merge-projects --from \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003ecortex,cortex-ia\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e --to cortex --dry-run\ncortex merge-projects --from \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003ecortex,cortex-ia\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e --to cortex\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.17 \u003ccode\u003ereindex\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-317-reindex\" class=\"anchor\" aria-label=\"Permalink: 3.17 reindex\" href=\"#317-reindex\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex reindex [--project P]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex reindex [--project P]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eRegenerates vector embeddings for observations using the configured embedding\nprovider. Requires a configured embedding provider and a healthy vector store\n(build with \u003ccode\u003e-tags cortex_vectors\u003c/code\u003e for the SQLite BLOB adapter). Processes up to\n\u003cstrong\u003e5000\u003c/strong\u003e observations per run and prints progress every 50.\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--project P\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(all projects)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eRestrict reindexing to one project.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eWhen the provider is \u003ccode\u003eollama\u003c/code\u003e and \u003ccode\u003esearch.ollama_auto_start\u003c/code\u003e is true, the command\nstarts Ollama and pulls the model if missing.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success (including zero observations); \u003ccode\u003e1\u003c/code\u003e when no embedding\nprovider is configured, the vector store is unavailable, or an error occurs.\n\u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex reindex\ncortex reindex --project cortex\"\u003e\u003cpre\u003ecortex reindex\ncortex reindex --project cortex\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#323-code\"\u003e\u003ccode\u003ecode scan\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/lleontor705/cortex/blob/v2.4.11/docs/CONFIGURATION.md\"\u003eCONFIGURATION.md\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.18 \u003ccode\u003edoctor\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-318-doctor\" class=\"anchor\" aria-label=\"Permalink: 3.18 doctor\" href=\"#318-doctor\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex doctor\ncortex doctor --server [URL]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex doctor\ncortex doctor --server [URL]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eRuns local health checks, or probes a running server when \u003ccode\u003e--server\u003c/code\u003e is given.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eFlags\u003c/strong\u003e\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--server [URL]\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff; URL default \u003ccode\u003ehttp://localhost:7438\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_HTTP_TOKEN\u003c/code\u003e (for the bearer probe)\u003c/td\u003e\n\u003ctd\u003eProbe a server instead of the local store. If the next token does not start with \u003ccode\u003e-\u003c/code\u003e, it is used as the base URL.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eLocal checks: operating mode, database, FTS5 search, knowledge graph, vector\nstore, embeddings, orphan ratio, code AST index, Ollama daemon, and a\nvendor-key isolation notice. Any failing check counts as an issue and the command\nexits \u003ccode\u003e1\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eServer checks: \u003ccode\u003e/health\u003c/code\u003e (HTTP 200), optional bearer verification against \u003ccode\u003e/mcp\u003c/code\u003e\nwhen \u003ccode\u003eCORTEX_HTTP_TOKEN\u003c/code\u003e (or \u003ccode\u003eCORTEX_REMOTE_TOKEN\u003c/code\u003e) is set, and an embedded web UI\nprobe. A server-side probe failure is informational and does not change the\nexit-code semantics of the informational line.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e all checks passed; \u003ccode\u003e1\u003c/code\u003e one or more issues.\n\u003cstrong\u003eAuthentication:\u003c/strong\u003e none locally; the server probe uses \u003ccode\u003eCORTEX_HTTP_TOKEN\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex doctor\ncortex doctor --server\ncortex doctor --server http://localhost:7438\"\u003e\u003cpre\u003ecortex doctor\ncortex doctor --server\ncortex doctor --server http://localhost:7438\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#327-status--mode\"\u003e\u003ccode\u003estatus\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.19 \u003ccode\u003egc\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-319-gc\" class=\"anchor\" aria-label=\"Permalink: 3.19 gc\" href=\"#319-gc\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex gc [--days N]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex gc [--days N]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eHard-deletes soft-deleted/archived observations older than \u003ccode\u003eN\u003c/code\u003e days (up to 1000\ncandidates per run).\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--days N\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e90\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eAge cutoff in days. Only positive integers are accepted; invalid values are ignored.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success (including \u003ccode\u003eNothing to collect.\u003c/code\u003e); \u003ccode\u003e1\u003c/code\u003e on list or\ndelete error. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none. \u003cstrong\u003eWarning:\u003c/strong\u003e this is a destructive\noperation.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex gc\ncortex gc --days 30\"\u003e\u003cpre\u003ecortex gc\ncortex gc --days 30\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.20 \u003ccode\u003ebackup\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-320-backup\" class=\"anchor\" aria-label=\"Permalink: 3.20 backup\" href=\"#320-backup\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex backup [path]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex backup [path]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eCreates an atomic online snapshot of the SQLite database using \u003ccode\u003eVACUUM INTO\u003c/code\u003e.\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eArgument\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e[path]\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ecortex-backup-\u0026lt;YYYYMMDD-HHMMSS\u0026gt;.db\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eDestination path. An existing target is removed first.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success; \u003ccode\u003e1\u003c/code\u003e on path resolution, app-open, or backup error.\n\u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex backup\ncortex backup ~/backups/cortex.db\"\u003e\u003cpre\u003ecortex backup\ncortex backup \u003cspan class=\"pl-k\"\u003e~\u003c/span\u003e/backups/cortex.db\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#328-migrate\"\u003emigrate\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.21 \u003ccode\u003ewatch\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-321-watch\" class=\"anchor\" aria-label=\"Permalink: 3.21 watch\" href=\"#321-watch\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex watch [path] [--project NAME]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex watch [path] [--project NAME]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eWatches a repository and incrementally re-indexes AST symbols on file\ncreate/change/delete until interrupted (Ctrl+C). Prints \u003ccode\u003e👀 Cortex File Watcher activo en …\u003c/code\u003e on start and \u003ccode\u003e🛑 File Watcher detenido.\u003c/code\u003e on stop (the watcher's live\nprogress strings are currently Spanish; this is a known cosmetic quirk).\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eArgument / Flag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e[path]\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e.\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eDirectory to watch (resolved to an absolute path).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--project NAME\u003c/code\u003e / \u003ccode\u003e--project=NAME\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eauto-detected, else \u003ccode\u003edefault\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eProject name for indexed symbols.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e clean stop; \u003ccode\u003e1\u003c/code\u003e on directory resolution, app-open, or watcher\nerror. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex watch\ncortex watch ./internal --project cortex\"\u003e\u003cpre\u003ecortex watch\ncortex watch ./internal --project cortex\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#322-ingest\"\u003eingest\u003c/a\u003e, \u003ca href=\"#323-code\"\u003e\u003ccode\u003ecode scan\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.22 \u003ccode\u003eingest\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-322-ingest\" class=\"anchor\" aria-label=\"Permalink: 3.22 ingest\" href=\"#322-ingest\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex ingest [path] [--project NAME] [--max-files N]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex ingest [path] [--project NAME] [--max-files N]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eScans a codebase once with the Zero-CGO static AST extractor, persists symbols and\nrelations, and prints Graphify analytics (files, cohesion, god nodes, import\ncycles).\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eArguments / Flags\u003c/strong\u003e\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eArgument / Flag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e[path]\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e.\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eDirectory to scan.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--project NAME\u003c/code\u003e / \u003ccode\u003e-p NAME\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eauto-detected, else \u003ccode\u003edefault\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eProject name.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--max-files N\u003c/code\u003e / \u003ccode\u003e-m N\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e500\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eMaximum files to scan. Only positive integers are accepted.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success; \u003ccode\u003e1\u003c/code\u003e on extraction, app-open, or save error.\n\u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex ingest\ncortex ingest ./internal --project cortex --max-files 200\"\u003e\u003cpre\u003ecortex ingest\ncortex ingest ./internal --project cortex --max-files 200\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#323-code\"\u003e\u003ccode\u003ecode scan\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"#321-watch\"\u003ewatch\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.23 \u003ccode\u003ecode\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-323-code\" class=\"anchor\" aria-label=\"Permalink: 3.23 code\" href=\"#323-code\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex code \u0026lt;subcommand\u0026gt; [arguments] [flags]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex code \u0026lt;subcommand\u0026gt; [arguments] [flags]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eCode AST intelligence. \u003ccode\u003ecortex code\u003c/code\u003e, \u003ccode\u003ecortex code help\u003c/code\u003e, \u003ccode\u003ecortex code --help\u003c/code\u003e,\nand \u003ccode\u003ecortex code -h\u003c/code\u003e print the subcommand list and exit \u003ccode\u003e0\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eSubcommands:\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eSubcommand\u003c/th\u003e\n\u003cth\u003ePurpose\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#code-scan\"\u003e\u003ccode\u003escan\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eScan a repository and index AST symbols (same as \u003ccode\u003eingest\u003c/code\u003e).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#code-symbols\"\u003e\u003ccode\u003esymbols\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eList indexed symbols.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#code-analyze\"\u003e\u003ccode\u003eanalyze\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eRun Graphify architectural analytics.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#code-impact\"\u003e\u003ccode\u003eimpact\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eCalculate the blast radius of a symbol or file.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#code-diff\"\u003e\u003ccode\u003ediff\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eBlast radius of uncommitted Git changes.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#code-graph\"\u003e\u003ccode\u003egraph\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eExport/visualize the dependency graph.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#code-map\"\u003e\u003ccode\u003emap\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eGenerate a token-budgeted repo map.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#code-tests\"\u003e\u003ccode\u003etests\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eFind impacted test files/functions.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"#code-find\"\u003e\u003ccode\u003efind\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eSearch symbols by substring or regex.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eAll subcommands default \u003ccode\u003e--project\u003c/code\u003e to \u003ccode\u003edefault\u003c/code\u003e unless noted.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ccode\u003ecode scan\u003c/code\u003e\u003c/h4\u003e\u003ca id=\"user-content-code-scan\" class=\"anchor\" aria-label=\"Permalink: code scan\" href=\"#code-scan\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex code scan [path] [--project=NAME] [--max-files=N]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex code scan [path] [--project=NAME] [--max-files=N]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eDelegates to \u003ca href=\"#322-ingest\"\u003e\u003ccode\u003eingest\u003c/code\u003e\u003c/a\u003e; identical flags and defaults\n(\u003ccode\u003e--max-files\u003c/code\u003e default \u003ccode\u003e500\u003c/code\u003e).\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ccode\u003ecode symbols\u003c/code\u003e\u003c/h4\u003e\u003ca id=\"user-content-code-symbols\" class=\"anchor\" aria-label=\"Permalink: code symbols\" href=\"#code-symbols\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex code symbols [--project=NAME] [--kind=KIND] [--file=PATH]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex code symbols [--project=NAME] [--kind=KIND] [--file=PATH]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--project=NAME\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003edefault\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eProject name.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--kind=KIND\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eFilter by symbol kind.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--file=PATH\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eFilter by file path.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eLists up to 100 symbols.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ccode\u003ecode analyze\u003c/code\u003e\u003c/h4\u003e\u003ca id=\"user-content-code-analyze\" class=\"anchor\" aria-label=\"Permalink: code analyze\" href=\"#code-analyze\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex code analyze [--project=NAME]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex code analyze [--project=NAME]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003ePrints totals, average cohesion, god nodes, and import cycles.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ccode\u003ecode impact\u003c/code\u003e\u003c/h4\u003e\u003ca id=\"user-content-code-impact\" class=\"anchor\" aria-label=\"Permalink: code impact\" href=\"#code-impact\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex code impact \u0026lt;target\u0026gt; [--project=NAME] [--hops=N] [--json]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex code impact \u0026lt;target\u0026gt; [--project=NAME] [--hops=N] [--json]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlags/Args\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e\u0026lt;target\u0026gt;\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(required)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eSymbol name, ID, or file path.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--project=NAME\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003edefault\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eProject name.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--hops=N\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e3\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eTraversal depth.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--json\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eEmit JSON.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003eblast-radius\u003c/code\u003e is an alias for \u003ccode\u003eimpact\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ccode\u003ecode diff\u003c/code\u003e\u003c/h4\u003e\u003ca id=\"user-content-code-diff\" class=\"anchor\" aria-label=\"Permalink: code diff\" href=\"#code-diff\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex code diff [--staged] [--project=NAME] [--hops=N] [--json]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex code diff [--staged] [--project=NAME] [--hops=N] [--json]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--staged\u003c/code\u003e / \u003ccode\u003e--cached\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eAnalyze the Git staging area instead of the working tree.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--project=NAME\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003edefault\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eProject name.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--hops=N\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e3\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eTraversal depth.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--json\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eEmit JSON.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eRequires \u003ccode\u003egit\u003c/code\u003e and a Git repository.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ccode\u003ecode graph\u003c/code\u003e\u003c/h4\u003e\u003ca id=\"user-content-code-graph\" class=\"anchor\" aria-label=\"Permalink: code graph\" href=\"#code-graph\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex code graph [--project=NAME] [--format=mermaid] [--symbol=S] [--hops=N] [--max-nodes=N]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex code graph [--project=NAME] [--format=mermaid] [--symbol=S] [--hops=N] [--max-nodes=N]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--project=NAME\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003edefault\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eProject name.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--format=F\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003emermaid\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eOutput format: \u003ccode\u003emermaid\u003c/code\u003e, \u003ccode\u003eascii\u003c/code\u003e (alias \u003ccode\u003etree\u003c/code\u003e), \u003ccode\u003ejson\u003c/code\u003e. Unknown formats exit \u003ccode\u003e1\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--symbol=S\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eRoot symbol to center the graph on.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--hops=N\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e2\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eTraversal depth when a root symbol is given.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--max-nodes=N\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e50\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eMaximum nodes.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ccode\u003ecode map\u003c/code\u003e\u003c/h4\u003e\u003ca id=\"user-content-code-map\" class=\"anchor\" aria-label=\"Permalink: code map\" href=\"#code-map\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex code map [--project=NAME] [--budget=N]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex code map [--project=NAME] [--budget=N]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--project=NAME\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003edefault\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eProject name.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--budget=N\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e2048\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eToken budget.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003erepo-map\u003c/code\u003e is an alias for \u003ccode\u003emap\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ccode\u003ecode tests\u003c/code\u003e\u003c/h4\u003e\u003ca id=\"user-content-code-tests\" class=\"anchor\" aria-label=\"Permalink: code tests\" href=\"#code-tests\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex code tests \u0026lt;target\u0026gt; [--project=NAME] [--hops=N] [--json]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex code tests \u0026lt;target\u0026gt; [--project=NAME] [--hops=N] [--json]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlags/Args\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e\u0026lt;target\u0026gt;\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(required)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eSymbol name, ID, or file path.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--project=NAME\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003edefault\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eProject name.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--hops=N\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e3\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eTraversal depth.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--json\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eEmit JSON.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003etest-map\u003c/code\u003e and \u003ccode\u003eimpacted-tests\u003c/code\u003e are aliases for \u003ccode\u003etests\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ccode\u003ecode find\u003c/code\u003e\u003c/h4\u003e\u003ca id=\"user-content-code-find\" class=\"anchor\" aria-label=\"Permalink: code find\" href=\"#code-find\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex code find \u0026lt;query\u0026gt; [--project=NAME] [--kind=K] [--file=PATH] [--limit=N] [--regex] [--json]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex code find \u0026lt;query\u0026gt; [--project=NAME] [--kind=K] [--file=PATH] [--limit=N] [--regex] [--json]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlags/Args\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e\u0026lt;query\u0026gt;\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(required)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eSubstring or regex query.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--project=NAME\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003edefault\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eProject name.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--kind=K\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eFilter by symbol kind.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--file=PATH\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eFilter by file path.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--limit=N\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e50\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eMaximum results.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--regex\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eTreat the query as a regular expression.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--json\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eEmit JSON.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003esearch-symbols\u003c/code\u003e is an alias for \u003ccode\u003efind\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success; \u003ccode\u003e1\u003c/code\u003e for missing required targets/queries, unknown\nformats, unknown subcommands, or store errors. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex code scan . --project cortex\ncortex code symbols --project cortex --kind func\ncortex code impact CalculateBlastRadius --project cortex --hops=2\ncortex code diff --staged --json\ncortex code graph --project cortex --format=ascii --max-nodes=30\ncortex code tests CalculateBlastRadius\ncortex code find \u0026quot;RepoMap\u0026quot; --project cortex --regex\"\u003e\u003cpre\u003ecortex code scan \u003cspan class=\"pl-c1\"\u003e.\u003c/span\u003e --project cortex\ncortex code symbols --project cortex --kind func\ncortex code impact CalculateBlastRadius --project cortex --hops=2\ncortex code diff --staged --json\ncortex code graph --project cortex --format=ascii --max-nodes=30\ncortex code tests CalculateBlastRadius\ncortex code find \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003eRepoMap\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e --project cortex --regex\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#322-ingest\"\u003eingest\u003c/a\u003e, \u003ca href=\"#321-watch\"\u003ewatch\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.24 \u003ccode\u003econfig\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-324-config\" class=\"anchor\" aria-label=\"Permalink: 3.24 config\" href=\"#324-config\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex config \u0026lt;subcommand\u0026gt; [arguments] [flags]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex config \u0026lt;subcommand\u0026gt; [arguments] [flags]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eManages configuration without editing files by hand.\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eSubcommand\u003c/th\u003e\n\u003cth\u003ePurpose\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eget \u0026lt;key\u0026gt; [--file=PATH]\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003ePrint one value.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eset \u0026lt;key\u0026gt; \u0026lt;value\u0026gt; [--file=PATH] [--format=FMT]\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eSet a value and persist.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eshow\u003c/code\u003e / \u003ccode\u003eprint\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003ePrint the active config (\u003ccode\u003e--format\u003c/code\u003e \u003ccode\u003eyaml\u003c/code\u003e default or \u003ccode\u003ejson\u003c/code\u003e; secrets masked).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003evalidate\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eValidate a config file.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003einit\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eWrite a minimal config file.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003ePrint the resolved config file path.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003ewizard\u003c/code\u003e / \u003ccode\u003einteractive\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eLaunch the configuration wizard.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eApplies to\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--file PATH\u003c/code\u003e / \u003ccode\u003e-f\u003c/code\u003e / \u003ccode\u003e--config\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eget\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003eshow\u003c/code\u003e, \u003ccode\u003evalidate\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(discovered)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eExplicit config file. Also accepts \u003ccode\u003e--file=PATH\u003c/code\u003e / \u003ccode\u003e--config=PATH\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--format FMT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eshow\u003c/code\u003e, \u003ccode\u003einit\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eyaml\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eyaml\u003c/code\u003e or \u003ccode\u003ejson\u003c/code\u003e for \u003ccode\u003eshow\u003c/code\u003e; \u003ccode\u003eyaml\u003c/code\u003e/\u003ccode\u003ejson\u003c/code\u003e/\u003ccode\u003etoml\u003c/code\u003e extension for \u003ccode\u003eset\u003c/code\u003e/\u003ccode\u003einit\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--force\u003c/code\u003e / \u003ccode\u003e-f\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003einit\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eOverwrite an existing file.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e-o PATH\u003c/code\u003e / \u003ccode\u003e--output PATH\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003einit\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(default config dir)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eOutput path.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--cli\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ewizard\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eForce the CLI wizard.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--tui\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ewizard\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eForce the TUI wizard.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eWhen \u003ccode\u003ewizard\u003c/code\u003e is run with neither flag, it launches the TUI wizard if stdout is a\nterminal; otherwise it falls back to the CLI summary.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eSettable keys (via \u003ccode\u003eget\u003c/code\u003e/\u003ccode\u003eset\u003c/code\u003e): \u003ccode\u003eai.provider\u003c/code\u003e (alias \u003ccode\u003ellm.provider\u003c/code\u003e), \u003ccode\u003eai.model\u003c/code\u003e,\n\u003ccode\u003eai.base_url\u003c/code\u003e, \u003ccode\u003edatabase.path\u003c/code\u003e, \u003ccode\u003edatabase.in_memory\u003c/code\u003e, \u003ccode\u003ehttp.enabled\u003c/code\u003e,\n\u003ccode\u003ehttp.port\u003c/code\u003e, \u003ccode\u003ehttp.host\u003c/code\u003e, \u003ccode\u003ehttp.token\u003c/code\u003e, \u003ccode\u003elogging.level\u003c/code\u003e, \u003ccode\u003elogging.format\u003c/code\u003e,\n\u003ccode\u003esearch.embedding_provider\u003c/code\u003e (alias \u003ccode\u003eembedding.provider\u003c/code\u003e),\n\u003ccode\u003esearch.embedding_model\u003c/code\u003e, \u003ccode\u003esearch.embedding_base_url\u003c/code\u003e, \u003ccode\u003esearch.vector\u003c/code\u003e,\n\u003ccode\u003esearch.fts5\u003c/code\u003e, \u003ccode\u003esearch.ollama_auto_start\u003c/code\u003e, \u003ccode\u003emcp.enabled\u003c/code\u003e, \u003ccode\u003emcp.profile\u003c/code\u003e,\n\u003ccode\u003emcp.remote.enabled\u003c/code\u003e, \u003ccode\u003emcp.remote.url\u003c/code\u003e, \u003ccode\u003emcp.remote.token_env\u003c/code\u003e, \u003ccode\u003esync.enabled\u003c/code\u003e,\n\u003ccode\u003esync.url\u003c/code\u003e, \u003ccode\u003esync.token_env\u003c/code\u003e, \u003ccode\u003esync.interval\u003c/code\u003e, \u003ccode\u003ememory.auto_archive_days\u003c/code\u003e,\n\u003ccode\u003ememory.importance_decay_half_life\u003c/code\u003e, \u003ccode\u003ememory.min_archive_score\u003c/code\u003e, \u003ccode\u003evector.provider\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003econfig show\u003c/code\u003e masks \u003ccode\u003ehttp.token\u003c/code\u003e, \u003ccode\u003evector.qdrant.api_key\u003c/code\u003e,\n\u003ccode\u003eserver.secrets.signing_key\u003c/code\u003e, and \u003ccode\u003eserver.secrets.oidc_client_secret\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success; \u003ccode\u003e1\u003c/code\u003e for a missing/unknown subcommand or key,\ninvalid value, or load/save error. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex config path\ncortex config get http.port\ncortex config set http.port 8080\ncortex config set mcp.profile minimal\ncortex config show --format=json\ncortex config validate --file ./cortex.yaml\ncortex config init --format=toml --force\ncortex config wizard --cli\"\u003e\u003cpre\u003ecortex config path\ncortex config get http.port\ncortex config \u003cspan class=\"pl-c1\"\u003eset\u003c/span\u003e http.port 8080\ncortex config \u003cspan class=\"pl-c1\"\u003eset\u003c/span\u003e mcp.profile minimal\ncortex config show --format=json\ncortex config validate --file ./cortex.yaml\ncortex config init --format=toml --force\ncortex config wizard --cli\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"/lleontor705/cortex/blob/v2.4.11/docs/CONFIGURATION.md\"\u003eCONFIGURATION.md\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.25 \u003ccode\u003eauth\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-325-auth\" class=\"anchor\" aria-label=\"Permalink: 3.25 auth\" href=\"#325-auth\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex auth \u0026lt;login|status|logout\u0026gt; [options]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex auth \u0026lt;login|status|logout\u0026gt; [options]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eManages the local authentication token stored in \u003ccode\u003ehttp.token\u003c/code\u003e.\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eSubcommand\u003c/th\u003e\n\u003cth\u003eFlags\u003c/th\u003e\n\u003cth\u003eBehavior\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003elogin\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e--token TOKEN\u003c/code\u003e / \u003ccode\u003e-t\u003c/code\u003e / \u003ccode\u003e--token=TOKEN\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003ePersists the token to the loaded config. Requires a non-empty token.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003estatus\u003c/code\u003e / \u003ccode\u003ewhoami\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003enone\u003c/td\u003e\n\u003ctd\u003ePrints mode, masked token, principal, and role.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003elogout\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003enone\u003c/td\u003e\n\u003ctd\u003eClears \u003ccode\u003ehttp.token\u003c/code\u003e and saves.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success; \u003ccode\u003e1\u003c/code\u003e for a missing subcommand, a missing login token,\nor a load/save error. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none (this command manages the\ncredential itself).\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex auth login --token=\u0026lt;bearer\u0026gt;\ncortex auth status\ncortex auth logout\"\u003e\u003cpre\u003ecortex auth login --token=\u003cspan class=\"pl-k\"\u003e\u0026lt;\u003c/span\u003ebearer\u003cspan class=\"pl-k\"\u003e\u0026gt;\u003c/span\u003e\ncortex auth status\ncortex auth \u003cspan class=\"pl-c1\"\u003elogout\u003c/span\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#5-authentication-matrix\"\u003e§5 Authentication matrix\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.26 \u003ccode\u003eweb\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-326-web\" class=\"anchor\" aria-label=\"Permalink: 3.26 web\" href=\"#326-web\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex web key show [--key-file PATH]\ncortex web key regenerate [--key-file PATH]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex web key show [--key-file PATH]\ncortex web key regenerate [--key-file PATH]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eManages the embedded web access key (independent of \u003ccode\u003ehttp.token\u003c/code\u003e).\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--key-file PATH\u003c/code\u003e / \u003ccode\u003e-k\u003c/code\u003e / \u003ccode\u003e--key-file=PATH\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e\u0026lt;config dir\u0026gt;/web.key\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eKey file location.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ccode\u003eshow\u003c/code\u003e reports whether a key exists, its file path, and its prefix. It never\nprints the plaintext.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eregenerate\u003c/code\u003e rotates the key atomically and prints the new plaintext exactly\nonce; the previous key is invalidated.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success; \u003ccode\u003e1\u003c/code\u003e for a missing subcommand, an unexpected\nargument, or a key store error. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex web key show\ncortex web key regenerate\"\u003e\u003cpre\u003ecortex web key show\ncortex web key regenerate\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#34-serve\"\u003eserve\u003c/a\u003e, \u003ca href=\"#17-mode-server\"\u003e\u003ccode\u003e--mode server\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.27 \u003ccode\u003estatus\u003c/code\u003e / \u003ccode\u003emode\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-327-status--mode\" class=\"anchor\" aria-label=\"Permalink: 3.27 status / mode\" href=\"#327-status--mode\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex status [--json]\ncortex mode [--json]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex status [--json]\ncortex mode [--json]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003ePrints the operational mode, database path, sync status, embeddings, and config\npath. \u003ccode\u003emode\u003c/code\u003e is an alias for \u003ccode\u003estatus\u003c/code\u003e.\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--json\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eEmit a JSON object instead of the human-readable block.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eThe JSON shape is:\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-json notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"{\n  \u0026quot;mode\u0026quot;: \u0026quot;local\u0026quot;,\n  \u0026quot;description\u0026quot;: \u0026quot;Local (Zero-CGO SQLite Standalone Memory)\u0026quot;,\n  \u0026quot;database\u0026quot;: { \u0026quot;path\u0026quot;: \u0026quot;…\u0026quot;, \u0026quot;in_memory\u0026quot;: false },\n  \u0026quot;sync\u0026quot;: { \u0026quot;enabled\u0026quot;: false, \u0026quot;url\u0026quot;: \u0026quot;\u0026quot; },\n  \u0026quot;embeddings\u0026quot;: \u0026quot;disabled / not configured\u0026quot;,\n  \u0026quot;config_path\u0026quot;: \u0026quot;…\u0026quot;\n}\"\u003e\u003cpre\u003e{\n  \u003cspan class=\"pl-ent\"\u003e\"mode\"\u003c/span\u003e: \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003elocal\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e,\n  \u003cspan class=\"pl-ent\"\u003e\"description\"\u003c/span\u003e: \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003eLocal (Zero-CGO SQLite Standalone Memory)\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e,\n  \u003cspan class=\"pl-ent\"\u003e\"database\"\u003c/span\u003e: { \u003cspan class=\"pl-ent\"\u003e\"path\"\u003c/span\u003e: \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e…\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e, \u003cspan class=\"pl-ent\"\u003e\"in_memory\"\u003c/span\u003e: \u003cspan class=\"pl-c1\"\u003efalse\u003c/span\u003e },\n  \u003cspan class=\"pl-ent\"\u003e\"sync\"\u003c/span\u003e: { \u003cspan class=\"pl-ent\"\u003e\"enabled\"\u003c/span\u003e: \u003cspan class=\"pl-c1\"\u003efalse\u003c/span\u003e, \u003cspan class=\"pl-ent\"\u003e\"url\"\u003c/span\u003e: \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e },\n  \u003cspan class=\"pl-ent\"\u003e\"embeddings\"\u003c/span\u003e: \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003edisabled / not configured\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e,\n  \u003cspan class=\"pl-ent\"\u003e\"config_path\"\u003c/span\u003e: \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e…\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e\n}\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThe effective mode is resolved from \u003ccode\u003eCORTEX_MODE\u003c/code\u003e, then \u003ccode\u003eserver.storage.dsn\u003c/code\u003e, then\n\u003ccode\u003esync.enabled\u003c/code\u003e + \u003ccode\u003esync.url\u003c/code\u003e, then \u003ccode\u003elocal\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex status\ncortex status --json\ncortex mode --json\"\u003e\u003cpre\u003ecortex status\ncortex status --json\ncortex mode --json\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#318-doctor\"\u003edoctor\u003c/a\u003e, \u003ca href=\"#12-the-mode-triad\"\u003e§1.2 mode triad\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.28 \u003ccode\u003emigrate\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-328-migrate\" class=\"anchor\" aria-label=\"Permalink: 3.28 migrate\" href=\"#328-migrate\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex migrate \u0026lt;up|down|status\u0026gt; [--target VERSION]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex migrate \u0026lt;up|down|status\u0026gt; [--target VERSION]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eManages database migrations.\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eSubcommand\u003c/th\u003e\n\u003cth\u003eBehavior\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eup\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eApply all pending migrations.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003edown [--target N]\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eRoll back to version \u003ccode\u003eN\u003c/code\u003e (default \u003ccode\u003e0\u003c/code\u003e).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003estatus\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003ePrint each migration's version, name, and applied timestamp.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--target N\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e0\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eTarget version for \u003ccode\u003edown\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eThe local v2 baseline is forward-only. \u003ccode\u003emigrate down\u003c/code\u003e is not a supported normal\noperation and existing v2 databases must not be downgraded automatically.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success; \u003ccode\u003e1\u003c/code\u003e for a missing/unknown subcommand, an invalid\ntarget, or a migration error. \u003cstrong\u003eAuthentication:\u003c/strong\u003e none.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex migrate status\ncortex migrate up\"\u003e\u003cpre\u003ecortex migrate status\ncortex migrate up\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSee also:\u003c/strong\u003e \u003ca href=\"#320-backup\"\u003ebackup\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.29 \u003ccode\u003eupdate\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-329-update\" class=\"anchor\" aria-label=\"Permalink: 3.29 update\" href=\"#329-update\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eSynopsis\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"cortex update [--check]\"\u003e\u003cpre lang=\"text\" class=\"notranslate\"\u003e\u003ccode\u003ecortex update [--check]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eUpdates Cortex to the latest release, or checks for one.\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eEnvironment override\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--check\u003c/code\u003e / \u003ccode\u003e-c\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eoff\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eReport the latest release without installing.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eWhen a newer release exists, \u003ccode\u003e--check\u003c/code\u003e prints the version, release notes, and\nrelease page. Without \u003ccode\u003e--check\u003c/code\u003e, a self-update is attempted.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExit codes:\u003c/strong\u003e \u003ccode\u003e0\u003c/code\u003e success (including up-to-date); \u003ccode\u003e1\u003c/code\u003e when the update fails.\n\u003cstrong\u003eAuthentication:\u003c/strong\u003e none (uses the public release channel).\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eExamples\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"cortex update --check\ncortex update\"\u003e\u003cpre\u003ecortex update --check\ncortex update\u003c/pre\u003e\u003c/div\u003e\n\u003chr\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4. Environment-variable index\u003c/h2\u003e\u003ca id=\"user-content-4-environment-variable-index\" class=\"anchor\" aria-label=\"Permalink: 4. Environment-variable index\" href=\"#4-environment-variable-index\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eCortex resolves configuration from the config file first, then from environment\nvariables. Every configuration key is automatically addressable as\n\u003ccode\u003eCORTEX_\u003c/code\u003e + the upper-cased key with \u003ccode\u003e.\u003c/code\u003e replaced by \u003ccode\u003e_\u003c/code\u003e (viper\n\u003ccode\u003eAutomaticEnv\u003c/code\u003e with the \u003ccode\u003eCORTEX\u003c/code\u003e prefix). For example \u003ccode\u003ehttp.port\u003c/code\u003e becomes\n\u003ccode\u003eCORTEX_HTTP_PORT\u003c/code\u003e. The variables below are listed alphabetically; the\n\"Default\" column is the effective default when neither a config file nor the\nvariable is set.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.1 Core and identity\u003c/h3\u003e\u003ca id=\"user-content-41-core-and-identity\" class=\"anchor\" aria-label=\"Permalink: 4.1 Core and identity\" href=\"#41-core-and-identity\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eVariable\u003c/th\u003e\n\u003cth\u003eConfig key\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eMeaning\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_MODE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty → \u003ccode\u003elocal\u003c/code\u003e)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eSelects the mode triad: \u003ccode\u003elocal\u003c/code\u003e, \u003ccode\u003ehybrid\u003c/code\u003e, \u003ccode\u003eserver\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_NAME\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.name\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ecortex\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eServer name.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_VERSION\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.version\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e2.0.0\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eServer version label.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_TENANT_ID\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.tenant_id\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eTenant UUID bound to the synthetic principal. Required in server mode.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_WORKSPACE_ID\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.workspace_id\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eDefault workspace UUID. Required in server mode.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_PRINCIPAL_SUBJECT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.principal_subject\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eSubject UUID of the synthetic constant principal. Required in server mode.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_ROLES\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.roles\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e[]\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eComma-separated roles for the configured principal.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_SCOPES\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.scopes\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e[]\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eComma-separated authorized scopes.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_PROJECT_IDS\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.project_ids\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e[]\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eComma-separated project IDs.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_CLASSIFICATION_CLEARANCE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.classification_clearance\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e[]\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eComma-separated classification clearance labels.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_GRANT_DIGEST\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.grant_digest\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e\"\"\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eDeprecated; calculated dynamically by PostgreSQL.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_GRANT_VERSION\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.grant_version\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e0\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eDeprecated; provisioned dynamically by PostgreSQL.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_SECRETS_SIGNING_KEY\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.secrets.signing_key\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e\"\"\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eServer signing secret. Masked by \u003ccode\u003econfig show\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_SECRETS_OIDC_CLIENT_SECRET\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.secrets.oidc_client_secret\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e\"\"\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eOIDC client secret. Masked by \u003ccode\u003econfig show\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.2 Server storage and startup\u003c/h3\u003e\u003ca id=\"user-content-42-server-storage-and-startup\" class=\"anchor\" aria-label=\"Permalink: 4.2 Server storage and startup\" href=\"#42-server-storage-and-startup\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eVariable\u003c/th\u003e\n\u003cth\u003eConfig key\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eMeaning\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_STORAGE_DRIVER\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.storage.driver\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003epostgres\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003ePersistence driver (\u003ccode\u003epostgres\u003c/code\u003e server / \u003ccode\u003esqlite\u003c/code\u003e local).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_STORAGE_DSN\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.storage.dsn\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eNon-privileged runtime PostgreSQL DSN.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_STORAGE_MIGRATION_DSN\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.storage.migration_dsn\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003ePrivileged migration DSN. Runtime and migration roles must differ.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_STORAGE_MAX_CONNS\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.storage.max_conns\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e10\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eMaximum pool connections.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_PROVIDER_EMBEDDING\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.provider.embedding\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003enone\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eServer embedding provider selection.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_PROVIDER_VECTOR\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.provider.vector\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003enone\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eServer vector provider selection.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_RAILWAY_INTERNAL_EMBEDDING_HOST\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.railway_internal_embedding_host\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e\"\"\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eRailway private hostname allowed for HTTP embeddings.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_BOOTSTRAP_DEVELOPMENT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eserver.bootstrap_development\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003efalse\u003c/code\u003e (opt-in; production-unsafe)\u003c/td\u003e\n\u003ctd\u003eDevelopment-only mode that reuses the runtime DSN for migrations when a dedicated migration role is not separated. The compose files ship it as the default source for containers; never enable it in a shared deployment.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_AUTO_BOOTSTRAP\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(compose/entrypoint only)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003etrue\u003c/code\u003e in compose\u003c/td\u003e\n\u003ctd\u003eEnables the container entrypoint's automatic bootstrap path.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_PRINT_BOOTSTRAP\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(entrypoint only)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003efalse\u003c/code\u003e (opt-in; production-unsafe)\u003c/td\u003e\n\u003ctd\u003eGates echoing the bootstrap bearer into container logs. Leave unset in production; the bearer is otherwise written only to the state file.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_BOOTSTRAP_STATE_FILE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(entrypoint only)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e/home/cortex/.cortex/server-bootstrap.env\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003ePersisted bootstrap state location in the container.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SERVER_MULTI_TENANT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(retired key)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003efalse\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eRemoved configuration key. Loading it is tolerated but it is ignored and dropped on the next save.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.3 HTTP, logging, and MCP\u003c/h3\u003e\u003ca id=\"user-content-43-http-logging-and-mcp\" class=\"anchor\" aria-label=\"Permalink: 4.3 HTTP, logging, and MCP\" href=\"#43-http-logging-and-mcp\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eVariable\u003c/th\u003e\n\u003cth\u003eConfig key\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eMeaning\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_HTTP_ENABLED\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ehttp.enabled\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003etrue\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eEnables \u003ccode\u003e/api/*\u003c/code\u003e and \u003ccode\u003e/mcp\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_HTTP_HOST\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ehttp.host\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003elocalhost\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eListen interface (\u003ccode\u003e0.0.0.0\u003c/code\u003e for containers).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_HTTP_PORT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ehttp.port\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e7438\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eListen port. \u003ccode\u003eCORTEX_PORT\u003c/code\u003e is intentionally not honored.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_HTTP_TOKEN\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ehttp.token\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e\"\"\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eStatic bearer for local HTTP/MCP and the server request plane. Required for non-loopback binds.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_HTTP_ALLOWED_ORIGINS\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ehttp.allowed_origins\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e[]\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eComma-separated CORS origins.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LOGGING_LEVEL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003elogging.level\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003einfo\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003edebug\u003c/code\u003e, \u003ccode\u003einfo\u003c/code\u003e, \u003ccode\u003ewarn\u003c/code\u003e, \u003ccode\u003eerror\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LOGGING_FORMAT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003elogging.format\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ejson\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ejson\u003c/code\u003e, \u003ccode\u003etext\u003c/code\u003e, \u003ccode\u003eplain\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_MCP_ENABLED\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003emcp.enabled\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003etrue\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eEnables local MCP.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_MCP_PROFILE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003emcp.profile\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eagent\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eagent\u003c/code\u003e, \u003ccode\u003edev\u003c/code\u003e, \u003ccode\u003eminimal\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_MCP_REMOTE_ENABLED\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003emcp.remote.enabled\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003efalse\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eProxy a remote MCP server.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_MCP_REMOTE_URL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003emcp.remote.url\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e\"\"\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eRemote MCP destination.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_MCP_REMOTE_TOKEN_ENV\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003emcp.remote.token_env\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_REMOTE_TOKEN\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eName of the variable holding the remote bearer.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_MCP_REMOTE_TIMEOUT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003emcp.remote.timeout\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e30s\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eRemote MCP timeout.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_REMOTE_TOKEN\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(token env target)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eDefault holder for remote MCP/sync bearer tokens.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.4 Database and storage\u003c/h3\u003e\u003ca id=\"user-content-44-database-and-storage\" class=\"anchor\" aria-label=\"Permalink: 4.4 Database and storage\" href=\"#44-database-and-storage\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eVariable\u003c/th\u003e\n\u003cth\u003eConfig key\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eMeaning\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_DATABASE_PATH\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003edatabase.path\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e~/.cortex/cortex.db\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eSQLite database path.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_DATABASE_IN_MEMORY\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003edatabase.in_memory\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003efalse\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eUse an in-memory database.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_DATABASE_PRAGMA_JOURNAL_MODE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003edatabase.pragma.journal_mode\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eWAL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eSQLite journal mode.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_DATABASE_PRAGMA_SYNCHRONOUS\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003edatabase.pragma.synchronous\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eNORMAL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eSQLite synchronous mode.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_DATABASE_PRAGMA_CACHE_SIZE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003edatabase.pragma.cache_size\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e-64000\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eSQLite cache size (KiB).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_DATABASE_PRAGMA_FOREIGN_KEYS\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003edatabase.pragma.foreign_keys\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003etrue\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eEnforce foreign keys.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_DATABASE_PRAGMA_TEMP_STORE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003edatabase.pragma.temp_store\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eMEMORY\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eTemp store location.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_DATABASE_PRAGMA_MMAP_SIZE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003edatabase.pragma.mmap_size\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e268435456\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003emmap size.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.5 Search, embeddings, and LLM\u003c/h3\u003e\u003ca id=\"user-content-45-search-embeddings-and-llm\" class=\"anchor\" aria-label=\"Permalink: 4.5 Search, embeddings, and LLM\" href=\"#45-search-embeddings-and-llm\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eVariable\u003c/th\u003e\n\u003cth\u003eConfig key\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eMeaning\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SEARCH_DEFAULT_LIMIT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esearch.default_limit\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e20\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eDefault result limit for store queries.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SEARCH_MAX_LIMIT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esearch.max_limit\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e100\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eMaximum result limit.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SEARCH_FTS5\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esearch.fts5\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003etrue\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eEnable FTS5.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SEARCH_VECTOR\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esearch.vector\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003efalse\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eEnable dense vector retrieval.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SEARCH_FUSION_K\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esearch.fusion_k\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e60\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eRRF fusion constant.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SEARCH_OLLAMA_AUTO_START\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esearch.ollama_auto_start\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003efalse\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eAuto-start Ollama when it is the embedding provider.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SEARCH_EMBEDDING_PROVIDER\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esearch.embedding_provider\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eEmbedding provider (auto-mapped alias).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SEARCH_EMBEDDING_MODEL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esearch.embedding_model\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eEmbedding model (auto-mapped alias).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SEARCH_EMBEDDING_BASE_URL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esearch.embedding_base_url\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eEmbedding base URL (auto-mapped alias).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_EMBEDDING_PROVIDER\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esearch.embedding_provider\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003enone\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eEmbedding provider: \u003ccode\u003enone\u003c/code\u003e, \u003ccode\u003eopenai\u003c/code\u003e, \u003ccode\u003eollama\u003c/code\u003e, \u003ccode\u003eopenai-compatible\u003c/code\u003e. Unknown values fail closed at load time.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_EMBEDDING_MODEL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esearch.embedding_model\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003etext-embedding-3-small\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eEmbedding model identifier.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_EMBEDDING_BASE_URL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esearch.embedding_base_url\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ehttp://localhost:11434\u003c/code\u003e (Ollama)\u003c/td\u003e\n\u003ctd\u003eEmbedding base URL.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_EMBEDDING_API_KEY\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(credential)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eEmbedding credential. Required for hosted embedding providers.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LLM_PROVIDER\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eai.provider\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eLLM provider.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LLM_MODEL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eai.model\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eLLM model.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LLM_BASE_URL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eai.base_url\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eLLM base URL.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LLM_API_KEY\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(credential)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eLLM credential. Vendor variables such as \u003ccode\u003eOPENAI_API_KEY\u003c/code\u003e/\u003ccode\u003eANTHROPIC_API_KEY\u003c/code\u003e are deliberately ignored.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LLM_ALLOWED_HOSTS\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(server LLM)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eComma-separated allowed LLM hosts.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LLM_ALLOWED_PORTS\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(server LLM)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eComma-separated allowed LLM ports.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LLM_ALLOW_LOOPBACK\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(server LLM)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003efalse\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eAllow loopback LLM destinations.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LLM_ALLOW_LOOPBACK_HTTP\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(server LLM)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003efalse\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eAllow plain HTTP loopback destinations.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LLM_MAX_CONCURRENT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(server LLM)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(provider default)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eMaximum concurrent LLM requests.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LLM_MAX_REDIRECTS\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(server LLM)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(provider default)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eMaximum redirects.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LLM_MAX_RESPONSE_BODY_BYTES\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(server LLM)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(provider default)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eMaximum response body size.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LLM_MAX_ERROR_BODY_BYTES\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(server LLM)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(provider default)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eMaximum error body size.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LLM_TIMEOUT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(server LLM)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(provider default)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eLLM request timeout (duration).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LLM_CA_FILE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(server LLM)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003ePEM CA bundle for the LLM TLS handshake.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.6 Memory, lifecycle, and vectors\u003c/h3\u003e\u003ca id=\"user-content-46-memory-lifecycle-and-vectors\" class=\"anchor\" aria-label=\"Permalink: 4.6 Memory, lifecycle, and vectors\" href=\"#46-memory-lifecycle-and-vectors\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eVariable\u003c/th\u003e\n\u003cth\u003eConfig key\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eMeaning\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_MEMORY_MAX_OBSERVATION_LENGTH\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ememory.max_observation_length\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e50000\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eMaximum observation length.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_MEMORY_DEDUPE_WINDOW\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ememory.dedupe_window\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e15m\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eDedupe window.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_MEMORY_AUTO_ARCHIVE_DAYS\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ememory.auto_archive_days\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e90\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eAuto-archive age.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_MEMORY_IMPORTANCE_DECAY_HALF_LIFE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ememory.importance_decay_half_life\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e30\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eImportance decay half-life (days).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_MEMORY_MIN_ARCHIVE_SCORE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ememory.min_archive_score\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e0.1\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eMinimum score to retain.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LIFECYCLE_ENABLE_AUTO_ARCHIVE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003elifecycle.enable_auto_archive\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003etrue\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eEnable the auto-archive loop.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_LIFECYCLE_ARCHIVE_CHECK_INTERVAL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003elifecycle.archive_check_interval\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e1h\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eArchive check interval.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_VECTOR_PROVIDER\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003evector.provider\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty → \u003ccode\u003esqlite_blob\u003c/code\u003e)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eVector backend: unset local BLOB, \u003ccode\u003eqdrant\u003c/code\u003e, or \u003ccode\u003epgvector\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_VECTOR_PGVECTOR_DIMENSION\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(server pgvector)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003eresolved from model\u003c/td\u003e\n\u003ctd\u003epgvector dimension override.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_VECTOR_QDRANT_HOST\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003evector.qdrant.host\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003elocalhost\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eQdrant host (auto-mapped; adapter is server-only).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_VECTOR_QDRANT_PORT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003evector.qdrant.port\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e6334\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eQdrant port (auto-mapped).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_VECTOR_QDRANT_COLLECTION\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003evector.qdrant.collection\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ecortex\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eQdrant collection (auto-mapped).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_VECTOR_QDRANT_API_KEY\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003evector.qdrant.api_key\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e\"\"\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eQdrant API key (masked by \u003ccode\u003econfig show\u003c/code\u003e).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_VECTOR_PGVECTOR_SCHEMA\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003evector.pgvector.schema\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ecortex_vector\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003epgvector schema.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_VECTOR_PGVECTOR_TABLE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003evector.pgvector.table\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eembeddings\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003epgvector table.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_VECTOR_PGVECTOR_DSN\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003evector.pgvector.dsn\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cem\u003e(empty)\u003c/em\u003e\u003c/td\u003e\n\u003ctd\u003epgvector DSN (server-only).\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.7 Sync\u003c/h3\u003e\u003ca id=\"user-content-47-sync\" class=\"anchor\" aria-label=\"Permalink: 4.7 Sync\" href=\"#47-sync\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eVariable\u003c/th\u003e\n\u003cth\u003eConfig key\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eMeaning\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SYNC_ENABLED\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esync.enabled\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003efalse\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eEnable synchronization.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SYNC_URL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esync.url\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e\"\"\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eRemote sync endpoint.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SYNC_TOKEN_ENV\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esync.token_env\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_REMOTE_TOKEN\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eName of the variable holding the sync bearer.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SYNC_INTERVAL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esync.interval\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e30s\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eSync interval.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SYNC_TIMEOUT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esync.timeout\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e30s\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eSync timeout.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.8 Ignored, legacy, and test-only variables\u003c/h3\u003e\u003ca id=\"user-content-48-ignored-legacy-and-test-only-variables\" class=\"anchor\" aria-label=\"Permalink: 4.8 Ignored, legacy, and test-only variables\" href=\"#48-ignored-legacy-and-test-only-variables\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eVariable\u003c/th\u003e\n\u003cth\u003eStatus\u003c/th\u003e\n\u003cth\u003eMeaning\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_AI_API_KEY\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eIgnored\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003eNot accepted; use \u003ccode\u003eCORTEX_LLM_API_KEY\u003c/code\u003e or \u003ccode\u003eCORTEX_EMBEDDING_API_KEY\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SEARCH_EMBEDDING_API_KEY\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eIgnored (legacy)\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003eNot accepted; use \u003ccode\u003eCORTEX_EMBEDDING_API_KEY\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_TEST_POSTGRES_DSN\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eTest-only\u003c/td\u003e\n\u003ctd\u003eIntegration test runtime DSN (fails when missing, never skips).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_TEST_POSTGRES_MIGRATION_DSN\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eTest-only\u003c/td\u003e\n\u003ctd\u003eIntegration test migration DSN.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_TEST_POSTGRES_AUTHZ_ADMIN_DSN\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eTest-only\u003c/td\u003e\n\u003ctd\u003eIntegration test authz-admin DSN.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_QDRANT_HOST\u003c/code\u003e / \u003ccode\u003eCORTEX_QDRANT_PORT\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eTest-only\u003c/td\u003e\n\u003ctd\u003eQdrant adapter integration test target.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_PGVECTOR_DSN\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eTest-only\u003c/td\u003e\n\u003ctd\u003epgvector adapter integration test target.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_SPIKE_PG_ADMIN_DSN\u003c/code\u003e / \u003ccode\u003eCORTEX_SPIKE_PGBOUNCER_DSN\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eTest-only\u003c/td\u003e\n\u003ctd\u003eGovernance spike DSNs.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCORTEX_RESOURCE_HELPER_MARKER\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eTest-only\u003c/td\u003e\n\u003ctd\u003eBenchmark resource helper marker.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003chr\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e5. Authentication matrix\u003c/h2\u003e\u003ca id=\"user-content-5-authentication-matrix\" class=\"anchor\" aria-label=\"Permalink: 5. Authentication matrix\" href=\"#5-authentication-matrix\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eCortex has four credential planes. The table states which credential applies per\ncommand and per transport.\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommand / transport\u003c/th\u003e\n\u003cth\u003eLocal SQLite\u003c/th\u003e\n\u003cth\u003eLocal HTTP (\u003ccode\u003eserve\u003c/code\u003e)\u003c/th\u003e\n\u003cth\u003eServer (\u003ccode\u003e--mode server\u003c/code\u003e)\u003c/th\u003e\n\u003cth\u003eMCP\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003esave\u003c/code\u003e, \u003ccode\u003econtext\u003c/code\u003e, \u003ccode\u003estats\u003c/code\u003e, \u003ccode\u003etimeline\u003c/code\u003e, \u003ccode\u003erevisions\u003c/code\u003e, \u003ccode\u003eexport\u003c/code\u003e, \u003ccode\u003eimport\u003c/code\u003e, \u003ccode\u003emerge-projects\u003c/code\u003e, \u003ccode\u003egc\u003c/code\u003e, \u003ccode\u003ebackup\u003c/code\u003e, \u003ccode\u003ereindex\u003c/code\u003e, \u003ccode\u003eingest\u003c/code\u003e, \u003ccode\u003ecode\u003c/code\u003e, \u003ccode\u003ewatch\u003c/code\u003e, \u003ccode\u003etui\u003c/code\u003e, \u003ccode\u003edoctor\u003c/code\u003e (local), \u003ccode\u003estatus\u003c/code\u003e, \u003ccode\u003emigrate\u003c/code\u003e, \u003ccode\u003econfig\u003c/code\u003e, \u003ccode\u003esetup\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eNo auth\u003c/strong\u003e (zero-auth local)\u003c/td\u003e\n\u003ctd\u003en/a\u003c/td\u003e\n\u003ctd\u003en/a\u003c/td\u003e\n\u003ctd\u003en/a\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eserve\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e/health\u003c/code\u003e unauthenticated; \u003ccode\u003e/api/*\u003c/code\u003e and mounted MCP require \u003ccode\u003eAuthorization: Bearer \u0026lt;http.token\u0026gt;\u003c/code\u003e when \u003ccode\u003ehttp.token\u003c/code\u003e is set. Without a token, only loopback binds are allowed.\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--mode server\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e/health\u003c/code\u003e unauthenticated; every \u003ccode\u003e/api/*\u003c/code\u003e and \u003ccode\u003e/mcp\u003c/code\u003e request requires the configured static bearer (\u003ccode\u003ehttp.token\u003c/code\u003e / \u003ccode\u003eCORTEX_HTTP_TOKEN\u003c/code\u003e) before the synthetic constant principal is bound.\u003c/td\u003e\n\u003ctd\u003eStatic bearer\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003emcp\u003c/code\u003e (local stdio)\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eNo auth\u003c/strong\u003e (process-scoped)\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003estdio; no credential\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003emcp\u003c/code\u003e (remote proxy, \u003ccode\u003emcp.remote.enabled\u003c/code\u003e)\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eBearer read from \u003ccode\u003emcp.remote.token_env\u003c/code\u003e (default \u003ccode\u003eCORTEX_REMOTE_TOKEN\u003c/code\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003esync --remote\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003eBearer from \u003ccode\u003esync.token_env\u003c/code\u003e (default \u003ccode\u003eCORTEX_REMOTE_TOKEN\u003c/code\u003e), falling back to \u003ccode\u003ehttp.token\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eweb key\u003c/code\u003e (embedded web UI)\u003c/td\u003e\n\u003ctd\u003eWeb access key at \u003ccode\u003e\u0026lt;config dir\u0026gt;/web.key\u003c/code\u003e (independent of \u003ccode\u003ehttp.token\u003c/code\u003e)\u003c/td\u003e\n\u003ctd\u003esame\u003c/td\u003e\n\u003ctd\u003esame\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eauth login\u003c/code\u003e / \u003ccode\u003estatus\u003c/code\u003e / \u003ccode\u003elogout\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eManages \u003ccode\u003ehttp.token\u003c/code\u003e itself; no auth to run\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003ctd\u003e—\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eNotes:\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003cstrong\u003eLocal zero-auth mode.\u003c/strong\u003e Local SQLite commands open the store directly and\nnever require a credential.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLocal \u003ccode\u003ehttp.token\u003c/code\u003e.\u003c/strong\u003e When set, local HTTP and mounted MCP require the bearer.\nA non-loopback \u003ccode\u003ehttp.host\u003c/code\u003e without \u003ccode\u003ehttp.token\u003c/code\u003e is refused at \u003ccode\u003eserve\u003c/code\u003e startup.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eServer static bearer.\u003c/strong\u003e Single credential, verified on every authenticated\nrequest; tenant/workspace scope is configuration, not client input.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEmbedded web.\u003c/strong\u003e The web access key is a distinct namespace; rotating it never\nchanges \u003ccode\u003ehttp.token\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMCP profiles.\u003c/strong\u003e \u003ccode\u003eagent\u003c/code\u003e, \u003ccode\u003edev\u003c/code\u003e, and \u003ccode\u003eminimal\u003c/code\u003e are the live catalogs. Profile\nselection does not change authentication.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e6. Deprecated and retired surface\u003c/h2\u003e\u003ca id=\"user-content-6-deprecated-and-retired-surface\" class=\"anchor\" aria-label=\"Permalink: 6. Deprecated and retired surface\" href=\"#6-deprecated-and-retired-surface\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThis appendix records retired or deprecated surface so migrating users find an\nexplicit notice and a supported replacement.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e6.1 Retired MCP toolsets: \u003ccode\u003eadmin\u003c/code\u003e and \u003ccode\u003etemporal\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-61-retired-mcp-toolsets-admin-and-temporal\" class=\"anchor\" aria-label=\"Permalink: 6.1 Retired MCP toolsets: admin and temporal\" href=\"#61-retired-mcp-toolsets-admin-and-temporal\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThe \u003ccode\u003eadmin\u003c/code\u003e (destructive deletion, project merging, compaction) and \u003ccode\u003etemporal\u003c/code\u003e\n(execution duration, memory telemetry, manual RFC3339 timestamps) toolsets are\nretired from standard agent discovery and must not be advertised by any live\ncommand section.\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003cstrong\u003eReplacement:\u003c/strong\u003e administrative operations use the CLI (\u003ccode\u003ecortex gc\u003c/code\u003e,\n\u003ccode\u003ecortex merge-projects\u003c/code\u003e, \u003ccode\u003ecortex doctor\u003c/code\u003e), the TUI, and the web dashboard;\ntelemetry and health use \u003ccode\u003e/health\u003c/code\u003e; temporal evolution is handled automatically\nthrough \u003ccode\u003etopic_key\u003c/code\u003e upserts and \u003ccode\u003ecortex_revision_history\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe live \u003ccode\u003emcp\u003c/code\u003e catalog is exactly \u003ccode\u003eagent\u003c/code\u003e, \u003ccode\u003edev\u003c/code\u003e, and \u003ccode\u003eminimal\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e6.2 Retired container image: \u003ccode\u003ecortex-web\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-62-retired-container-image-cortex-web\" class=\"anchor\" aria-label=\"Permalink: 6.2 Retired container image: cortex-web\" href=\"#62-retired-container-image-cortex-web\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThe standalone \u003ccode\u003ecortex-web\u003c/code\u003e container image is retired.\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003cstrong\u003eReplacement:\u003c/strong\u003e the embedded web UI is mounted directly by \u003ccode\u003ecortex serve\u003c/code\u003e\n(local) and \u003ccode\u003ecortex --mode server\u003c/code\u003e (server), and its access key is managed with\n\u003ca href=\"#326-web\"\u003e\u003ccode\u003ecortex web key\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e6.3 Retired tool namespace: \u003ccode\u003emem_*\u003c/code\u003e and Engram-era framing\u003c/h3\u003e\u003ca id=\"user-content-63-retired-tool-namespace-mem_-and-engram-era-framing\" class=\"anchor\" aria-label=\"Permalink: 6.3 Retired tool namespace: mem_* and Engram-era framing\" href=\"#63-retired-tool-namespace-mem_-and-engram-era-framing\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThe \u003ccode\u003emem_*\u003c/code\u003e tool namespace and Engram-era compatibility framing are retired.\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003cstrong\u003eReplacement:\u003c/strong\u003e the supported namespace is \u003ccode\u003ecortex_*\u003c/code\u003e. Local catalog IDs and\nthe Engram-era surface are not interchangeable; see \u003ca href=\"/lleontor705/cortex/blob/v2.4.11/docs/MCP.md\"\u003eMCP.md\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e6.4 Retired configuration key: \u003ccode\u003emulti_tenant\u003c/code\u003e\u003c/h3\u003e\u003ca id=\"user-content-64-retired-configuration-key-multi_tenant\" class=\"anchor\" aria-label=\"Permalink: 6.4 Retired configuration key: multi_tenant\" href=\"#64-retired-configuration-key-multi_tenant\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThe \u003ccode\u003eserver.multi_tenant\u003c/code\u003e configuration key is removed. The self-hosted server is\nsingle-tenant: tenant and workspace are configuration constants.\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003cstrong\u003eReplacement:\u003c/strong\u003e \u003ccode\u003eserver.tenant_id\u003c/code\u003e and \u003ccode\u003eserver.workspace_id\u003c/code\u003e. A file that\nstill carries \u003ccode\u003emulti_tenant\u003c/code\u003e loads without error (the key is unknown and dropped\non the next save), but it has no effect.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e6.5 Retired v1 root migrations\u003c/h3\u003e\u003ca id=\"user-content-65-retired-v1-root-migrations\" class=\"anchor\" aria-label=\"Permalink: 6.5 Retired v1 root migrations\" href=\"#65-retired-v1-root-migrations\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThe root \u003ccode\u003emigrations/001-014\u003c/code\u003e files are retired v1 history and do not drive\nstartup.\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003cstrong\u003eReplacement:\u003c/strong\u003e the embedded, forward-only \u003ccode\u003emigrations/v2/001_init.sql\u003c/code\u003e\nbaseline (SQLite) and \u003ccode\u003emigrations/v2/100_server.sql\u003c/code\u003e (PostgreSQL). Existing v1\nor foreign databases are refused without mutation; there is no automatic v1\nupgrade. Use \u003ca href=\"#320-backup\"\u003e\u003ccode\u003ecortex backup\u003c/code\u003e\u003c/a\u003e before any migration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/article\u003e","richTextTruncated":false,"renderedFileInfo":null,"symbols":{"timed_out":false,"not_analyzed":false,"symbols":[{"name":"Cortex CLI Reference","fully_qualified_name":"Cortex CLI Reference","kind":"section_1","ident_start":2,"ident_end":22,"extent_start":0,"extent_end":61248,"ident_utf16":{"start":{"line_number":0,"utf16_col":2},"end":{"line_number":0,"utf16_col":22}},"extent_utf16":{"start":{"line_number":0,"utf16_col":0},"end":{"line_number":1636,"utf16_col":0}}},{"name":"1. Invocation model","fully_qualified_name":"1. Invocation model","kind":"section_2","ident_start":1273,"ident_end":1292,"extent_start":1270,"extent_end":7620,"ident_utf16":{"start":{"line_number":27,"utf16_col":3},"end":{"line_number":27,"utf16_col":22}},"extent_utf16":{"start":{"line_number":27,"utf16_col":0},"end":{"line_number":177,"utf16_col":0}}},{"name":"1.1 Binary and argument order","fully_qualified_name":"1.1 Binary and argument order","kind":"section_3","ident_start":1298,"ident_end":1327,"extent_start":1294,"extent_end":2154,"ident_utf16":{"start":{"line_number":29,"utf16_col":4},"end":{"line_number":29,"utf16_col":33}},"extent_utf16":{"start":{"line_number":29,"utf16_col":0},"end":{"line_number":56,"utf16_col":0}}},{"name":"1.2 The mode triad","fully_qualified_name":"1.2 The mode triad","kind":"section_3","ident_start":2158,"ident_end":2176,"extent_start":2154,"extent_end":3012,"ident_utf16":{"start":{"line_number":56,"utf16_col":4},"end":{"line_number":56,"utf16_col":22}},"extent_utf16":{"start":{"line_number":56,"utf16_col":0},"end":{"line_number":68,"utf16_col":0}}},{"name":"1.3 Exit-code contract","fully_qualified_name":"1.3 Exit-code contract","kind":"section_3","ident_start":3016,"ident_end":3038,"extent_start":3012,"extent_end":4251,"ident_utf16":{"start":{"line_number":68,"utf16_col":4},"end":{"line_number":68,"utf16_col":26}},"extent_utf16":{"start":{"line_number":68,"utf16_col":0},"end":{"line_number":93,"utf16_col":0}}},{"name":"1.4 Bare interactive invocation → TUI","fully_qualified_name":"1.4 Bare interactive invocation → TUI","kind":"section_3","ident_start":4255,"ident_end":4294,"extent_start":4251,"extent_end":4833,"ident_utf16":{"start":{"line_number":93,"utf16_col":4},"end":{"line_number":93,"utf16_col":41}},"extent_utf16":{"start":{"line_number":93,"utf16_col":0},"end":{"line_number":106,"utf16_col":0}}},{"name":"1.5 Background update notice","fully_qualified_name":"1.5 Background update notice","kind":"section_3","ident_start":4837,"ident_end":4865,"extent_start":4833,"extent_end":5406,"ident_utf16":{"start":{"line_number":106,"utf16_col":4},"end":{"line_number":106,"utf16_col":32}},"extent_utf16":{"start":{"line_number":106,"utf16_col":0},"end":{"line_number":122,"utf16_col":0}}},{"name":"1.6 `cortex serve` versus `--mode server`","fully_qualified_name":"1.6 `cortex serve` versus `--mode server`","kind":"section_3","ident_start":5410,"ident_end":5451,"extent_start":5406,"extent_end":5850,"ident_utf16":{"start":{"line_number":122,"utf16_col":4},"end":{"line_number":122,"utf16_col":45}},"extent_utf16":{"start":{"line_number":122,"utf16_col":0},"end":{"line_number":132,"utf16_col":0}}},{"name":"1.7 `--mode server`","fully_qualified_name":"1.7 `--mode server`","kind":"section_3","ident_start":5854,"ident_end":5873,"extent_start":5850,"extent_end":7620,"ident_utf16":{"start":{"line_number":132,"utf16_col":4},"end":{"line_number":132,"utf16_col":23}},"extent_utf16":{"start":{"line_number":132,"utf16_col":0},"end":{"line_number":177,"utf16_col":0}}},{"name":"2. Global conventions","fully_qualified_name":"2. Global conventions","kind":"section_2","ident_start":7623,"ident_end":7644,"extent_start":7620,"extent_end":10151,"ident_utf16":{"start":{"line_number":177,"utf16_col":3},"end":{"line_number":177,"utf16_col":24}},"extent_utf16":{"start":{"line_number":177,"utf16_col":0},"end":{"line_number":232,"utf16_col":0}}},{"name":"2.1 Flag styles","fully_qualified_name":"2.1 Flag styles","kind":"section_3","ident_start":7650,"ident_end":7665,"extent_start":7646,"extent_end":8687,"ident_utf16":{"start":{"line_number":179,"utf16_col":4},"end":{"line_number":179,"utf16_col":19}},"extent_utf16":{"start":{"line_number":179,"utf16_col":0},"end":{"line_number":196,"utf16_col":0}}},{"name":"2.2 Defaults","fully_qualified_name":"2.2 Defaults","kind":"section_3","ident_start":8691,"ident_end":8703,"extent_start":8687,"extent_end":9054,"ident_utf16":{"start":{"line_number":196,"utf16_col":4},"end":{"line_number":196,"utf16_col":16}},"extent_utf16":{"start":{"line_number":196,"utf16_col":0},"end":{"line_number":204,"utf16_col":0}}},{"name":"2.3 Privacy preflight","fully_qualified_name":"2.3 Privacy preflight","kind":"section_3","ident_start":9058,"ident_end":9079,"extent_start":9054,"extent_end":9560,"ident_utf16":{"start":{"line_number":204,"utf16_col":4},"end":{"line_number":204,"utf16_col":25}},"extent_utf16":{"start":{"line_number":204,"utf16_col":0},"end":{"line_number":215,"utf16_col":0}}},{"name":"2.4 Identifier spaces","fully_qualified_name":"2.4 Identifier spaces","kind":"section_3","ident_start":9564,"ident_end":9585,"extent_start":9560,"extent_end":9920,"ident_utf16":{"start":{"line_number":215,"utf16_col":4},"end":{"line_number":215,"utf16_col":25}},"extent_utf16":{"start":{"line_number":215,"utf16_col":0},"end":{"line_number":223,"utf16_col":0}}},{"name":"2.5 Output streams","fully_qualified_name":"2.5 Output streams","kind":"section_3","ident_start":9924,"ident_end":9942,"extent_start":9920,"extent_end":10151,"ident_utf16":{"start":{"line_number":223,"utf16_col":4},"end":{"line_number":223,"utf16_col":22}},"extent_utf16":{"start":{"line_number":223,"utf16_col":0},"end":{"line_number":232,"utf16_col":0}}},{"name":"3. Command reference","fully_qualified_name":"3. Command reference","kind":"section_2","ident_start":10154,"ident_end":10174,"extent_start":10151,"extent_end":43987,"ident_utf16":{"start":{"line_number":232,"utf16_col":3},"end":{"line_number":232,"utf16_col":23}},"extent_utf16":{"start":{"line_number":232,"utf16_col":0},"end":{"line_number":1397,"utf16_col":0}}},{"name":"3.1 `help`","fully_qualified_name":"3.1 `help`","kind":"section_3","ident_start":12049,"ident_end":12059,"extent_start":12045,"extent_end":12353,"ident_utf16":{"start":{"line_number":268,"utf16_col":4},"end":{"line_number":268,"utf16_col":14}},"extent_utf16":{"start":{"line_number":268,"utf16_col":0},"end":{"line_number":290,"utf16_col":0}}},{"name":"3.2 `version`","fully_qualified_name":"3.2 `version`","kind":"section_3","ident_start":12357,"ident_end":12370,"extent_start":12353,"extent_end":12833,"ident_utf16":{"start":{"line_number":290,"utf16_col":4},"end":{"line_number":290,"utf16_col":17}},"extent_utf16":{"start":{"line_number":290,"utf16_col":0},"end":{"line_number":315,"utf16_col":0}}},{"name":"3.3 `tui`","fully_qualified_name":"3.3 `tui`","kind":"section_3","ident_start":12837,"ident_end":12846,"extent_start":12833,"extent_end":13505,"ident_utf16":{"start":{"line_number":315,"utf16_col":4},"end":{"line_number":315,"utf16_col":13}},"extent_utf16":{"start":{"line_number":315,"utf16_col":0},"end":{"line_number":344,"utf16_col":0}}},{"name":"3.4 `serve`","fully_qualified_name":"3.4 `serve`","kind":"section_3","ident_start":13509,"ident_end":13520,"extent_start":13505,"extent_end":14957,"ident_utf16":{"start":{"line_number":344,"utf16_col":4},"end":{"line_number":344,"utf16_col":15}},"extent_utf16":{"start":{"line_number":344,"utf16_col":0},"end":{"line_number":390,"utf16_col":0}}},{"name":"3.5 `mcp`","fully_qualified_name":"3.5 `mcp`","kind":"section_3","ident_start":14961,"ident_end":14970,"extent_start":14957,"extent_end":16130,"ident_utf16":{"start":{"line_number":390,"utf16_col":4},"end":{"line_number":390,"utf16_col":13}},"extent_utf16":{"start":{"line_number":390,"utf16_col":0},"end":{"line_number":427,"utf16_col":0}}},{"name":"3.6 `search`","fully_qualified_name":"3.6 `search`","kind":"section_3","ident_start":16134,"ident_end":16146,"extent_start":16130,"extent_end":17447,"ident_utf16":{"start":{"line_number":427,"utf16_col":4},"end":{"line_number":427,"utf16_col":16}},"extent_utf16":{"start":{"line_number":427,"utf16_col":0},"end":{"line_number":468,"utf16_col":0}}},{"name":"3.7 `save`","fully_qualified_name":"3.7 `save`","kind":"section_3","ident_start":17451,"ident_end":17461,"extent_start":17447,"extent_end":18605,"ident_utf16":{"start":{"line_number":468,"utf16_col":4},"end":{"line_number":468,"utf16_col":14}},"extent_utf16":{"start":{"line_number":468,"utf16_col":0},"end":{"line_number":509,"utf16_col":0}}},{"name":"3.8 `context`","fully_qualified_name":"3.8 `context`","kind":"section_3","ident_start":18609,"ident_end":18622,"extent_start":18605,"extent_end":19780,"ident_utf16":{"start":{"line_number":509,"utf16_col":4},"end":{"line_number":509,"utf16_col":17}},"extent_utf16":{"start":{"line_number":509,"utf16_col":0},"end":{"line_number":550,"utf16_col":0}}},{"name":"3.9 `stats`","fully_qualified_name":"3.9 `stats`","kind":"section_3","ident_start":19784,"ident_end":19795,"extent_start":19780,"extent_end":20130,"ident_utf16":{"start":{"line_number":550,"utf16_col":4},"end":{"line_number":550,"utf16_col":15}},"extent_utf16":{"start":{"line_number":550,"utf16_col":0},"end":{"line_number":573,"utf16_col":0}}},{"name":"3.10 `timeline`","fully_qualified_name":"3.10 `timeline`","kind":"section_3","ident_start":20134,"ident_end":20149,"extent_start":20130,"extent_end":20929,"ident_utf16":{"start":{"line_number":573,"utf16_col":4},"end":{"line_number":573,"utf16_col":19}},"extent_utf16":{"start":{"line_number":573,"utf16_col":0},"end":{"line_number":609,"utf16_col":0}}},{"name":"3.11 `revisions`","fully_qualified_name":"3.11 `revisions`","kind":"section_3","ident_start":20933,"ident_end":20949,"extent_start":20929,"extent_end":21607,"ident_utf16":{"start":{"line_number":609,"utf16_col":4},"end":{"line_number":609,"utf16_col":20}},"extent_utf16":{"start":{"line_number":609,"utf16_col":0},"end":{"line_number":641,"utf16_col":0}}},{"name":"3.12 `setup`","fully_qualified_name":"3.12 `setup`","kind":"section_3","ident_start":21611,"ident_end":21623,"extent_start":21607,"extent_end":22722,"ident_utf16":{"start":{"line_number":641,"utf16_col":4},"end":{"line_number":641,"utf16_col":16}},"extent_utf16":{"start":{"line_number":641,"utf16_col":0},"end":{"line_number":679,"utf16_col":0}}},{"name":"3.13 `import`","fully_qualified_name":"3.13 `import`","kind":"section_3","ident_start":22726,"ident_end":22739,"extent_start":22722,"extent_end":23681,"ident_utf16":{"start":{"line_number":679,"utf16_col":4},"end":{"line_number":679,"utf16_col":17}},"extent_utf16":{"start":{"line_number":679,"utf16_col":0},"end":{"line_number":710,"utf16_col":0}}},{"name":"3.14 `export`","fully_qualified_name":"3.14 `export`","kind":"section_3","ident_start":23685,"ident_end":23698,"extent_start":23681,"extent_end":24803,"ident_utf16":{"start":{"line_number":710,"utf16_col":4},"end":{"line_number":710,"utf16_col":17}},"extent_utf16":{"start":{"line_number":710,"utf16_col":0},"end":{"line_number":746,"utf16_col":0}}},{"name":"3.15 `sync`","fully_qualified_name":"3.15 `sync`","kind":"section_3","ident_start":24807,"ident_end":24818,"extent_start":24803,"extent_end":26039,"ident_utf16":{"start":{"line_number":746,"utf16_col":4},"end":{"line_number":746,"utf16_col":15}},"extent_utf16":{"start":{"line_number":746,"utf16_col":0},"end":{"line_number":786,"utf16_col":0}}},{"name":"3.16 `merge-projects`","fully_qualified_name":"3.16 `merge-projects`","kind":"section_3","ident_start":26043,"ident_end":26064,"extent_start":26039,"extent_end":26783,"ident_utf16":{"start":{"line_number":786,"utf16_col":4},"end":{"line_number":786,"utf16_col":25}},"extent_utf16":{"start":{"line_number":786,"utf16_col":0},"end":{"line_number":812,"utf16_col":0}}},{"name":"3.17 `reindex`","fully_qualified_name":"3.17 `reindex`","kind":"section_3","ident_start":26787,"ident_end":26801,"extent_start":26783,"extent_end":27780,"ident_utf16":{"start":{"line_number":812,"utf16_col":4},"end":{"line_number":812,"utf16_col":18}},"extent_utf16":{"start":{"line_number":812,"utf16_col":0},"end":{"line_number":845,"utf16_col":0}}},{"name":"3.18 `doctor`","fully_qualified_name":"3.18 `doctor`","kind":"section_3","ident_start":27784,"ident_end":27797,"extent_start":27780,"extent_end":29085,"ident_utf16":{"start":{"line_number":845,"utf16_col":4},"end":{"line_number":845,"utf16_col":17}},"extent_utf16":{"start":{"line_number":845,"utf16_col":0},"end":{"line_number":885,"utf16_col":0}}},{"name":"3.19 `gc`","fully_qualified_name":"3.19 `gc`","kind":"section_3","ident_start":29089,"ident_end":29098,"extent_start":29085,"extent_end":29662,"ident_utf16":{"start":{"line_number":885,"utf16_col":4},"end":{"line_number":885,"utf16_col":13}},"extent_utf16":{"start":{"line_number":885,"utf16_col":0},"end":{"line_number":911,"utf16_col":0}}},{"name":"3.20 `backup`","fully_qualified_name":"3.20 `backup`","kind":"section_3","ident_start":29666,"ident_end":29679,"extent_start":29662,"extent_end":30224,"ident_utf16":{"start":{"line_number":911,"utf16_col":4},"end":{"line_number":911,"utf16_col":17}},"extent_utf16":{"start":{"line_number":911,"utf16_col":0},"end":{"line_number":937,"utf16_col":0}}},{"name":"3.21 `watch`","fully_qualified_name":"3.21 `watch`","kind":"section_3","ident_start":30228,"ident_end":30240,"extent_start":30224,"extent_end":31157,"ident_utf16":{"start":{"line_number":937,"utf16_col":4},"end":{"line_number":937,"utf16_col":16}},"extent_utf16":{"start":{"line_number":937,"utf16_col":0},"end":{"line_number":967,"utf16_col":0}}},{"name":"3.22 `ingest`","fully_qualified_name":"3.22 `ingest`","kind":"section_3","ident_start":31161,"ident_end":31174,"extent_start":31157,"extent_end":32035,"ident_utf16":{"start":{"line_number":967,"utf16_col":4},"end":{"line_number":967,"utf16_col":17}},"extent_utf16":{"start":{"line_number":967,"utf16_col":0},"end":{"line_number":999,"utf16_col":0}}},{"name":"3.23 `code`","fully_qualified_name":"3.23 `code`","kind":"section_3","ident_start":32039,"ident_end":32050,"extent_start":32035,"extent_end":37100,"ident_utf16":{"start":{"line_number":999,"utf16_col":4},"end":{"line_number":999,"utf16_col":15}},"extent_utf16":{"start":{"line_number":999,"utf16_col":0},"end":{"line_number":1164,"utf16_col":0}}},{"name":"`code scan`","fully_qualified_name":"`code scan`","kind":"section_4","ident_start":33004,"ident_end":33015,"extent_start":32999,"extent_end":33186,"ident_utf16":{"start":{"line_number":1026,"utf16_col":5},"end":{"line_number":1026,"utf16_col":16}},"extent_utf16":{"start":{"line_number":1026,"utf16_col":0},"end":{"line_number":1035,"utf16_col":0}}},{"name":"`code symbols`","fully_qualified_name":"`code symbols`","kind":"section_4","ident_start":33191,"ident_end":33205,"extent_start":33186,"extent_end":33561,"ident_utf16":{"start":{"line_number":1035,"utf16_col":5},"end":{"line_number":1035,"utf16_col":19}},"extent_utf16":{"start":{"line_number":1035,"utf16_col":0},"end":{"line_number":1049,"utf16_col":0}}},{"name":"`code analyze`","fully_qualified_name":"`code analyze`","kind":"section_4","ident_start":33566,"ident_end":33580,"extent_start":33561,"extent_end":33696,"ident_utf16":{"start":{"line_number":1049,"utf16_col":5},"end":{"line_number":1049,"utf16_col":19}},"extent_utf16":{"start":{"line_number":1049,"utf16_col":0},"end":{"line_number":1057,"utf16_col":0}}},{"name":"`code impact`","fully_qualified_name":"`code impact`","kind":"section_4","ident_start":33701,"ident_end":33714,"extent_start":33696,"extent_end":34125,"ident_utf16":{"start":{"line_number":1057,"utf16_col":5},"end":{"line_number":1057,"utf16_col":18}},"extent_utf16":{"start":{"line_number":1057,"utf16_col":0},"end":{"line_number":1072,"utf16_col":0}}},{"name":"`code diff`","fully_qualified_name":"`code diff`","kind":"section_4","ident_start":34130,"ident_end":34141,"extent_start":34125,"extent_end":34573,"ident_utf16":{"start":{"line_number":1072,"utf16_col":5},"end":{"line_number":1072,"utf16_col":16}},"extent_utf16":{"start":{"line_number":1072,"utf16_col":0},"end":{"line_number":1087,"utf16_col":0}}},{"name":"`code graph`","fully_qualified_name":"`code graph`","kind":"section_4","ident_start":34578,"ident_end":34590,"extent_start":34573,"extent_end":35147,"ident_utf16":{"start":{"line_number":1087,"utf16_col":5},"end":{"line_number":1087,"utf16_col":17}},"extent_utf16":{"start":{"line_number":1087,"utf16_col":0},"end":{"line_number":1101,"utf16_col":0}}},{"name":"`code map`","fully_qualified_name":"`code map`","kind":"section_4","ident_start":35152,"ident_end":35162,"extent_start":35147,"extent_end":35436,"ident_utf16":{"start":{"line_number":1101,"utf16_col":5},"end":{"line_number":1101,"utf16_col":15}},"extent_utf16":{"start":{"line_number":1101,"utf16_col":0},"end":{"line_number":1114,"utf16_col":0}}},{"name":"`code tests`","fully_qualified_name":"`code tests`","kind":"section_4","ident_start":35441,"ident_end":35453,"extent_start":35436,"extent_end":35879,"ident_utf16":{"start":{"line_number":1114,"utf16_col":5},"end":{"line_number":1114,"utf16_col":17}},"extent_utf16":{"start":{"line_number":1114,"utf16_col":0},"end":{"line_number":1129,"utf16_col":0}}},{"name":"`code find`","fully_qualified_name":"`code find`","kind":"section_4","ident_start":35884,"ident_end":35895,"extent_start":35879,"extent_end":37100,"ident_utf16":{"start":{"line_number":1129,"utf16_col":5},"end":{"line_number":1129,"utf16_col":16}},"extent_utf16":{"start":{"line_number":1129,"utf16_col":0},"end":{"line_number":1164,"utf16_col":0}}},{"name":"3.24 `config`","fully_qualified_name":"3.24 `config`","kind":"section_3","ident_start":37104,"ident_end":37117,"extent_start":37100,"extent_end":39802,"ident_utf16":{"start":{"line_number":1164,"utf16_col":4},"end":{"line_number":1164,"utf16_col":17}},"extent_utf16":{"start":{"line_number":1164,"utf16_col":0},"end":{"line_number":1227,"utf16_col":0}}},{"name":"3.25 `auth`","fully_qualified_name":"3.25 `auth`","kind":"section_3","ident_start":39806,"ident_end":39817,"extent_start":39802,"extent_end":40609,"ident_utf16":{"start":{"line_number":1227,"utf16_col":4},"end":{"line_number":1227,"utf16_col":15}},"extent_utf16":{"start":{"line_number":1227,"utf16_col":0},"end":{"line_number":1257,"utf16_col":0}}},{"name":"3.26 `web`","fully_qualified_name":"3.26 `web`","kind":"section_3","ident_start":40613,"ident_end":40623,"extent_start":40609,"extent_end":41478,"ident_utf16":{"start":{"line_number":1257,"utf16_col":4},"end":{"line_number":1257,"utf16_col":14}},"extent_utf16":{"start":{"line_number":1257,"utf16_col":0},"end":{"line_number":1289,"utf16_col":0}}},{"name":"3.27 `status` / `mode`","fully_qualified_name":"3.27 `status` / `mode`","kind":"section_3","ident_start":41482,"ident_end":41504,"extent_start":41478,"extent_end":42479,"ident_utf16":{"start":{"line_number":1289,"utf16_col":4},"end":{"line_number":1289,"utf16_col":26}},"extent_utf16":{"start":{"line_number":1289,"utf16_col":0},"end":{"line_number":1333,"utf16_col":0}}},{"name":"3.28 `migrate`","fully_qualified_name":"3.28 `migrate`","kind":"section_3","ident_start":42483,"ident_end":42497,"extent_start":42479,"extent_end":43355,"ident_utf16":{"start":{"line_number":1333,"utf16_col":4},"end":{"line_number":1333,"utf16_col":18}},"extent_utf16":{"start":{"line_number":1333,"utf16_col":0},"end":{"line_number":1368,"utf16_col":0}}},{"name":"3.29 `update`","fully_qualified_name":"3.29 `update`","kind":"section_3","ident_start":43359,"ident_end":43372,"extent_start":43355,"extent_end":43987,"ident_utf16":{"start":{"line_number":1368,"utf16_col":4},"end":{"line_number":1368,"utf16_col":17}},"extent_utf16":{"start":{"line_number":1368,"utf16_col":0},"end":{"line_number":1397,"utf16_col":0}}},{"name":"4. Environment-variable index","fully_qualified_name":"4. Environment-variable index","kind":"section_2","ident_start":43990,"ident_end":44019,"extent_start":43987,"extent_end":56777,"ident_utf16":{"start":{"line_number":1397,"utf16_col":3},"end":{"line_number":1397,"utf16_col":32}},"extent_utf16":{"start":{"line_number":1397,"utf16_col":0},"end":{"line_number":1554,"utf16_col":0}}},{"name":"4.1 Core and identity","fully_qualified_name":"4.1 Core and identity","kind":"section_3","ident_start":44476,"ident_end":44497,"extent_start":44472,"extent_end":46153,"ident_utf16":{"start":{"line_number":1407,"utf16_col":4},"end":{"line_number":1407,"utf16_col":25}},"extent_utf16":{"start":{"line_number":1407,"utf16_col":0},"end":{"line_number":1426,"utf16_col":0}}},{"name":"4.2 Server storage and startup","fully_qualified_name":"4.2 Server storage and startup","kind":"section_3","ident_start":46157,"ident_end":46187,"extent_start":46153,"extent_end":48174,"ident_utf16":{"start":{"line_number":1426,"utf16_col":4},"end":{"line_number":1426,"utf16_col":34}},"extent_utf16":{"start":{"line_number":1426,"utf16_col":0},"end":{"line_number":1443,"utf16_col":0}}},{"name":"4.3 HTTP, logging, and MCP","fully_qualified_name":"4.3 HTTP, logging, and MCP","kind":"section_3","ident_start":48178,"ident_end":48204,"extent_start":48174,"extent_end":49628,"ident_utf16":{"start":{"line_number":1443,"utf16_col":4},"end":{"line_number":1443,"utf16_col":30}},"extent_utf16":{"start":{"line_number":1443,"utf16_col":0},"end":{"line_number":1462,"utf16_col":0}}},{"name":"4.4 Database and storage","fully_qualified_name":"4.4 Database and storage","kind":"section_3","ident_start":49632,"ident_end":49656,"extent_start":49628,"extent_end":50545,"ident_utf16":{"start":{"line_number":1462,"utf16_col":4},"end":{"line_number":1462,"utf16_col":28}},"extent_utf16":{"start":{"line_number":1462,"utf16_col":0},"end":{"line_number":1475,"utf16_col":0}}},{"name":"4.5 Search, embeddings, and LLM","fully_qualified_name":"4.5 Search, embeddings, and LLM","kind":"section_3","ident_start":50549,"ident_end":50580,"extent_start":50545,"extent_end":53469,"ident_utf16":{"start":{"line_number":1475,"utf16_col":4},"end":{"line_number":1475,"utf16_col":35}},"extent_utf16":{"start":{"line_number":1475,"utf16_col":0},"end":{"line_number":1507,"utf16_col":0}}},{"name":"4.6 Memory, lifecycle, and vectors","fully_qualified_name":"4.6 Memory, lifecycle, and vectors","kind":"section_3","ident_start":53473,"ident_end":53507,"extent_start":53469,"extent_end":55321,"ident_utf16":{"start":{"line_number":1507,"utf16_col":4},"end":{"line_number":1507,"utf16_col":38}},"extent_utf16":{"start":{"line_number":1507,"utf16_col":0},"end":{"line_number":1528,"utf16_col":0}}},{"name":"4.7 Sync","fully_qualified_name":"4.7 Sync","kind":"section_3","ident_start":55325,"ident_end":55333,"extent_start":55321,"extent_end":55801,"ident_utf16":{"start":{"line_number":1528,"utf16_col":4},"end":{"line_number":1528,"utf16_col":12}},"extent_utf16":{"start":{"line_number":1528,"utf16_col":0},"end":{"line_number":1538,"utf16_col":0}}},{"name":"4.8 Ignored, legacy, and test-only variables","fully_qualified_name":"4.8 Ignored, legacy, and test-only variables","kind":"section_3","ident_start":55805,"ident_end":55849,"extent_start":55801,"extent_end":56777,"ident_utf16":{"start":{"line_number":1538,"utf16_col":4},"end":{"line_number":1538,"utf16_col":48}},"extent_utf16":{"start":{"line_number":1538,"utf16_col":0},"end":{"line_number":1554,"utf16_col":0}}},{"name":"5. Authentication matrix","fully_qualified_name":"5. Authentication matrix","kind":"section_2","ident_start":56780,"ident_end":56804,"extent_start":56777,"extent_end":59001,"ident_utf16":{"start":{"line_number":1554,"utf16_col":3},"end":{"line_number":1554,"utf16_col":27}},"extent_utf16":{"start":{"line_number":1554,"utf16_col":0},"end":{"line_number":1585,"utf16_col":0}}},{"name":"6. Deprecated and retired surface","fully_qualified_name":"6. Deprecated and retired surface","kind":"section_2","ident_start":59004,"ident_end":59037,"extent_start":59001,"extent_end":61248,"ident_utf16":{"start":{"line_number":1585,"utf16_col":3},"end":{"line_number":1585,"utf16_col":36}},"extent_utf16":{"start":{"line_number":1585,"utf16_col":0},"end":{"line_number":1636,"utf16_col":0}}},{"name":"6.1 Retired MCP toolsets: `admin` and `temporal`","fully_qualified_name":"6.1 Retired MCP toolsets: `admin` and `temporal`","kind":"section_3","ident_start":59168,"ident_end":59216,"extent_start":59164,"extent_end":59830,"ident_utf16":{"start":{"line_number":1590,"utf16_col":4},"end":{"line_number":1590,"utf16_col":52}},"extent_utf16":{"start":{"line_number":1590,"utf16_col":0},"end":{"line_number":1603,"utf16_col":0}}},{"name":"6.2 Retired container image: `cortex-web`","fully_qualified_name":"6.2 Retired container image: `cortex-web`","kind":"section_3","ident_start":59834,"ident_end":59875,"extent_start":59830,"extent_end":60126,"ident_utf16":{"start":{"line_number":1603,"utf16_col":4},"end":{"line_number":1603,"utf16_col":45}},"extent_utf16":{"start":{"line_number":1603,"utf16_col":0},"end":{"line_number":1611,"utf16_col":0}}},{"name":"6.3 Retired tool namespace: `mem_*` and Engram-era framing","fully_qualified_name":"6.3 Retired tool namespace: `mem_*` and Engram-era framing","kind":"section_3","ident_start":60130,"ident_end":60188,"extent_start":60126,"extent_end":60421,"ident_utf16":{"start":{"line_number":1611,"utf16_col":4},"end":{"line_number":1611,"utf16_col":62}},"extent_utf16":{"start":{"line_number":1611,"utf16_col":0},"end":{"line_number":1618,"utf16_col":0}}},{"name":"6.4 Retired configuration key: `multi_tenant`","fully_qualified_name":"6.4 Retired configuration key: `multi_tenant`","kind":"section_3","ident_start":60425,"ident_end":60470,"extent_start":60421,"extent_end":60824,"ident_utf16":{"start":{"line_number":1618,"utf16_col":4},"end":{"line_number":1618,"utf16_col":49}},"extent_utf16":{"start":{"line_number":1618,"utf16_col":0},"end":{"line_number":1627,"utf16_col":0}}},{"name":"6.5 Retired v1 root migrations","fully_qualified_name":"6.5 Retired v1 root migrations","kind":"section_3","ident_start":60828,"ident_end":60858,"extent_start":60824,"extent_end":61248,"ident_utf16":{"start":{"line_number":1627,"utf16_col":4},"end":{"line_number":1627,"utf16_col":34}},"extent_utf16":{"start":{"line_number":1627,"utf16_col":0},"end":{"line_number":1636,"utf16_col":0}}}]}},"codeViewLayoutRoute":{"repo":{"id":1194305059,"defaultBranch":"main","name":"cortex","ownerLogin":"lleontor705","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2026-03-28T07:01:48.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/14917127?v=4","public":true,"private":false,"isOrgOwned":false,"isArchived":false},"currentUser":null,"uploadToken":"SXrqoMbJRjqm24FRMHcpOwQZSZvvjozRAoe0JKt1xcfpw8Uj1849AjKTOavtv-3evnaKnZ3tAEfHkLhV7Qn8Bw","allShortcutsEnabled":false,"treeExpanded":true,"path":"docs/CLI-REFERENCE.md","symbolsExpanded":false,"refInfo":{"name":"v2.4.11","listCacheKey":"v0:1791646155.0","canEdit":false,"currentOid":"c0a7a0c602b430bcc99ffdef9b3b7c1ba8401858"},"helpUrl":"https://docs.github.com","githubDevUrl":null},"codeViewFileTreeLayoutRoute":{"fileTree":{"docs":{"items":[{"name":"assets","path":"docs/assets","contentType":"directory"},{"name":"specs","path":"docs/specs","contentType":"directory"},{"name":"AGENT-SETUP.es.md","path":"docs/AGENT-SETUP.es.md","contentType":"file"},{"name":"AGENT-SETUP.md","path":"docs/AGENT-SETUP.md","contentType":"file"},{"name":"ARCHITECTURE.es.md","path":"docs/ARCHITECTURE.es.md","contentType":"file"},{"name":"ARCHITECTURE.md","path":"docs/ARCHITECTURE.md","contentType":"file"},{"name":"BENCHMARKS.es.md","path":"docs/BENCHMARKS.es.md","contentType":"file"},{"name":"BENCHMARKS.md","path":"docs/BENCHMARKS.md","contentType":"file"},{"name":"CLI-REFERENCE.es.md","path":"docs/CLI-REFERENCE.es.md","contentType":"file"},{"name":"CLI-REFERENCE.md","path":"docs/CLI-REFERENCE.md","contentType":"file"},{"name":"CLI.es.md","path":"docs/CLI.es.md","contentType":"file"},{"name":"CLI.md","path":"docs/CLI.md","contentType":"file"},{"name":"CONFIGURATION.es.md","path":"docs/CONFIGURATION.es.md","contentType":"file"},{"name":"CONFIGURATION.md","path":"docs/CONFIGURATION.md","contentType":"file"},{"name":"COVERAGE.es.md","path":"docs/COVERAGE.es.md","contentType":"file"},{"name":"COVERAGE.md","path":"docs/COVERAGE.md","contentType":"file"},{"name":"GRAPH_INTELLIGENCE.es.md","path":"docs/GRAPH_INTELLIGENCE.es.md","contentType":"file"},{"name":"GRAPH_INTELLIGENCE.md","path":"docs/GRAPH_INTELLIGENCE.md","contentType":"file"},{"name":"HTTP-API.es.md","path":"docs/HTTP-API.es.md","contentType":"file"},{"name":"HTTP-API.md","path":"docs/HTTP-API.md","contentType":"file"},{"name":"INSTALLATION.es.md","path":"docs/INSTALLATION.es.md","contentType":"file"},{"name":"INSTALLATION.md","path":"docs/INSTALLATION.md","contentType":"file"},{"name":"MCP.es.md","path":"docs/MCP.es.md","contentType":"file"},{"name":"MCP.md","path":"docs/MCP.md","contentType":"file"},{"name":"OBSIDIAN_EXPORT.es.md","path":"docs/OBSIDIAN_EXPORT.es.md","contentType":"file"},{"name":"OBSIDIAN_EXPORT.md","path":"docs/OBSIDIAN_EXPORT.md","contentType":"file"},{"name":"PLUGINS.es.md","path":"docs/PLUGINS.es.md","contentType":"file"},{"name":"PLUGINS.md","path":"docs/PLUGINS.md","contentType":"file"},{"name":"RAILWAY_DEPLOYMENT.es.md","path":"docs/RAILWAY_DEPLOYMENT.es.md","contentType":"file"},{"name":"RAILWAY_DEPLOYMENT.md","path":"docs/RAILWAY_DEPLOYMENT.md","contentType":"file"},{"name":"README.md","path":"docs/README.md","contentType":"file"},{"name":"SERVER.es.md","path":"docs/SERVER.es.md","contentType":"file"},{"name":"SERVER.md","path":"docs/SERVER.md","contentType":"file"},{"name":"TRANSLATING.es.md","path":"docs/TRANSLATING.es.md","contentType":"file"},{"name":"TRANSLATING.md","path":"docs/TRANSLATING.md","contentType":"file"},{"name":"TUI-GUIDE.es.md","path":"docs/TUI-GUIDE.es.md","contentType":"file"},{"name":"TUI-GUIDE.md","path":"docs/TUI-GUIDE.md","contentType":"file"},{"name":"capability-matrix.es.md","path":"docs/capability-matrix.es.md","contentType":"file"},{"name":"capability-matrix.md","path":"docs/capability-matrix.md","contentType":"file"},{"name":"distribution.es.md","path":"docs/distribution.es.md","contentType":"file"},{"name":"distribution.md","path":"docs/distribution.md","contentType":"file"},{"name":"embedded-web.es.md","path":"docs/embedded-web.es.md","contentType":"file"},{"name":"embedded-web.md","path":"docs/embedded-web.md","contentType":"file"},{"name":"index.es.md","path":"docs/index.es.md","contentType":"file"},{"name":"index.md","path":"docs/index.md","contentType":"file"},{"name":"operator-runbook.es.md","path":"docs/operator-runbook.es.md","contentType":"file"},{"name":"operator-runbook.md","path":"docs/operator-runbook.md","contentType":"file"},{"name":"project-context-protocol-identity-privilege.es.md","path":"docs/project-context-protocol-identity-privilege.es.md","contentType":"file"},{"name":"project-context-protocol-identity-privilege.md","path":"docs/project-context-protocol-identity-privilege.md","contentType":"file"},{"name":"requirements.txt","path":"docs/requirements.txt","contentType":"file"},{"name":"server-saas.es.md","path":"docs/server-saas.es.md","contentType":"file"},{"name":"server-saas.md","path":"docs/server-saas.md","contentType":"file"},{"name":"verification-matrix.es.md","path":"docs/verification-matrix.es.md","contentType":"file"},{"name":"verification-matrix.md","path":"docs/verification-matrix.md","contentType":"file"}],"totalCount":54},"":{"items":[{"name":".claude-plugin","path":".claude-plugin","contentType":"directory"},{"name":".github","path":".github","contentType":"directory"},{"name":".husky","path":".husky","contentType":"directory"},{"name":"assets","path":"assets","contentType":"directory"},{"name":"bench","path":"bench","contentType":"directory"},{"name":"cmd","path":"cmd","contentType":"directory"},{"name":"docker","path":"docker","contentType":"directory"},{"name":"docs","path":"docs","contentType":"directory"},{"name":"e2e","path":"e2e","contentType":"directory"},{"name":"internal","path":"internal","contentType":"directory"},{"name":"migrations","path":"migrations","contentType":"directory"},{"name":"openspec","path":"openspec","contentType":"directory"},{"name":"packaging","path":"packaging","contentType":"directory"},{"name":"plugin","path":"plugin","contentType":"directory"},{"name":"scripts","path":"scripts","contentType":"directory"},{"name":"testutil","path":"testutil","contentType":"directory"},{"name":"tools","path":"tools","contentType":"directory"},{"name":"web","path":"web","contentType":"directory"},{"name":".dockerignore","path":".dockerignore","contentType":"file"},{"name":".env.example","path":".env.example","contentType":"file"},{"name":".gitattributes","path":".gitattributes","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":".golangci.yml","path":".golangci.yml","contentType":"file"},{"name":".goreleaser.yaml","path":".goreleaser.yaml","contentType":"file"},{"name":"AGENTS.md","path":"AGENTS.md","contentType":"file"},{"name":"CHANGELOG.md","path":"CHANGELOG.md","contentType":"file"},{"name":"CLAUDE.md","path":"CLAUDE.md","contentType":"file"},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"Makefile","path":"Makefile","contentType":"file"},{"name":"README.es.md","path":"README.es.md","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"after_server.cov","path":"after_server.cov","contentType":"file"},{"name":"app_prof","path":"app_prof","contentType":"file"},{"name":"baseline_server","path":"baseline_server","contentType":"file"},{"name":"baseline_server.cov","path":"baseline_server.cov","contentType":"file"},{"name":"baseline_tui","path":"baseline_tui","contentType":"file"},{"name":"cortex.yaml.example","path":"cortex.yaml.example","contentType":"file"},{"name":"cov_sandbox","path":"cov_sandbox","contentType":"file"},{"name":"docker-compose.yml","path":"docker-compose.yml","contentType":"file"},{"name":"go.mod","path":"go.mod","contentType":"file"},{"name":"go.sum","path":"go.sum","contentType":"file"},{"name":"mkdocs.yml","path":"mkdocs.yml","contentType":"file"},{"name":"package-lock.json","path":"package-lock.json","contentType":"file"},{"name":"package.json","path":"package.json","contentType":"file"},{"name":"setup_cover_baseline","path":"setup_cover_baseline","contentType":"file"},{"name":"stale","path":"stale","contentType":"file"}],"totalCount":47}},"fileTreeProcessingTime":77.44662500000001,"foldersToFetch":[]},"codeViewBlobLayoutRoute":{"codeLineWrapEnabled":false,"refInfo":{"name":"v2.4.11","listCacheKey":"v0:1791646155.0","canEdit":false,"refType":"tag","currentOid":"c0a7a0c602b430bcc99ffdef9b3b7c1ba8401858","canEditOnDefaultBranch":false,"fileExistsOnDefault":true},"path":"docs/CLI-REFERENCE.md","blob":{"copilotSWEAgentEnabled":false,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/lleontor705/cortex/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"CLI-REFERENCE.md","displayUrl":"https://github.com/lleontor705/cortex/blob/v2.4.11/docs/CLI-REFERENCE.md?raw=true","headerInfo":{"blobSize":"59.8 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":null,"isGitLfs":false,"onBranch":false,"shortPath":"feb6c5c","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Flleontor705%2Fcortex%2Fblob%2Fv2.4.11%2Fdocs%2FCLI-REFERENCE.md","isCSV":false,"isRichtext":true,"lineInfo":{"truncatedLoc":"1636","truncatedSloc":"1198"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"isIssueTemplate":false,"isDiscussionTemplate":false,"language":"Markdown","languageID":222,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/lleontor705/cortex/blob/v2.4.11/docs/CLI-REFERENCE.md","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/lleontor705/cortex/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/lleontor705/cortex/raw/refs/tags/v2.4.11/docs/CLI-REFERENCE.md","renderImageOrRaw":false,"shortPath":null,"symbolsEnabled":true,"tabSize":4,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null},"copilotInfo":null,"copilotAccessAllowed":false,"copilotSpacesEnabled":false,"modelsAccessAllowed":false,"modelsRepoIntegrationEnabled":false,"isMarketplaceEnabled":true},"codeViewBlobLayoutRoute.StyledBlob":{"rawLines":["# Cortex CLI Reference","","This is the single authoritative contract for the `cortex` command line binary","(`cmd/cortex`). Every command, flag, default, environment-variable override, exit","code, and authentication requirement documented here is anchored to the shipped","implementation: `cmd/cortex/main.go`, `internal/cli/cli.go`, `internal/cli/web.go`,","`internal/cli/watch.go`, `internal/platform/mode.go`, and `internal/config`.","","If this document and any other repository document disagree about CLI behavior,","this document wins. Flag tables must exist in exactly one place, and that place is","here.","","\u003e **Related references.** Configuration keys and file formats live in","\u003e [CONFIGURATION.md](CONFIGURATION.md). The MCP tool catalogs and profiles live in","\u003e [MCP.md](MCP.md). Server deployment lives in [SERVER.md](SERVER.md). The HTTP","\u003e REST surface lives in [HTTP-API.md](HTTP-API.md). Interactive terminal screens","\u003e live in [TUI-GUIDE.md](TUI-GUIDE.md).","","Sections: [invocation model](#1-invocation-model),","[global conventions](#2-global-conventions),","[command reference](#3-command-reference),","[environment-variable index](#4-environment-variable-index),","[authentication matrix](#5-authentication-matrix), and","[deprecated surface](#6-deprecated-and-retired-surface).","","---","","## 1. Invocation model","","### 1.1 Binary and argument order","","The production entrypoint is `cmd/cortex` (the `cortex` binary). The general form is:","","```text","cortex [--mode local|hybrid|server] \u003ccommand\u003e [arguments...]","```","","The binary first extracts and removes the global `--mode` flag, then dispatches on","the next positional argument (`args[1]`). Both flag syntaxes are accepted and the","flag may appear before or after the subcommand:","","```text","cortex --mode hybrid search \"release notes\"","cortex --mode=hybrid search \"release notes\"","cortex search \"release notes\" --mode=hybrid","```","","`--mode` parsing is strict. The valid set is exactly `local`, `hybrid`, and","`server`; any other value fails closed with exit code `2` and the error message:","","```text","cortex: unknown mode \"…\": use --mode local, --mode hybrid, or --mode server","```","","When `--mode` is absent the effective mode is `local`.","","### 1.2 The mode triad","","| Mode | Backend | Network surface | Notes |","|---|---|---|---|","| `local` | Single-binary SQLite (`~/.cortex/cortex.db`) with local stdio MCP | None required | Default. Byte-compatible with the standalone local composition. |","| `hybrid` | Local SQLite plus the remote sync/replication loop | Remote sync endpoint | Not a separate store: it is the local composition with replication layered on. The binary exports `CORTEX_MODE=hybrid` for the process. |","| `server` | Single-tenant PostgreSQL over authenticated HTTP and Streamable HTTP MCP | HTTP listener + `/mcp` | Wired by `cmd/cortex`; see [`--mode server`](#137-mode-server). |","","`cortex status` (alias `cortex mode`) reports the active triad and its","description. Server-mode PostgreSQL is single-tenant; tenant and workspace scope","are configuration constants, never client input.","","### 1.3 Exit-code contract","","| Code | Meaning | Producing conditions |","|---|---|---|","| `0` | Success. | The command completed and printed its result. Commands that find no matching data (for example an empty search) still exit `0`. |","| `1` | Failure. | A runtime error (database, network, filesystem), a validation failure, an unknown command, or a per-command argument/usage error (missing required arguments, invalid numeric flag, invalid subcommand). Running `cortex` with no command also exits `1`. |","| `2` | Usage / argument error at the invocation layer. | An invalid `--mode` value, or a `--mode server` argument/configuration failure: unknown server argument, `--config` without a path, invalid `reindex --project-id`, server config that fails to load, or server bootstrap/web-key failure. |","","```bash","# exit 0: a successful search","cortex search \"auth tokens\"","","# exit 1: missing search query","cortex search","echo $?   # 1","","# exit 2: invalid mode","cortex --mode bogus search \"x\"","echo $?   # 2","```","","\u003e **Note.** Per-command usage errors (for example `cortex save` without a title and","\u003e content, or `cortex config` without a subcommand) currently return `1`, not `2`.","\u003e Only top-level mode parsing and the server invocation layer use `2`.","","### 1.4 Bare interactive invocation → TUI","","When the effective mode is `local` or `hybrid` and the process is invoked","interactively with no command arguments:","","- the caller is an interactive terminal (`stdout` is a TTY and `stdin` is a TTY), and","- there are no command arguments,","","then the binary rewrites the invocation to `cortex tui` and launches the","interactive terminal UI instead of printing usage. This covers double-clicking the","binary on Windows or running `cortex` directly in a terminal. Non-interactive","invocations (pipes, scripts, CI) still print usage and exit `1`.","","### 1.5 Background update notice","","Every dispatch attempt except `help` starts a background update check. The result","is printed to **stderr**, never stdout, so it cannot corrupt machine-readable","output:","","```text","A new version of cortex is available: vX.Y.Z (current: vA.B.C)","\u003crelease-url\u003e","```","","- `cortex version` prints the notice synchronously.","- Other commands drain the background channel non-blockingly right before exiting,","  so the notice appears only when the check has already finished (best effort).","- `cortex update --check` performs a synchronous check instead.","","### 1.6 `cortex serve` versus `--mode server`","","`cortex serve` starts the **local** SQLite HTTP REST API and embedded web UI on the","configured listener (`http.host`/`http.port`, default `localhost:7438`). It is not","the PostgreSQL server.","","`cortex --mode server` starts the **single-tenant PostgreSQL** composition with","authenticated `/api/*` and Streamable HTTP MCP at `/mcp`, plus the embedded web UI.","See [`--mode server`](#137-mode-server).","","### 1.7 `--mode server`","","```text","cortex --mode server [options]","cortex --mode server reindex --project-id \u003cuuid\u003e [options]","```","","| Argument | Default | Environment override | Description |","|---|---|---|---|","| `--config \u003cpath\u003e` | *(none)* | — | Path to the server YAML configuration file. Also accepts `--config=\u003cpath\u003e`. |","| `reindex` | off | — | Run offline synchronous reindexing for one project, then exit. |","| `--project-id \u003cuuid\u003e` | *(required with reindex)* | — | Public project UUID to reindex. Must be a well-formed non-nil UUID. |","| `-h`, `--help`, `help` | — | — | Print server help and exit `0`. |","| `-v`, `--version`, `version` | — | — | Print the binary version and exit `0`. |","","Server startup reads configuration from `--config` (or the default search paths),","opens the PostgreSQL composition, mints or loads the embedded web access key, and","prints the endpoint banner:","","```text","cortex: server endpoint http://\u003chost\u003e:\u003cport\u003e","cortex: readiness http://\u003chost\u003e:\u003cport\u003e/health","cortex: API http://\u003chost\u003e:\u003cport\u003e/api/","cortex: MCP http://\u003chost\u003e:\u003cport\u003e/mcp","cortex: web http://\u003chost\u003e:\u003cport\u003e/","cortex: web key file \u003cpath\u003e","```","","On first boot the plaintext web access key is printed exactly once. `reindex`","prints a single summary line:","","```text","cortex: server reindex complete project=\u003cuuid\u003e corpus=N upserted=N reembedded=N skipped=N batches=N","```","","Exit codes: `0` success; `2` argument/config/bootstrap failure; `1` runtime","failure (`rt.Serve` error) or reindex execution error.","","Authentication: the server verifies the configured static bearer","(`http.token` / `CORTEX_HTTP_TOKEN`) on every `/api/*` and `/mcp` request before","binding the synthetic constant principal. `/health` is unauthenticated. The","embedded web UI uses the separate web access key.","","---","","## 2. Global conventions","","### 2.1 Flag styles","","- **Value flags** accept both forms: `--limit 20` and `--limit=20`. Most commands","  implement the space-separated form; `--mode`, `--tools`, `--profile`, and the","  `code` subcommands also accept the `=` form. When a value flag is used without a","  value, the parser either ignores it or falls back to its default rather than","  consuming the next token as a value.","- **Boolean flags** are presence-only (`--json`, `--graph-expand`, `--staged`,","  `--regex`, `--pack`, `--dry-run`, `--check`, `--include-personal`, `--force`,","  `--to-obsidian`, `--remote`). There is no `--flag=false` form for them.","- **Aliases.** Several commands accept short aliases: `-p` (`--project`),","  `-m` (`--max-files`), `-f` (`--file`/`--force`, context dependent),","  `-t` (`--token`), `-k` (`--key-file`), `-c` (`--check`), `-o` (`--output`).","- Unknown tokens that do not start with `-` are treated as positional arguments","  (a query, a path, a target). Unknown tokens that do start with `-` are ignored","  by most parsers rather than rejected.","","### 2.2 Defaults","","Flag defaults documented in this reference are the effective CLI defaults in","`internal/cli`. They are independent of configuration defaults: for example","`cortex search` uses a hard-coded result limit of `10`, while the configuration","key `search.default_limit` defaults to `20`. When both exist, the CLI default","applies unless the flag is supplied.","","### 2.3 Privacy preflight","","`cortex save` and `cortex import` run a privacy preflight before persisting:","","- All metadata fields (`project`, `topic_key`, `scope`, `type`, `source`,","  `session_id`, and tags) are validated with `privacy.ValidateMetadata`.","- `title` and `content` are passed through `privacy.ProtectField`.","- For batch import, the entire request is staged and validated against defensive","  copies; if any record fails, the import is rejected atomically with exit `1` and","  nothing is written.","","### 2.4 Identifier spaces","","- **Local mode** uses integer observation IDs (for example `#42`), opaque","  agent-provided session strings, and integer graph IDs.","- **Server mode** uses public UUIDs for observations and projects.","- The two spaces are not interchangeable. Numeric IDs from a local catalog must","  never be passed to server endpoints and vice versa.","","### 2.5 Output streams","","- Primary results go to **stdout**.","- Errors, warnings, and the background update notice go to **stderr**.","- `cortex serve` emits a pipe-safe `key=value` banner so its output stays","  machine-readable.","","---","","## 3. Command reference","","Command inventory at a glance:","","| Command | Purpose |","|---|---|","| [`help`](#31-help) | Print usage |","| [`version`](#32-version) | Print the binary version |","| [`tui`](#33-tui) | Launch the interactive terminal UI |","| [`serve`](#34-serve) | Start the local SQLite HTTP API + embedded web |","| [`mcp`](#35-mcp) | Start the local stdio MCP server |","| [`search`](#36-search) | Search observations |","| [`save`](#37-save) | Save an observation |","| [`context`](#38-context) | Show recent session context or a context pack |","| [`stats`](#39-stats) | Show memory statistics |","| [`timeline`](#310-timeline) | Show chronological context around an observation |","| [`revisions`](#311-revisions) | Show revision history for an observation |","| [`setup`](#312-setup) | Install agent integrations / configure Ollama |","| [`import`](#313-import) | Import observations from JSON |","| [`export`](#314-export) | Export observations to JSON or Obsidian |","| [`sync`](#315-sync) | Sync via file chunks or remote replication |","| [`merge-projects`](#316-merge-projects) | Merge project-name variants |","| [`reindex`](#317-reindex) | Rebuild vector embeddings |","| [`doctor`](#318-doctor) | Run health checks |","| [`gc`](#319-gc) | Garbage-collect archived observations |","| [`backup`](#320-backup) | Create an atomic SQLite snapshot |","| [`watch`](#321-watch) | Continuous file watcher for AST indexing |","| [`ingest`](#322-ingest) | One-shot AST ingestion |","| [`code`](#323-code) | Code AST intelligence (9 subcommands) |","| [`config`](#324-config) | Manage configuration |","| [`auth`](#325-auth) | Manage the local authentication token |","| [`web`](#326-web) | Manage the embedded web credential |","| [`status` / `mode`](#327-status--mode) | Display operational mode and status |","| [`migrate`](#328-migrate) | Manage database migrations |","| [`update`](#329-update) | Update Cortex to the latest release |","","### 3.1 `help`","","**Synopsis**","","```text","cortex help","cortex --help","cortex -h","```","","Prints the top-level usage/command list to stdout and exits `0`.","","**Arguments:** none. **Flags:** none. **Exit codes:** `0`. **Authentication:** none.","","**Example**","","```bash","cortex help","```","","**See also:** [version](#32-version).","","### 3.2 `version`","","**Synopsis**","","```text","cortex version","cortex --version","cortex -v","```","","Prints `cortex \u003cversion\u003e` to stdout, drains the background update notice, and exits","`0`. The version is injected by GoReleaser via ldflags; when built from source it","falls back to the module version, or `dev`.","","**Arguments:** none. **Flags:** none. **Exit codes:** `0`. **Authentication:** none.","","**Example**","","```bash","cortex version","# cortex v2.4.0","```","","**See also:** [update](#329-update).","","### 3.3 `tui`","","**Synopsis**","","```text","cortex tui [--config]","```","","Launches the Bubble Tea interactive terminal UI.","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--config` | off | — | Open the Configuration Center screen directly instead of the dashboard. |","","**Arguments:** none. **Exit codes:** `0` success, `1` on app-open or program error.","**Authentication:** none (local store).","","**Examples**","","```bash","cortex tui","cortex tui --config","```","","A bare interactive `cortex` invocation is rewritten to `cortex tui` (see","[§1.4](#14-bare-interactive-invocation--tui)).","","**See also:** [TUI-GUIDE.md](TUI-GUIDE.md), [`config wizard`](#324-config).","","### 3.4 `serve`","","**Synopsis**","","```text","cortex serve","```","","Starts the local SQLite HTTP REST API (`/api/*`) and, when the web surface mounts,","the embedded web UI. The listen address is `http.host:http.port`.","","`serve` takes no flags; the trailing arguments are ignored.","","| Setting | Default | Environment override | Description |","|---|---|---|---|","| `http.host` | `localhost` | `CORTEX_HTTP_HOST` | Listen interface. Empty/`localhost`/loopback is treated as local. |","| `http.port` | `7438` | `CORTEX_HTTP_PORT` | Listen port. |","| `http.token` | *(empty)* | `CORTEX_HTTP_TOKEN` | Static bearer. Required for non-loopback binds. |","| `http.allowed_origins` | `[]` | `CORTEX_HTTP_ALLOWED_ORIGINS` | CORS browser origins. |","","On first boot the web access key is minted and printed exactly once. The banner:","","```text","mode=local","store=\u003cdatabase path\u003e","sync=disabled|enabled","web=mounted|disabled","key_file=\u003cpath\u003e","listen=\u003chost\u003e:\u003cport\u003e","```","","**Exit codes:** `0` success; `1` if the app fails to open, the non-loopback bind","has no `http.token`, the web key cannot be resolved, or the listener fails.","**Authentication:** none by default; when `http.token` is set, `/api/*` and the","mounted MCP require `Authorization: Bearer \u003ctoken\u003e`. `/health` stays","unauthenticated.","","**Examples**","","```bash","cortex serve","CORTEX_HTTP_TOKEN=secret CORTEX_HTTP_HOST=0.0.0.0 cortex serve","```","","**See also:** [HTTP-API.md](HTTP-API.md), [web key](#326-web), [`--mode server`](#17-mode-server).","","### 3.5 `mcp`","","**Synopsis**","","```text","cortex mcp [--tools=PROFILE] [--profile=PROFILE]","```","","Starts the local stdio MCP server.","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--tools[=]PROFILE` | `mcp.profile` (default `agent`) | `CORTEX_MCP_PROFILE` | Tool catalog: `agent` (22 tools), `dev` (11 tools), `minimal` (5 tools). |","| `--profile[=]PROFILE` | *(same as `--tools`)* | `CORTEX_MCP_PROFILE` | Alias for `--tools`. |","","When `mcp.remote.enabled` is true, `cortex mcp` does not open SQLite; it proxies","the configured remote server and forwards calls over the local stdio transport.","In that mode the remote server owns the catalog and local profiles do not filter","it.","","**Exit codes:** `0` success; `1` on config load, app-open, or serve failure.","**Authentication:** none locally (process-scoped stdio). A remote proxy reads its","bearer from `mcp.remote.token_env` (default `CORTEX_REMOTE_TOKEN`).","","**Examples**","","```bash","cortex mcp","cortex mcp --tools=minimal","cortex mcp --profile dev","```","","The `admin` and `temporal` toolsets are retired; see","[§6](#6-deprecated-and-retired-surface).","","**See also:** [MCP.md](MCP.md), [`config`](#324-config).","","### 3.6 `search`","","**Synopsis**","","```text","cortex search \u003cquery\u003e [flags]","```","","Searches observations with multi-modal retrieval.","","**Arguments**","","| Argument | Required | Description |","|---|---|---|","| `\u003cquery\u003e` | yes | Query text. Multiple non-flag tokens are joined with spaces. |","","**Flags**","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--mode[=]MODE` | `auto` | — | Retrieval mode: `auto`, `direct`, `semantic`, `multi_hop`. `multi_hop` enables graph expansion; `direct` disables it. |","| `--graph-expand` | off | — | Force graph expansion on. |","| `--type TYPE` | *(empty)* | — | Filter by observation type. |","| `--project PROJECT` | *(empty)* | — | Filter by project. |","| `--scope SCOPE` | *(empty)* | — | Filter by scope. |","| `--limit N` | `10` | — | Maximum results. Must be an integer; invalid values exit `1`. |","","**Exit codes:** `0` success (including zero matches, which prints","`No memories found for: \"\u003cquery\u003e\"`); `1` for a missing/blank query, invalid","`--limit`, or store error. **Authentication:** none.","","**Examples**","","```bash","cortex search \"release process\"","cortex search \"graph ranking\" --mode=multi_hop --limit 5","cortex search \"auth\" --type decision --project cortex --scope project","```","","**See also:** [context](#38-context), [CONFIGURATION.md](CONFIGURATION.md).","","### 3.7 `save`","","**Synopsis**","","```text","cortex save \u003ctitle\u003e \u003ccontent\u003e [flags]","```","","Saves a local observation after the privacy preflight.","","**Arguments**","","| Argument | Required | Description |","|---|---|---|","| `\u003ctitle\u003e` | yes | Observation title. Must be non-blank. |","| `\u003ccontent\u003e` | yes | Observation body. Must be non-blank. |","","**Flags**","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--type TYPE` | `manual` | — | Observation type. |","| `--project PROJECT` | *(empty)* | — | Project name. |","| `--scope SCOPE` | `project` | — | Observation scope. |","| `--topic TOPIC_KEY` | *(empty)* | — | Stable topic key for dedupe/upsert. |","","The session ID defaults to `manual-save` (or `manual-save-\u003cproject\u003e` when a","project is given).","","**Exit codes:** `0` success; `1` on validation/privacy rejection or store error.","**Authentication:** none.","","**Examples**","","```bash","cortex save \"Release checklist\" \"Tag, build, publish, announce\"","cortex save \"Auth model\" \"Static bearer only\" --type decision --topic architecture/auth-model --project cortex","```","","**See also:** [import](#313-import), privacy preflight [§2.3](#23-privacy-preflight).","","### 3.8 `context`","","**Synopsis**","","```text","cortex context [project] [flags]","```","","Shows recent session context, or renders a context pack when a format is selected.","","**Arguments**","","| Argument | Required | Description |","|---|---|---|","| `[project]` | no | Project filter. The first non-flag token that is not a flag value. |","","**Flags**","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--scope SCOPE` | *(empty)* | — | Filter by scope. |","| `--format FORMAT` | *(empty)* | — | Render a context pack in the given format (for example `markdown`, `json`). Also accepts `--format=FORMAT`. |","| `--pack` | off | — | Shorthand: select the `markdown` pack format. |","| `--budget=N` | `0` | — | Include the repository map with an N-token budget (enables repo-map only when `\u003e 0`). |","","Without `--format`/`--pack`, prints up to 5 recent sessions and up to 20 recent","observations.","","**Exit codes:** `0` success (including no prior memories); `1` on render or store","error. **Authentication:** none.","","**Examples**","","```bash","cortex context","cortex context cortex --scope project","cortex context cortex --pack --budget=4096","```","","**See also:** [search](#36-search).","","### 3.9 `stats`","","**Synopsis**","","```text","cortex stats","```","","Prints sessions, observations, and project totals. Arguments are ignored.","","**Flags:** none. **Exit codes:** `0` success, `1` store error.","**Authentication:** none.","","**Example**","","```bash","cortex stats","# Cortex Memory Stats","#   Sessions:     4","#   Observations: 128","#   Projects:     cortex","```","","### 3.10 `timeline`","","**Synopsis**","","```text","cortex timeline \u003cobservation_id\u003e [--before N] [--after N]","```","","Prints observations adjacent in time around the target, with the target","highlighted.","","**Arguments**","","| Argument | Required | Description |","|---|---|---|","| `\u003cobservation_id\u003e` | yes | Integer observation ID. |","","**Flags**","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--before N` | `3` | — | Older neighbors to show. Must be an integer. |","| `--after N` | `3` | — | Newer neighbors to show. Must be an integer. |","","**Exit codes:** `0` success; `1` for missing/invalid ID, invalid counts, or store","error. **Authentication:** none.","","**Examples**","","```bash","cortex timeline 42","cortex timeline 42 --before 5 --after 10","```","","**See also:** [revisions](#311-revisions).","","### 3.11 `revisions`","","**Synopsis**","","```text","cortex revisions \u003cobservation_id\u003e [--limit N]","```","","Prints the temporal revision history for an observation.","","**Arguments**","","| Argument | Required | Description |","|---|---|---|","| `\u003cobservation_id\u003e` | yes | Integer observation ID. |","","**Flags**","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--limit N` | `20` | — | Maximum revisions to print. Non-positive values fall back to `20`. |","","**Exit codes:** `0` success (including `No revision history found`);","`1` for missing/invalid ID or store error. **Authentication:** none.","","**Examples**","","```bash","cortex revisions 42","cortex revisions 42 --limit 100","```","","### 3.12 `setup`","","**Synopsis**","","```text","cortex setup [agent] [flags]","cortex setup ollama [--base-url=URL] [--model=NAME]","```","","With no agent argument, prints detected agents and quick commands.","","**Arguments**","","| Argument | Required | Description |","|---|---|---|","| `[agent]` | no | One of `opencode`, `claude-code`, `gemini-cli`, `codex`, `ollama`. |","","**Flags**","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--profile[=]P` / `-p P` | `mcp.profile` (default `agent`) | `CORTEX_MCP_PROFILE` | Install profile: `dev` (11 tools), `minimal` (5 tools), `agent` (22 tools). |","| `--base-url=URL` | `http://localhost:11434` | — | `setup ollama` only: Ollama base URL. |","| `--model=NAME` | `nomic-embed-text` | — | `setup ollama` only: embedding model to configure. |","","**Exit codes:** `0` success (including detection-only mode); `1` on install or","Ollama configuration failure. **Authentication:** none.","","**Examples**","","```bash","cortex setup","cortex setup claude-code --profile=dev","cortex setup ollama --model=nomic-embed-text","```","","**See also:** [status](#327-status--mode), [MCP.md](MCP.md).","","### 3.13 `import`","","**Synopsis**","","```text","cortex import --from-json --path FILE","```","","Imports observations from a JSON array file. The input is capped at **50 MiB**","(`50 \u003c\u003c 20`); the entire batch is privacy-validated before any write.","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--from-json` | *(required first token)* | — | Select the JSON import source. |","| `--path FILE` | *(required)* | — | Input JSON file path. |","","Records whose save fails are skipped with a warning; the command still exits `0`","and reports `Imported \u003csaved\u003e of \u003ctotal\u003e observations from JSON`.","","**Exit codes:** `0` success; `1` for a missing source/`--path`, unreadable file,","invalid JSON, privacy rejection, or app-open error. **Authentication:** none.","","**Examples**","","```bash","cortex export --output backup.json","cortex import --from-json --path backup.json","```","","**See also:** [export](#314-export), privacy preflight [§2.3](#23-privacy-preflight).","","### 3.14 `export`","","**Synopsis**","","```text","cortex export [--project P] [--output FILE]","cortex export --to-obsidian --vault PATH [flags]","```","","Exports observations to JSON (stdout or a file) or to an Obsidian read-only","projection.","","**Flags**","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--project P` | *(empty)* | — | Filter by project. Also accepts `--project=P`. |","| `--output FILE` | *(stdout)* | — | Write JSON to `FILE` (mode `0600`). Also accepts `--output=FILE`. |","| `--to-obsidian` | off | — | Switch to the Obsidian projection. |","| `--vault PATH` | *(required with `--to-obsidian`)* | — | Target vault directory. |","| `--include-personal` | off | — | Include personal-scope observations in the projection. |","","The JSON export lists up to 10,000 observations.","","**Exit codes:** `0` success; `1` for store/write/marshal errors, or","`--to-obsidian` without `--vault`. **Authentication:** none.","","**Examples**","","```bash","cortex export --project cortex --output cortex.json","cortex export --to-obsidian --vault ~/vault/synapse --project cortex","```","","**See also:** [import](#313-import).","","### 3.15 `sync`","","**Synopsis**","","```text","cortex sync [--import | --status | --all] [--project P]","cortex sync --remote","```","","Synchronizes observations through file chunks (default: export) or remote","replication.","","**Flags**","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--import` | off | — | Import pending chunks instead of exporting. |","| `--status` | off | — | Print local/remote chunk counts and pending imports. |","| `--all` | off | — | Export all projects (no project auto-detection). |","| `--project P` | *(auto-detected)* | — | Restrict to a project. |","| `--remote` | off | — | Replicate against the configured remote endpoint (`sync.url`). |","","Default (no `--import`/`--status`/`--remote`): exports a chunk for the detected","project. `--remote` requires `sync.url`; the bearer is resolved from","`sync.token_env` (default `CORTEX_REMOTE_TOKEN`), falling back to `http.token`.","","**Exit codes:** `0` success; `1` for missing remote URL, sync errors, or app-open","failure. **Authentication:** remote replication requires a bearer; file transport","requires none.","","**Examples**","","```bash","cortex sync --status","cortex sync --all","cortex sync --remote","```","","**See also:** [CONFIGURATION.md](CONFIGURATION.md).","","### 3.16 `merge-projects`","","**Synopsis**","","```text","cortex merge-projects --from \"Name1,Name2\" --to canonical-name [--dry-run]","```","","Merges project-name variants into one canonical name.","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--from LIST` | *(required)* | — | Comma-separated source names. |","| `--to NAME` | *(required)* | — | Canonical target name. |","| `--dry-run` | off | — | Print the planned merge without writing. |","","**Exit codes:** `0` success (including dry run); `1` for missing `--from`/`--to`","or merge error. **Authentication:** none.","","**Examples**","","```bash","cortex merge-projects --from \"cortex,cortex-ia\" --to cortex --dry-run","cortex merge-projects --from \"cortex,cortex-ia\" --to cortex","```","","### 3.17 `reindex`","","**Synopsis**","","```text","cortex reindex [--project P]","```","","Regenerates vector embeddings for observations using the configured embedding","provider. Requires a configured embedding provider and a healthy vector store","(build with `-tags cortex_vectors` for the SQLite BLOB adapter). Processes up to","**5000** observations per run and prints progress every 50.","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--project P` | *(all projects)* | — | Restrict reindexing to one project. |","","When the provider is `ollama` and `search.ollama_auto_start` is true, the command","starts Ollama and pulls the model if missing.","","**Exit codes:** `0` success (including zero observations); `1` when no embedding","provider is configured, the vector store is unavailable, or an error occurs.","**Authentication:** none.","","**Examples**","","```bash","cortex reindex","cortex reindex --project cortex","```","","**See also:** [`code scan`](#323-code), [CONFIGURATION.md](CONFIGURATION.md).","","### 3.18 `doctor`","","**Synopsis**","","```text","cortex doctor","cortex doctor --server [URL]","```","","Runs local health checks, or probes a running server when `--server` is given.","","**Flags**","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--server [URL]` | off; URL default `http://localhost:7438` | `CORTEX_HTTP_TOKEN` (for the bearer probe) | Probe a server instead of the local store. If the next token does not start with `-`, it is used as the base URL. |","","Local checks: operating mode, database, FTS5 search, knowledge graph, vector","store, embeddings, orphan ratio, code AST index, Ollama daemon, and a","vendor-key isolation notice. Any failing check counts as an issue and the command","exits `1`.","","Server checks: `/health` (HTTP 200), optional bearer verification against `/mcp`","when `CORTEX_HTTP_TOKEN` (or `CORTEX_REMOTE_TOKEN`) is set, and an embedded web UI","probe. A server-side probe failure is informational and does not change the","exit-code semantics of the informational line.","","**Exit codes:** `0` all checks passed; `1` one or more issues.","**Authentication:** none locally; the server probe uses `CORTEX_HTTP_TOKEN`.","","**Examples**","","```bash","cortex doctor","cortex doctor --server","cortex doctor --server http://localhost:7438","```","","**See also:** [`status`](#327-status--mode).","","### 3.19 `gc`","","**Synopsis**","","```text","cortex gc [--days N]","```","","Hard-deletes soft-deleted/archived observations older than `N` days (up to 1000","candidates per run).","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--days N` | `90` | — | Age cutoff in days. Only positive integers are accepted; invalid values are ignored. |","","**Exit codes:** `0` success (including `Nothing to collect.`); `1` on list or","delete error. **Authentication:** none. **Warning:** this is a destructive","operation.","","**Examples**","","```bash","cortex gc","cortex gc --days 30","```","","### 3.20 `backup`","","**Synopsis**","","```text","cortex backup [path]","```","","Creates an atomic online snapshot of the SQLite database using `VACUUM INTO`.","","| Argument | Default | Environment override | Description |","|---|---|---|---|","| `[path]` | `cortex-backup-\u003cYYYYMMDD-HHMMSS\u003e.db` | — | Destination path. An existing target is removed first. |","","**Exit codes:** `0` success; `1` on path resolution, app-open, or backup error.","**Authentication:** none.","","**Examples**","","```bash","cortex backup","cortex backup ~/backups/cortex.db","```","","**See also:** [migrate](#328-migrate).","","### 3.21 `watch`","","**Synopsis**","","```text","cortex watch [path] [--project NAME]","```","","Watches a repository and incrementally re-indexes AST symbols on file","create/change/delete until interrupted (Ctrl+C). Prints `👀 Cortex File Watcher","activo en …` on start and `🛑 File Watcher detenido.` on stop (the watcher's live","progress strings are currently Spanish; this is a known cosmetic quirk).","","| Argument / Flag | Default | Environment override | Description |","|---|---|---|---|","| `[path]` | `.` | — | Directory to watch (resolved to an absolute path). |","| `--project NAME` / `--project=NAME` | auto-detected, else `default` | — | Project name for indexed symbols. |","","**Exit codes:** `0` clean stop; `1` on directory resolution, app-open, or watcher","error. **Authentication:** none.","","**Examples**","","```bash","cortex watch","cortex watch ./internal --project cortex","```","","**See also:** [ingest](#322-ingest), [`code scan`](#323-code).","","### 3.22 `ingest`","","**Synopsis**","","```text","cortex ingest [path] [--project NAME] [--max-files N]","```","","Scans a codebase once with the Zero-CGO static AST extractor, persists symbols and","relations, and prints Graphify analytics (files, cohesion, god nodes, import","cycles).","","**Arguments / Flags**","","| Argument / Flag | Default | Environment override | Description |","|---|---|---|---|","| `[path]` | `.` | — | Directory to scan. |","| `--project NAME` / `-p NAME` | auto-detected, else `default` | — | Project name. |","| `--max-files N` / `-m N` | `500` | — | Maximum files to scan. Only positive integers are accepted. |","","**Exit codes:** `0` success; `1` on extraction, app-open, or save error.","**Authentication:** none.","","**Examples**","","```bash","cortex ingest","cortex ingest ./internal --project cortex --max-files 200","```","","**See also:** [`code scan`](#323-code), [watch](#321-watch).","","### 3.23 `code`","","**Synopsis**","","```text","cortex code \u003csubcommand\u003e [arguments] [flags]","```","","Code AST intelligence. `cortex code`, `cortex code help`, `cortex code --help`,","and `cortex code -h` print the subcommand list and exit `0`.","","Subcommands:","","| Subcommand | Purpose |","|---|---|","| [`scan`](#code-scan) | Scan a repository and index AST symbols (same as `ingest`). |","| [`symbols`](#code-symbols) | List indexed symbols. |","| [`analyze`](#code-analyze) | Run Graphify architectural analytics. |","| [`impact`](#code-impact) | Calculate the blast radius of a symbol or file. |","| [`diff`](#code-diff) | Blast radius of uncommitted Git changes. |","| [`graph`](#code-graph) | Export/visualize the dependency graph. |","| [`map`](#code-map) | Generate a token-budgeted repo map. |","| [`tests`](#code-tests) | Find impacted test files/functions. |","| [`find`](#code-find) | Search symbols by substring or regex. |","","All subcommands default `--project` to `default` unless noted.","","#### `code scan`","","```text","cortex code scan [path] [--project=NAME] [--max-files=N]","```","","Delegates to [`ingest`](#322-ingest); identical flags and defaults","(`--max-files` default `500`).","","#### `code symbols`","","```text","cortex code symbols [--project=NAME] [--kind=KIND] [--file=PATH]","```","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--project=NAME` | `default` | — | Project name. |","| `--kind=KIND` | *(empty)* | — | Filter by symbol kind. |","| `--file=PATH` | *(empty)* | — | Filter by file path. |","","Lists up to 100 symbols.","","#### `code analyze`","","```text","cortex code analyze [--project=NAME]","```","","Prints totals, average cohesion, god nodes, and import cycles.","","#### `code impact`","","```text","cortex code impact \u003ctarget\u003e [--project=NAME] [--hops=N] [--json]","```","","| Flags/Args | Default | Environment override | Description |","|---|---|---|---|","| `\u003ctarget\u003e` | *(required)* | — | Symbol name, ID, or file path. |","| `--project=NAME` | `default` | — | Project name. |","| `--hops=N` | `3` | — | Traversal depth. |","| `--json` | off | — | Emit JSON. |","","`blast-radius` is an alias for `impact`.","","#### `code diff`","","```text","cortex code diff [--staged] [--project=NAME] [--hops=N] [--json]","```","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--staged` / `--cached` | off | — | Analyze the Git staging area instead of the working tree. |","| `--project=NAME` | `default` | — | Project name. |","| `--hops=N` | `3` | — | Traversal depth. |","| `--json` | off | — | Emit JSON. |","","Requires `git` and a Git repository.","","#### `code graph`","","```text","cortex code graph [--project=NAME] [--format=mermaid] [--symbol=S] [--hops=N] [--max-nodes=N]","```","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--project=NAME` | `default` | — | Project name. |","| `--format=F` | `mermaid` | — | Output format: `mermaid`, `ascii` (alias `tree`), `json`. Unknown formats exit `1`. |","| `--symbol=S` | *(empty)* | — | Root symbol to center the graph on. |","| `--hops=N` | `2` | — | Traversal depth when a root symbol is given. |","| `--max-nodes=N` | `50` | — | Maximum nodes. |","","#### `code map`","","```text","cortex code map [--project=NAME] [--budget=N]","```","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--project=NAME` | `default` | — | Project name. |","| `--budget=N` | `2048` | — | Token budget. |","","`repo-map` is an alias for `map`.","","#### `code tests`","","```text","cortex code tests \u003ctarget\u003e [--project=NAME] [--hops=N] [--json]","```","","| Flags/Args | Default | Environment override | Description |","|---|---|---|---|","| `\u003ctarget\u003e` | *(required)* | — | Symbol name, ID, or file path. |","| `--project=NAME` | `default` | — | Project name. |","| `--hops=N` | `3` | — | Traversal depth. |","| `--json` | off | — | Emit JSON. |","","`test-map` and `impacted-tests` are aliases for `tests`.","","#### `code find`","","```text","cortex code find \u003cquery\u003e [--project=NAME] [--kind=K] [--file=PATH] [--limit=N] [--regex] [--json]","```","","| Flags/Args | Default | Environment override | Description |","|---|---|---|---|","| `\u003cquery\u003e` | *(required)* | — | Substring or regex query. |","| `--project=NAME` | `default` | — | Project name. |","| `--kind=K` | *(empty)* | — | Filter by symbol kind. |","| `--file=PATH` | *(empty)* | — | Filter by file path. |","| `--limit=N` | `50` | — | Maximum results. |","| `--regex` | off | — | Treat the query as a regular expression. |","| `--json` | off | — | Emit JSON. |","","`search-symbols` is an alias for `find`.","","**Exit codes:** `0` success; `1` for missing required targets/queries, unknown","formats, unknown subcommands, or store errors. **Authentication:** none.","","**Examples**","","```bash","cortex code scan . --project cortex","cortex code symbols --project cortex --kind func","cortex code impact CalculateBlastRadius --project cortex --hops=2","cortex code diff --staged --json","cortex code graph --project cortex --format=ascii --max-nodes=30","cortex code tests CalculateBlastRadius","cortex code find \"RepoMap\" --project cortex --regex","```","","**See also:** [ingest](#322-ingest), [watch](#321-watch).","","### 3.24 `config`","","**Synopsis**","","```text","cortex config \u003csubcommand\u003e [arguments] [flags]","```","","Manages configuration without editing files by hand.","","| Subcommand | Purpose |","|---|---|","| `get \u003ckey\u003e [--file=PATH]` | Print one value. |","| `set \u003ckey\u003e \u003cvalue\u003e [--file=PATH] [--format=FMT]` | Set a value and persist. |","| `show` / `print` | Print the active config (`--format` `yaml` default or `json`; secrets masked). |","| `validate` | Validate a config file. |","| `init` | Write a minimal config file. |","| `path` | Print the resolved config file path. |","| `wizard` / `interactive` | Launch the configuration wizard. |","","| Flag | Applies to | Default | Environment override | Description |","|---|---|---|---|---|","| `--file PATH` / `-f` / `--config` | `get`, `set`, `show`, `validate` | *(discovered)* | — | Explicit config file. Also accepts `--file=PATH` / `--config=PATH`. |","| `--format FMT` | `show`, `init`, `set` | `yaml` | — | `yaml` or `json` for `show`; `yaml`/`json`/`toml` extension for `set`/`init`. |","| `--force` / `-f` | `init` | off | — | Overwrite an existing file. |","| `-o PATH` / `--output PATH` | `init` | *(default config dir)* | — | Output path. |","| `--cli` | `wizard` | off | — | Force the CLI wizard. |","| `--tui` | `wizard` | off | — | Force the TUI wizard. |","","When `wizard` is run with neither flag, it launches the TUI wizard if stdout is a","terminal; otherwise it falls back to the CLI summary.","","Settable keys (via `get`/`set`): `ai.provider` (alias `llm.provider`), `ai.model`,","`ai.base_url`, `database.path`, `database.in_memory`, `http.enabled`,","`http.port`, `http.host`, `http.token`, `logging.level`, `logging.format`,","`search.embedding_provider` (alias `embedding.provider`),","`search.embedding_model`, `search.embedding_base_url`, `search.vector`,","`search.fts5`, `search.ollama_auto_start`, `mcp.enabled`, `mcp.profile`,","`mcp.remote.enabled`, `mcp.remote.url`, `mcp.remote.token_env`, `sync.enabled`,","`sync.url`, `sync.token_env`, `sync.interval`, `memory.auto_archive_days`,","`memory.importance_decay_half_life`, `memory.min_archive_score`, `vector.provider`.","","`config show` masks `http.token`, `vector.qdrant.api_key`,","`server.secrets.signing_key`, and `server.secrets.oidc_client_secret`.","","**Exit codes:** `0` success; `1` for a missing/unknown subcommand or key,","invalid value, or load/save error. **Authentication:** none.","","**Examples**","","```bash","cortex config path","cortex config get http.port","cortex config set http.port 8080","cortex config set mcp.profile minimal","cortex config show --format=json","cortex config validate --file ./cortex.yaml","cortex config init --format=toml --force","cortex config wizard --cli","```","","**See also:** [CONFIGURATION.md](CONFIGURATION.md).","","### 3.25 `auth`","","**Synopsis**","","```text","cortex auth \u003clogin|status|logout\u003e [options]","```","","Manages the local authentication token stored in `http.token`.","","| Subcommand | Flags | Behavior |","|---|---|---|","| `login` | `--token TOKEN` / `-t` / `--token=TOKEN` | Persists the token to the loaded config. Requires a non-empty token. |","| `status` / `whoami` | none | Prints mode, masked token, principal, and role. |","| `logout` | none | Clears `http.token` and saves. |","","**Exit codes:** `0` success; `1` for a missing subcommand, a missing login token,","or a load/save error. **Authentication:** none (this command manages the","credential itself).","","**Examples**","","```bash","cortex auth login --token=\u003cbearer\u003e","cortex auth status","cortex auth logout","```","","**See also:** [§5 Authentication matrix](#5-authentication-matrix).","","### 3.26 `web`","","**Synopsis**","","```text","cortex web key show [--key-file PATH]","cortex web key regenerate [--key-file PATH]","```","","Manages the embedded web access key (independent of `http.token`).","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--key-file PATH` / `-k` / `--key-file=PATH` | `\u003cconfig dir\u003e/web.key` | — | Key file location. |","","- `show` reports whether a key exists, its file path, and its prefix. It never","  prints the plaintext.","- `regenerate` rotates the key atomically and prints the new plaintext exactly","  once; the previous key is invalidated.","","**Exit codes:** `0` success; `1` for a missing subcommand, an unexpected","argument, or a key store error. **Authentication:** none.","","**Examples**","","```bash","cortex web key show","cortex web key regenerate","```","","**See also:** [serve](#34-serve), [`--mode server`](#17-mode-server).","","### 3.27 `status` / `mode`","","**Synopsis**","","```text","cortex status [--json]","cortex mode [--json]","```","","Prints the operational mode, database path, sync status, embeddings, and config","path. `mode` is an alias for `status`.","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--json` | off | — | Emit a JSON object instead of the human-readable block. |","","The JSON shape is:","","```json","{","  \"mode\": \"local\",","  \"description\": \"Local (Zero-CGO SQLite Standalone Memory)\",","  \"database\": { \"path\": \"…\", \"in_memory\": false },","  \"sync\": { \"enabled\": false, \"url\": \"\" },","  \"embeddings\": \"disabled / not configured\",","  \"config_path\": \"…\"","}","```","","The effective mode is resolved from `CORTEX_MODE`, then `server.storage.dsn`, then","`sync.enabled` + `sync.url`, then `local`.","","**Exit codes:** `0` success. **Authentication:** none.","","**Examples**","","```bash","cortex status","cortex status --json","cortex mode --json","```","","**See also:** [doctor](#318-doctor), [§1.2 mode triad](#12-the-mode-triad).","","### 3.28 `migrate`","","**Synopsis**","","```text","cortex migrate \u003cup|down|status\u003e [--target VERSION]","```","","Manages database migrations.","","| Subcommand | Behavior |","|---|---|","| `up` | Apply all pending migrations. |","| `down [--target N]` | Roll back to version `N` (default `0`). |","| `status` | Print each migration's version, name, and applied timestamp. |","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--target N` | `0` | — | Target version for `down`. |","","The local v2 baseline is forward-only. `migrate down` is not a supported normal","operation and existing v2 databases must not be downgraded automatically.","","**Exit codes:** `0` success; `1` for a missing/unknown subcommand, an invalid","target, or a migration error. **Authentication:** none.","","**Examples**","","```bash","cortex migrate status","cortex migrate up","```","","**See also:** [backup](#320-backup).","","### 3.29 `update`","","**Synopsis**","","```text","cortex update [--check]","```","","Updates Cortex to the latest release, or checks for one.","","| Flag | Default | Environment override | Description |","|---|---|---|---|","| `--check` / `-c` | off | — | Report the latest release without installing. |","","When a newer release exists, `--check` prints the version, release notes, and","release page. Without `--check`, a self-update is attempted.","","**Exit codes:** `0` success (including up-to-date); `1` when the update fails.","**Authentication:** none (uses the public release channel).","","**Examples**","","```bash","cortex update --check","cortex update","```","","---","","## 4. Environment-variable index","","Cortex resolves configuration from the config file first, then from environment","variables. Every configuration key is automatically addressable as","`CORTEX_` + the upper-cased key with `.` replaced by `_` (viper","`AutomaticEnv` with the `CORTEX` prefix). For example `http.port` becomes","`CORTEX_HTTP_PORT`. The variables below are listed alphabetically; the","\"Default\" column is the effective default when neither a config file nor the","variable is set.","","### 4.1 Core and identity","","| Variable | Config key | Default | Meaning |","|---|---|---|---|","| `CORTEX_MODE` | — | *(empty → `local`)* | Selects the mode triad: `local`, `hybrid`, `server`. |","| `CORTEX_SERVER_NAME` | `server.name` | `cortex` | Server name. |","| `CORTEX_SERVER_VERSION` | `server.version` | `2.0.0` | Server version label. |","| `CORTEX_SERVER_TENANT_ID` | `server.tenant_id` | *(empty)* | Tenant UUID bound to the synthetic principal. Required in server mode. |","| `CORTEX_SERVER_WORKSPACE_ID` | `server.workspace_id` | *(empty)* | Default workspace UUID. Required in server mode. |","| `CORTEX_SERVER_PRINCIPAL_SUBJECT` | `server.principal_subject` | *(empty)* | Subject UUID of the synthetic constant principal. Required in server mode. |","| `CORTEX_SERVER_ROLES` | `server.roles` | `[]` | Comma-separated roles for the configured principal. |","| `CORTEX_SERVER_SCOPES` | `server.scopes` | `[]` | Comma-separated authorized scopes. |","| `CORTEX_SERVER_PROJECT_IDS` | `server.project_ids` | `[]` | Comma-separated project IDs. |","| `CORTEX_SERVER_CLASSIFICATION_CLEARANCE` | `server.classification_clearance` | `[]` | Comma-separated classification clearance labels. |","| `CORTEX_SERVER_GRANT_DIGEST` | `server.grant_digest` | `\"\"` | Deprecated; calculated dynamically by PostgreSQL. |","| `CORTEX_SERVER_GRANT_VERSION` | `server.grant_version` | `0` | Deprecated; provisioned dynamically by PostgreSQL. |","| `CORTEX_SERVER_SECRETS_SIGNING_KEY` | `server.secrets.signing_key` | `\"\"` | Server signing secret. Masked by `config show`. |","| `CORTEX_SERVER_SECRETS_OIDC_CLIENT_SECRET` | `server.secrets.oidc_client_secret` | `\"\"` | OIDC client secret. Masked by `config show`. |","","### 4.2 Server storage and startup","","| Variable | Config key | Default | Meaning |","|---|---|---|---|","| `CORTEX_SERVER_STORAGE_DRIVER` | `server.storage.driver` | `postgres` | Persistence driver (`postgres` server / `sqlite` local). |","| `CORTEX_SERVER_STORAGE_DSN` | `server.storage.dsn` | *(empty)* | Non-privileged runtime PostgreSQL DSN. |","| `CORTEX_SERVER_STORAGE_MIGRATION_DSN` | `server.storage.migration_dsn` | *(empty)* | Privileged migration DSN. Runtime and migration roles must differ. |","| `CORTEX_SERVER_STORAGE_MAX_CONNS` | `server.storage.max_conns` | `10` | Maximum pool connections. |","| `CORTEX_SERVER_PROVIDER_EMBEDDING` | `server.provider.embedding` | `none` | Server embedding provider selection. |","| `CORTEX_SERVER_PROVIDER_VECTOR` | `server.provider.vector` | `none` | Server vector provider selection. |","| `CORTEX_SERVER_RAILWAY_INTERNAL_EMBEDDING_HOST` | `server.railway_internal_embedding_host` | `\"\"` | Railway private hostname allowed for HTTP embeddings. |","| `CORTEX_SERVER_BOOTSTRAP_DEVELOPMENT` | `server.bootstrap_development` | `false` (opt-in; production-unsafe) | Development-only mode that reuses the runtime DSN for migrations when a dedicated migration role is not separated. The compose files ship it as the default source for containers; never enable it in a shared deployment. |","| `CORTEX_SERVER_AUTO_BOOTSTRAP` | *(compose/entrypoint only)* | `true` in compose | Enables the container entrypoint's automatic bootstrap path. |","| `CORTEX_SERVER_PRINT_BOOTSTRAP` | *(entrypoint only)* | `false` (opt-in; production-unsafe) | Gates echoing the bootstrap bearer into container logs. Leave unset in production; the bearer is otherwise written only to the state file. |","| `CORTEX_BOOTSTRAP_STATE_FILE` | *(entrypoint only)* | `/home/cortex/.cortex/server-bootstrap.env` | Persisted bootstrap state location in the container. |","| `CORTEX_SERVER_MULTI_TENANT` | *(retired key)* | `false` | Removed configuration key. Loading it is tolerated but it is ignored and dropped on the next save. |","","### 4.3 HTTP, logging, and MCP","","| Variable | Config key | Default | Meaning |","|---|---|---|---|","| `CORTEX_HTTP_ENABLED` | `http.enabled` | `true` | Enables `/api/*` and `/mcp`. |","| `CORTEX_HTTP_HOST` | `http.host` | `localhost` | Listen interface (`0.0.0.0` for containers). |","| `CORTEX_HTTP_PORT` | `http.port` | `7438` | Listen port. `CORTEX_PORT` is intentionally not honored. |","| `CORTEX_HTTP_TOKEN` | `http.token` | `\"\"` | Static bearer for local HTTP/MCP and the server request plane. Required for non-loopback binds. |","| `CORTEX_HTTP_ALLOWED_ORIGINS` | `http.allowed_origins` | `[]` | Comma-separated CORS origins. |","| `CORTEX_LOGGING_LEVEL` | `logging.level` | `info` | `debug`, `info`, `warn`, `error`. |","| `CORTEX_LOGGING_FORMAT` | `logging.format` | `json` | `json`, `text`, `plain`. |","| `CORTEX_MCP_ENABLED` | `mcp.enabled` | `true` | Enables local MCP. |","| `CORTEX_MCP_PROFILE` | `mcp.profile` | `agent` | `agent`, `dev`, `minimal`. |","| `CORTEX_MCP_REMOTE_ENABLED` | `mcp.remote.enabled` | `false` | Proxy a remote MCP server. |","| `CORTEX_MCP_REMOTE_URL` | `mcp.remote.url` | `\"\"` | Remote MCP destination. |","| `CORTEX_MCP_REMOTE_TOKEN_ENV` | `mcp.remote.token_env` | `CORTEX_REMOTE_TOKEN` | Name of the variable holding the remote bearer. |","| `CORTEX_MCP_REMOTE_TIMEOUT` | `mcp.remote.timeout` | `30s` | Remote MCP timeout. |","| `CORTEX_REMOTE_TOKEN` | *(token env target)* | *(empty)* | Default holder for remote MCP/sync bearer tokens. |","","### 4.4 Database and storage","","| Variable | Config key | Default | Meaning |","|---|---|---|---|","| `CORTEX_DATABASE_PATH` | `database.path` | `~/.cortex/cortex.db` | SQLite database path. |","| `CORTEX_DATABASE_IN_MEMORY` | `database.in_memory` | `false` | Use an in-memory database. |","| `CORTEX_DATABASE_PRAGMA_JOURNAL_MODE` | `database.pragma.journal_mode` | `WAL` | SQLite journal mode. |","| `CORTEX_DATABASE_PRAGMA_SYNCHRONOUS` | `database.pragma.synchronous` | `NORMAL` | SQLite synchronous mode. |","| `CORTEX_DATABASE_PRAGMA_CACHE_SIZE` | `database.pragma.cache_size` | `-64000` | SQLite cache size (KiB). |","| `CORTEX_DATABASE_PRAGMA_FOREIGN_KEYS` | `database.pragma.foreign_keys` | `true` | Enforce foreign keys. |","| `CORTEX_DATABASE_PRAGMA_TEMP_STORE` | `database.pragma.temp_store` | `MEMORY` | Temp store location. |","| `CORTEX_DATABASE_PRAGMA_MMAP_SIZE` | `database.pragma.mmap_size` | `268435456` | mmap size. |","","### 4.5 Search, embeddings, and LLM","","| Variable | Config key | Default | Meaning |","|---|---|---|---|","| `CORTEX_SEARCH_DEFAULT_LIMIT` | `search.default_limit` | `20` | Default result limit for store queries. |","| `CORTEX_SEARCH_MAX_LIMIT` | `search.max_limit` | `100` | Maximum result limit. |","| `CORTEX_SEARCH_FTS5` | `search.fts5` | `true` | Enable FTS5. |","| `CORTEX_SEARCH_VECTOR` | `search.vector` | `false` | Enable dense vector retrieval. |","| `CORTEX_SEARCH_FUSION_K` | `search.fusion_k` | `60` | RRF fusion constant. |","| `CORTEX_SEARCH_OLLAMA_AUTO_START` | `search.ollama_auto_start` | `false` | Auto-start Ollama when it is the embedding provider. |","| `CORTEX_SEARCH_EMBEDDING_PROVIDER` | `search.embedding_provider` | *(empty)* | Embedding provider (auto-mapped alias). |","| `CORTEX_SEARCH_EMBEDDING_MODEL` | `search.embedding_model` | *(empty)* | Embedding model (auto-mapped alias). |","| `CORTEX_SEARCH_EMBEDDING_BASE_URL` | `search.embedding_base_url` | *(empty)* | Embedding base URL (auto-mapped alias). |","| `CORTEX_EMBEDDING_PROVIDER` | `search.embedding_provider` | `none` | Embedding provider: `none`, `openai`, `ollama`, `openai-compatible`. Unknown values fail closed at load time. |","| `CORTEX_EMBEDDING_MODEL` | `search.embedding_model` | `text-embedding-3-small` | Embedding model identifier. |","| `CORTEX_EMBEDDING_BASE_URL` | `search.embedding_base_url` | `http://localhost:11434` (Ollama) | Embedding base URL. |","| `CORTEX_EMBEDDING_API_KEY` | *(credential)* | *(empty)* | Embedding credential. Required for hosted embedding providers. |","| `CORTEX_LLM_PROVIDER` | `ai.provider` | *(empty)* | LLM provider. |","| `CORTEX_LLM_MODEL` | `ai.model` | *(empty)* | LLM model. |","| `CORTEX_LLM_BASE_URL` | `ai.base_url` | *(empty)* | LLM base URL. |","| `CORTEX_LLM_API_KEY` | *(credential)* | *(empty)* | LLM credential. Vendor variables such as `OPENAI_API_KEY`/`ANTHROPIC_API_KEY` are deliberately ignored. |","| `CORTEX_LLM_ALLOWED_HOSTS` | *(server LLM)* | *(empty)* | Comma-separated allowed LLM hosts. |","| `CORTEX_LLM_ALLOWED_PORTS` | *(server LLM)* | *(empty)* | Comma-separated allowed LLM ports. |","| `CORTEX_LLM_ALLOW_LOOPBACK` | *(server LLM)* | `false` | Allow loopback LLM destinations. |","| `CORTEX_LLM_ALLOW_LOOPBACK_HTTP` | *(server LLM)* | `false` | Allow plain HTTP loopback destinations. |","| `CORTEX_LLM_MAX_CONCURRENT` | *(server LLM)* | *(provider default)* | Maximum concurrent LLM requests. |","| `CORTEX_LLM_MAX_REDIRECTS` | *(server LLM)* | *(provider default)* | Maximum redirects. |","| `CORTEX_LLM_MAX_RESPONSE_BODY_BYTES` | *(server LLM)* | *(provider default)* | Maximum response body size. |","| `CORTEX_LLM_MAX_ERROR_BODY_BYTES` | *(server LLM)* | *(provider default)* | Maximum error body size. |","| `CORTEX_LLM_TIMEOUT` | *(server LLM)* | *(provider default)* | LLM request timeout (duration). |","| `CORTEX_LLM_CA_FILE` | *(server LLM)* | *(empty)* | PEM CA bundle for the LLM TLS handshake. |","","### 4.6 Memory, lifecycle, and vectors","","| Variable | Config key | Default | Meaning |","|---|---|---|---|","| `CORTEX_MEMORY_MAX_OBSERVATION_LENGTH` | `memory.max_observation_length` | `50000` | Maximum observation length. |","| `CORTEX_MEMORY_DEDUPE_WINDOW` | `memory.dedupe_window` | `15m` | Dedupe window. |","| `CORTEX_MEMORY_AUTO_ARCHIVE_DAYS` | `memory.auto_archive_days` | `90` | Auto-archive age. |","| `CORTEX_MEMORY_IMPORTANCE_DECAY_HALF_LIFE` | `memory.importance_decay_half_life` | `30` | Importance decay half-life (days). |","| `CORTEX_MEMORY_MIN_ARCHIVE_SCORE` | `memory.min_archive_score` | `0.1` | Minimum score to retain. |","| `CORTEX_LIFECYCLE_ENABLE_AUTO_ARCHIVE` | `lifecycle.enable_auto_archive` | `true` | Enable the auto-archive loop. |","| `CORTEX_LIFECYCLE_ARCHIVE_CHECK_INTERVAL` | `lifecycle.archive_check_interval` | `1h` | Archive check interval. |","| `CORTEX_VECTOR_PROVIDER` | `vector.provider` | *(empty → `sqlite_blob`)* | Vector backend: unset local BLOB, `qdrant`, or `pgvector`. |","| `CORTEX_VECTOR_PGVECTOR_DIMENSION` | *(server pgvector)* | resolved from model | pgvector dimension override. |","| `CORTEX_VECTOR_QDRANT_HOST` | `vector.qdrant.host` | `localhost` | Qdrant host (auto-mapped; adapter is server-only). |","| `CORTEX_VECTOR_QDRANT_PORT` | `vector.qdrant.port` | `6334` | Qdrant port (auto-mapped). |","| `CORTEX_VECTOR_QDRANT_COLLECTION` | `vector.qdrant.collection` | `cortex` | Qdrant collection (auto-mapped). |","| `CORTEX_VECTOR_QDRANT_API_KEY` | `vector.qdrant.api_key` | `\"\"` | Qdrant API key (masked by `config show`). |","| `CORTEX_VECTOR_PGVECTOR_SCHEMA` | `vector.pgvector.schema` | `cortex_vector` | pgvector schema. |","| `CORTEX_VECTOR_PGVECTOR_TABLE` | `vector.pgvector.table` | `embeddings` | pgvector table. |","| `CORTEX_VECTOR_PGVECTOR_DSN` | `vector.pgvector.dsn` | *(empty)* | pgvector DSN (server-only). |","","### 4.7 Sync","","| Variable | Config key | Default | Meaning |","|---|---|---|---|","| `CORTEX_SYNC_ENABLED` | `sync.enabled` | `false` | Enable synchronization. |","| `CORTEX_SYNC_URL` | `sync.url` | `\"\"` | Remote sync endpoint. |","| `CORTEX_SYNC_TOKEN_ENV` | `sync.token_env` | `CORTEX_REMOTE_TOKEN` | Name of the variable holding the sync bearer. |","| `CORTEX_SYNC_INTERVAL` | `sync.interval` | `30s` | Sync interval. |","| `CORTEX_SYNC_TIMEOUT` | `sync.timeout` | `30s` | Sync timeout. |","","### 4.8 Ignored, legacy, and test-only variables","","| Variable | Status | Meaning |","|---|---|---|","| `CORTEX_AI_API_KEY` | **Ignored** | Not accepted; use `CORTEX_LLM_API_KEY` or `CORTEX_EMBEDDING_API_KEY`. |","| `CORTEX_SEARCH_EMBEDDING_API_KEY` | **Ignored (legacy)** | Not accepted; use `CORTEX_EMBEDDING_API_KEY`. |","| `CORTEX_TEST_POSTGRES_DSN` | Test-only | Integration test runtime DSN (fails when missing, never skips). |","| `CORTEX_TEST_POSTGRES_MIGRATION_DSN` | Test-only | Integration test migration DSN. |","| `CORTEX_TEST_POSTGRES_AUTHZ_ADMIN_DSN` | Test-only | Integration test authz-admin DSN. |","| `CORTEX_QDRANT_HOST` / `CORTEX_QDRANT_PORT` | Test-only | Qdrant adapter integration test target. |","| `CORTEX_PGVECTOR_DSN` | Test-only | pgvector adapter integration test target. |","| `CORTEX_SPIKE_PG_ADMIN_DSN` / `CORTEX_SPIKE_PGBOUNCER_DSN` | Test-only | Governance spike DSNs. |","| `CORTEX_RESOURCE_HELPER_MARKER` | Test-only | Benchmark resource helper marker. |","","---","","## 5. Authentication matrix","","Cortex has four credential planes. The table states which credential applies per","command and per transport.","","| Command / transport | Local SQLite | Local HTTP (`serve`) | Server (`--mode server`) | MCP |","|---|---|---|---|---|","| `search`, `save`, `context`, `stats`, `timeline`, `revisions`, `export`, `import`, `merge-projects`, `gc`, `backup`, `reindex`, `ingest`, `code`, `watch`, `tui`, `doctor` (local), `status`, `migrate`, `config`, `setup` | **No auth** (zero-auth local) | n/a | n/a | n/a |","| `serve` | — | `/health` unauthenticated; `/api/*` and mounted MCP require `Authorization: Bearer \u003chttp.token\u003e` when `http.token` is set. Without a token, only loopback binds are allowed. | — | — |","| `--mode server` | — | — | `/health` unauthenticated; every `/api/*` and `/mcp` request requires the configured static bearer (`http.token` / `CORTEX_HTTP_TOKEN`) before the synthetic constant principal is bound. | Static bearer |","| `mcp` (local stdio) | **No auth** (process-scoped) | — | — | stdio; no credential |","| `mcp` (remote proxy, `mcp.remote.enabled`) | — | — | — | Bearer read from `mcp.remote.token_env` (default `CORTEX_REMOTE_TOKEN`) |","| `sync --remote` | — | — | — | Bearer from `sync.token_env` (default `CORTEX_REMOTE_TOKEN`), falling back to `http.token` |","| `web key` (embedded web UI) | Web access key at `\u003cconfig dir\u003e/web.key` (independent of `http.token`) | same | same | — |","| `auth login` / `status` / `logout` | Manages `http.token` itself; no auth to run | — | — | — |","","Notes:","","- **Local zero-auth mode.** Local SQLite commands open the store directly and","  never require a credential.","- **Local `http.token`.** When set, local HTTP and mounted MCP require the bearer.","  A non-loopback `http.host` without `http.token` is refused at `serve` startup.","- **Server static bearer.** Single credential, verified on every authenticated","  request; tenant/workspace scope is configuration, not client input.","- **Embedded web.** The web access key is a distinct namespace; rotating it never","  changes `http.token`.","- **MCP profiles.** `agent`, `dev`, and `minimal` are the live catalogs. Profile","  selection does not change authentication.","","---","","## 6. Deprecated and retired surface","","This appendix records retired or deprecated surface so migrating users find an","explicit notice and a supported replacement.","","### 6.1 Retired MCP toolsets: `admin` and `temporal`","","The `admin` (destructive deletion, project merging, compaction) and `temporal`","(execution duration, memory telemetry, manual RFC3339 timestamps) toolsets are","retired from standard agent discovery and must not be advertised by any live","command section.","","- **Replacement:** administrative operations use the CLI (`cortex gc`,","  `cortex merge-projects`, `cortex doctor`), the TUI, and the web dashboard;","  telemetry and health use `/health`; temporal evolution is handled automatically","  through `topic_key` upserts and `cortex_revision_history`.","- The live `mcp` catalog is exactly `agent`, `dev`, and `minimal`.","","### 6.2 Retired container image: `cortex-web`","","The standalone `cortex-web` container image is retired.","","- **Replacement:** the embedded web UI is mounted directly by `cortex serve`","  (local) and `cortex --mode server` (server), and its access key is managed with","  [`cortex web key`](#326-web).","","### 6.3 Retired tool namespace: `mem_*` and Engram-era framing","","The `mem_*` tool namespace and Engram-era compatibility framing are retired.","","- **Replacement:** the supported namespace is `cortex_*`. Local catalog IDs and","  the Engram-era surface are not interchangeable; see [MCP.md](MCP.md).","","### 6.4 Retired configuration key: `multi_tenant`","","The `server.multi_tenant` configuration key is removed. The self-hosted server is","single-tenant: tenant and workspace are configuration constants.","","- **Replacement:** `server.tenant_id` and `server.workspace_id`. A file that","  still carries `multi_tenant` loads without error (the key is unknown and dropped","  on the next save), but it has no effect.","","### 6.5 Retired v1 root migrations","","The root `migrations/001-014` files are retired v1 history and do not drive","startup.","","- **Replacement:** the embedded, forward-only `migrations/v2/001_init.sql`","  baseline (SQLite) and `migrations/v2/100_server.sql` (PostgreSQL). Existing v1","  or foreign databases are refused without mutation; there is no automatic v1","  upgrade. Use [`cortex backup`](#320-backup) before any migration."],"stylingDirectives":[[[0,22,"pl-mh"],[2,22,"pl-en"]],[],[[50,51,"pl-s"],[51,57,"pl-c1"],[57,58,"pl-s"]],[[1,2,"pl-s"],[2,12,"pl-c1"],[12,13,"pl-s"]],[],[[16,17,"pl-s"],[17,35,"pl-c1"],[35,36,"pl-s"],[38,39,"pl-s"],[39,58,"pl-c1"],[58,59,"pl-s"],[61,62,"pl-s"],[62,81,"pl-c1"],[81,82,"pl-s"]],[[0,1,"pl-s"],[1,22,"pl-c1"],[22,23,"pl-s"],[25,26,"pl-s"],[26,51,"pl-c1"],[51,52,"pl-s"],[58,59,"pl-s"],[59,74,"pl-c1"],[74,75,"pl-s"]],[],[],[],[],[],[[0,69,"pl-ent"],[0,2,"pl-ent"],[2,4,"pl-s"],[23,25,"pl-s"]],[[0,82,"pl-ent"],[0,2,"pl-ent"],[2,3,"pl-s"],[19,20,"pl-s"],[20,21,"pl-s"],[21,37,"pl-corl"],[37,38,"pl-s"]],[[0,79,"pl-ent"],[0,2,"pl-ent"],[2,3,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,17,"pl-corl"],[17,18,"pl-s"],[47,48,"pl-s"],[57,58,"pl-s"],[58,59,"pl-s"],[59,68,"pl-corl"],[68,69,"pl-s"]],[[0,80,"pl-ent"],[0,2,"pl-ent"],[24,25,"pl-s"],[36,37,"pl-s"],[37,38,"pl-s"],[38,49,"pl-corl"],[49,50,"pl-s"]],[[0,39,"pl-ent"],[0,2,"pl-ent"],[10,11,"pl-s"],[23,24,"pl-s"],[24,25,"pl-s"],[25,37,"pl-corl"],[37,38,"pl-s"]],[[0,0,"pl-ent"]],[[10,11,"pl-s"],[27,28,"pl-s"],[28,29,"pl-s"],[29,48,"pl-corl"],[48,49,"pl-s"]],[[0,1,"pl-s"],[19,20,"pl-s"],[20,21,"pl-s"],[21,42,"pl-corl"],[42,43,"pl-s"]],[[0,1,"pl-s"],[18,19,"pl-s"],[19,20,"pl-s"],[20,40,"pl-corl"],[40,41,"pl-s"]],[[0,1,"pl-s"],[27,28,"pl-s"],[28,29,"pl-s"],[29,58,"pl-corl"],[58,59,"pl-s"]],[[0,1,"pl-s"],[22,23,"pl-s"],[23,24,"pl-s"],[24,48,"pl-corl"],[48,49,"pl-s"]],[[0,1,"pl-s"],[19,20,"pl-s"],[20,21,"pl-s"],[21,54,"pl-corl"],[54,55,"pl-s"]],[],[[0,3,"pl-ms"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,33,"pl-mh"],[4,33,"pl-en"]],[],[[29,30,"pl-s"],[30,40,"pl-c1"],[40,41,"pl-s"],[47,48,"pl-s"],[48,54,"pl-c1"],[54,55,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,60,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[49,50,"pl-s"],[50,56,"pl-c1"],[56,57,"pl-s"]],[[30,31,"pl-s"],[31,38,"pl-c1"],[38,39,"pl-s"]],[],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,43,"pl-c1"]],[[0,43,"pl-c1"]],[[0,43,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[0,1,"pl-s"],[1,7,"pl-c1"],[7,8,"pl-s"],[53,54,"pl-s"],[54,59,"pl-c1"],[59,60,"pl-s"],[62,63,"pl-s"],[63,69,"pl-c1"],[69,70,"pl-s"]],[[0,1,"pl-s"],[1,7,"pl-c1"],[7,8,"pl-s"],[54,55,"pl-s"],[55,56,"pl-c1"],[56,57,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,75,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[5,6,"pl-s"],[6,12,"pl-c1"],[12,13,"pl-s"],[46,47,"pl-s"],[47,52,"pl-c1"],[52,53,"pl-s"]],[],[[0,22,"pl-mh"],[4,22,"pl-en"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[35,36,"pl-ml"],[43,44,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,8,"pl-c1"],[8,9,"pl-s"],[10,11,"pl-ml"],[34,35,"pl-s"],[35,54,"pl-c1"],[54,55,"pl-s"],[78,79,"pl-ml"],[94,95,"pl-ml"],[160,161,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,9,"pl-c1"],[9,10,"pl-s"],[11,12,"pl-ml"],[64,65,"pl-ml"],[87,88,"pl-ml"],[187,188,"pl-s"],[188,206,"pl-c1"],[206,207,"pl-s"],[225,226,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,9,"pl-c1"],[9,10,"pl-s"],[11,12,"pl-ml"],[86,87,"pl-ml"],[104,105,"pl-s"],[105,109,"pl-c1"],[109,110,"pl-s"],[111,112,"pl-ml"],[122,123,"pl-s"],[123,133,"pl-c1"],[133,134,"pl-s"],[140,141,"pl-s"],[141,142,"pl-s"],[142,155,"pl-c1"],[155,156,"pl-s"],[156,157,"pl-s"],[157,158,"pl-s"],[158,174,"pl-corl"],[174,175,"pl-s"],[177,178,"pl-ml"]],[],[[0,1,"pl-s"],[1,14,"pl-c1"],[14,15,"pl-s"],[23,24,"pl-s"],[24,35,"pl-c1"],[35,36,"pl-s"]],[],[],[],[[0,26,"pl-mh"],[4,26,"pl-en"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-c1"],[4,5,"pl-s"],[6,7,"pl-ml"],[17,18,"pl-ml"],[142,143,"pl-s"],[143,144,"pl-c1"],[144,145,"pl-s"],[147,148,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-c1"],[4,5,"pl-s"],[6,7,"pl-ml"],[17,18,"pl-ml"],[228,229,"pl-s"],[229,235,"pl-c1"],[235,236,"pl-s"],[264,265,"pl-s"],[265,266,"pl-c1"],[266,267,"pl-s"],[269,270,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-c1"],[4,5,"pl-s"],[6,7,"pl-ml"],[56,57,"pl-ml"],[69,70,"pl-s"],[70,76,"pl-c1"],[76,77,"pl-s"],[90,91,"pl-s"],[91,104,"pl-c1"],[104,105,"pl-s"],[163,164,"pl-s"],[164,172,"pl-c1"],[172,173,"pl-s"],[198,199,"pl-s"],[199,219,"pl-c1"],[219,220,"pl-s"],[293,294,"pl-ml"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[0,29,"pl-c"],[0,1,"pl-c"]],[[14,27,"pl-s"],[14,15,"pl-pds"],[26,27,"pl-pds"]],[],[[0,30,"pl-c"],[0,1,"pl-c"]],[],[[0,4,"pl-c1"],[5,7,"pl-smi"],[10,13,"pl-c"],[10,11,"pl-c"]],[],[[0,22,"pl-c"],[0,1,"pl-c"]],[[27,30,"pl-s"],[27,28,"pl-pds"],[29,30,"pl-pds"]],[[0,4,"pl-c1"],[5,7,"pl-smi"],[10,13,"pl-c"],[10,11,"pl-c"]],[[0,3,"pl-s"]],[],[[0,83,"pl-ent"],[0,2,"pl-ent"],[2,4,"pl-s"],[9,11,"pl-s"],[50,51,"pl-s"],[51,62,"pl-c1"],[62,63,"pl-s"]],[[0,82,"pl-ent"],[0,2,"pl-ent"],[14,15,"pl-s"],[15,28,"pl-c1"],[28,29,"pl-s"],[69,70,"pl-s"],[70,71,"pl-c1"],[71,72,"pl-s"],[78,79,"pl-s"],[79,80,"pl-c1"],[80,81,"pl-s"]],[[0,70,"pl-ent"],[0,2,"pl-ent"],[66,67,"pl-s"],[67,68,"pl-c1"],[68,69,"pl-s"]],[[0,0,"pl-ent"]],[[0,41,"pl-mh"],[4,41,"pl-en"]],[],[[27,28,"pl-s"],[28,33,"pl-c1"],[33,34,"pl-s"],[38,39,"pl-s"],[39,45,"pl-c1"],[45,46,"pl-s"]],[],[],[[0,1,"pl-v"],[41,42,"pl-s"],[42,48,"pl-c1"],[48,49,"pl-s"],[63,64,"pl-s"],[64,69,"pl-c1"],[69,70,"pl-s"]],[[0,1,"pl-v"]],[],[[43,44,"pl-s"],[44,54,"pl-c1"],[54,55,"pl-s"]],[],[[29,30,"pl-s"],[30,36,"pl-c1"],[36,37,"pl-s"]],[[60,61,"pl-s"],[61,62,"pl-c1"],[62,63,"pl-s"]],[],[[0,32,"pl-mh"],[4,32,"pl-en"]],[],[[30,31,"pl-s"],[31,35,"pl-c1"],[35,36,"pl-s"]],[[14,16,"pl-s"],[22,24,"pl-s"]],[],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,62,"pl-c1"]],[[0,13,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[0,1,"pl-v"],[2,3,"pl-s"],[3,17,"pl-c1"],[17,18,"pl-s"]],[[0,1,"pl-v"]],[],[[0,1,"pl-v"],[2,3,"pl-s"],[3,24,"pl-c1"],[24,25,"pl-s"]],[],[[0,45,"pl-mh"],[4,45,"pl-en"],[8,9,"pl-s"],[9,21,"pl-c1"],[21,22,"pl-s"],[30,31,"pl-s"],[31,44,"pl-c1"],[44,45,"pl-s"]],[],[[0,1,"pl-s"],[1,13,"pl-c1"],[13,14,"pl-s"],[26,28,"pl-s"],[33,35,"pl-s"]],[[21,22,"pl-s"],[22,31,"pl-c1"],[31,32,"pl-s"],[33,34,"pl-s"],[34,43,"pl-c1"],[43,44,"pl-s"],[54,55,"pl-s"],[55,69,"pl-c1"],[69,70,"pl-s"]],[],[],[[0,1,"pl-s"],[1,21,"pl-c1"],[21,22,"pl-s"],[34,36,"pl-s"],[60,62,"pl-s"]],[[14,15,"pl-s"],[15,21,"pl-c1"],[21,22,"pl-s"],[50,51,"pl-s"],[51,55,"pl-c1"],[55,56,"pl-s"]],[[4,5,"pl-s"],[5,6,"pl-s"],[6,19,"pl-c1"],[19,20,"pl-s"],[20,21,"pl-s"],[21,22,"pl-s"],[22,38,"pl-corl"],[38,39,"pl-s"]],[],[[0,23,"pl-mh"],[4,23,"pl-en"],[8,9,"pl-s"],[9,22,"pl-c1"],[22,23,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,30,"pl-c1"]],[[0,58,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[0,1,"pl-ml"],[11,12,"pl-ml"],[21,22,"pl-ml"],[44,45,"pl-ml"],[58,59,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,18,"pl-c1"],[18,19,"pl-s"],[20,21,"pl-ml"],[22,23,"pl-s"],[29,30,"pl-s"],[31,32,"pl-ml"],[35,36,"pl-ml"],[94,95,"pl-s"],[95,110,"pl-c1"],[110,111,"pl-s"],[113,114,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,10,"pl-c1"],[10,11,"pl-s"],[12,13,"pl-ml"],[18,19,"pl-ml"],[22,23,"pl-ml"],[87,88,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,22,"pl-c1"],[22,23,"pl-s"],[24,25,"pl-ml"],[26,27,"pl-s"],[50,51,"pl-s"],[52,53,"pl-ml"],[56,57,"pl-ml"],[126,127,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,5,"pl-c1"],[5,6,"pl-s"],[8,9,"pl-s"],[9,15,"pl-c1"],[15,16,"pl-s"],[18,19,"pl-s"],[19,23,"pl-c1"],[23,24,"pl-s"],[25,26,"pl-ml"],[29,30,"pl-ml"],[33,34,"pl-ml"],[62,63,"pl-s"],[63,64,"pl-c1"],[64,65,"pl-s"],[67,68,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,5,"pl-c1"],[5,6,"pl-s"],[8,9,"pl-s"],[9,18,"pl-c1"],[18,19,"pl-s"],[21,22,"pl-s"],[22,29,"pl-c1"],[29,30,"pl-s"],[31,32,"pl-ml"],[35,36,"pl-ml"],[39,40,"pl-ml"],[75,76,"pl-s"],[76,77,"pl-c1"],[77,78,"pl-s"],[80,81,"pl-ml"]],[],[[40,41,"pl-s"],[41,49,"pl-c1"],[49,50,"pl-s"]],[],[],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,44,"pl-c1"]],[[0,45,"pl-c1"]],[[0,37,"pl-c1"]],[[0,36,"pl-c1"]],[[0,33,"pl-c1"]],[[0,27,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[68,69,"pl-s"],[69,76,"pl-c1"],[76,77,"pl-s"]],[],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,99,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[12,13,"pl-s"],[13,14,"pl-c1"],[14,15,"pl-s"],[25,26,"pl-s"],[26,27,"pl-c1"],[27,28,"pl-s"],[64,65,"pl-s"],[65,66,"pl-c1"],[66,67,"pl-s"]],[[9,10,"pl-s"],[10,18,"pl-c1"],[18,19,"pl-s"]],[],[],[[1,2,"pl-s"],[2,12,"pl-c1"],[12,13,"pl-s"],[16,17,"pl-s"],[17,34,"pl-c1"],[34,35,"pl-s"],[46,47,"pl-s"],[47,53,"pl-c1"],[53,54,"pl-s"],[59,60,"pl-s"],[60,64,"pl-c1"],[64,65,"pl-s"]],[[42,43,"pl-s"],[43,50,"pl-c1"],[50,51,"pl-s"]],[],[],[[0,3,"pl-ms"]],[],[[0,24,"pl-mh"],[3,24,"pl-en"]],[],[[0,19,"pl-mh"],[4,19,"pl-en"]],[],[[0,1,"pl-v"],[2,4,"pl-s"],[15,17,"pl-s"],[37,38,"pl-s"],[38,48,"pl-c1"],[48,49,"pl-s"],[54,55,"pl-s"],[55,65,"pl-c1"],[65,66,"pl-s"]],[[38,39,"pl-s"],[39,45,"pl-c1"],[45,46,"pl-s"],[48,49,"pl-s"],[49,56,"pl-c1"],[56,57,"pl-s"],[59,60,"pl-s"],[60,69,"pl-c1"],[69,70,"pl-s"]],[[2,3,"pl-s"],[3,7,"pl-c1"],[7,8,"pl-s"],[37,38,"pl-s"],[38,39,"pl-c1"],[39,40,"pl-s"]],[],[],[[0,1,"pl-v"],[2,4,"pl-s"],[17,19,"pl-s"],[39,40,"pl-s"],[40,46,"pl-c1"],[46,47,"pl-s"],[49,50,"pl-s"],[50,64,"pl-c1"],[64,65,"pl-s"],[67,68,"pl-s"],[68,76,"pl-c1"],[76,77,"pl-s"]],[[2,3,"pl-s"],[3,10,"pl-c1"],[10,11,"pl-s"],[13,14,"pl-s"],[14,20,"pl-c1"],[20,21,"pl-s"],[23,24,"pl-s"],[24,33,"pl-c1"],[33,34,"pl-s"],[36,37,"pl-s"],[37,44,"pl-c1"],[44,45,"pl-s"],[47,48,"pl-s"],[48,66,"pl-c1"],[66,67,"pl-s"],[69,70,"pl-s"],[70,77,"pl-c1"],[77,78,"pl-s"]],[[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[19,20,"pl-s"],[20,28,"pl-c1"],[28,29,"pl-s"],[44,45,"pl-s"],[45,57,"pl-c1"],[57,58,"pl-s"]],[[0,1,"pl-v"],[2,4,"pl-s"],[12,14,"pl-s"],[54,55,"pl-s"],[55,57,"pl-c1"],[57,58,"pl-s"],[60,61,"pl-s"],[61,70,"pl-c1"],[70,71,"pl-s"]],[[2,3,"pl-s"],[3,5,"pl-c1"],[5,6,"pl-s"],[8,9,"pl-s"],[9,20,"pl-c1"],[20,21,"pl-s"],[24,25,"pl-s"],[25,27,"pl-c1"],[27,28,"pl-s"],[30,31,"pl-s"],[31,37,"pl-c1"],[37,38,"pl-s"],[39,40,"pl-s"],[40,47,"pl-c1"],[47,48,"pl-s"]],[[2,3,"pl-s"],[3,5,"pl-c1"],[5,6,"pl-s"],[8,9,"pl-s"],[9,16,"pl-c1"],[16,17,"pl-s"],[20,21,"pl-s"],[21,23,"pl-c1"],[23,24,"pl-s"],[26,27,"pl-s"],[27,37,"pl-c1"],[37,38,"pl-s"],[41,42,"pl-s"],[42,44,"pl-c1"],[44,45,"pl-s"],[47,48,"pl-s"],[48,55,"pl-c1"],[55,56,"pl-s"],[59,60,"pl-s"],[60,62,"pl-c1"],[62,63,"pl-s"],[65,66,"pl-s"],[66,74,"pl-c1"],[74,75,"pl-s"]],[[0,1,"pl-v"],[40,41,"pl-s"],[41,42,"pl-c1"],[42,43,"pl-s"]],[[65,66,"pl-s"],[66,67,"pl-c1"],[67,68,"pl-s"]],[],[],[[0,16,"pl-mh"],[4,16,"pl-en"]],[],[],[[0,1,"pl-s"],[1,13,"pl-c1"],[13,14,"pl-s"]],[[0,1,"pl-s"],[1,14,"pl-c1"],[14,15,"pl-s"],[50,51,"pl-s"],[51,53,"pl-c1"],[53,54,"pl-s"]],[[4,5,"pl-s"],[5,25,"pl-c1"],[25,26,"pl-s"],[39,40,"pl-s"],[40,42,"pl-c1"],[42,43,"pl-s"]],[],[],[[0,25,"pl-mh"],[4,25,"pl-en"]],[],[[0,1,"pl-s"],[1,12,"pl-c1"],[12,13,"pl-s"],[18,19,"pl-s"],[19,32,"pl-c1"],[32,33,"pl-s"]],[],[[0,1,"pl-v"],[23,24,"pl-s"],[24,31,"pl-c1"],[31,32,"pl-s"],[34,35,"pl-s"],[35,44,"pl-c1"],[44,45,"pl-s"],[47,48,"pl-s"],[48,53,"pl-c1"],[53,54,"pl-s"],[56,57,"pl-s"],[57,61,"pl-c1"],[61,62,"pl-s"],[64,65,"pl-s"],[65,71,"pl-c1"],[71,72,"pl-s"]],[[2,3,"pl-s"],[3,13,"pl-c1"],[13,14,"pl-s"],[45,46,"pl-s"],[46,70,"pl-c1"],[70,71,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[3,8,"pl-c1"],[8,9,"pl-s"],[14,15,"pl-s"],[15,22,"pl-c1"],[22,23,"pl-s"],[43,44,"pl-s"],[44,64,"pl-c1"],[64,65,"pl-s"]],[[0,1,"pl-v"]],[[75,76,"pl-s"],[76,77,"pl-c1"],[77,78,"pl-s"]],[],[],[[0,25,"pl-mh"],[4,25,"pl-en"]],[],[[0,1,"pl-v"],[2,4,"pl-s"],[14,16,"pl-s"],[59,60,"pl-s"],[60,63,"pl-c1"],[63,64,"pl-s"]],[],[[0,1,"pl-v"],[2,4,"pl-s"],[15,17,"pl-s"]],[[0,1,"pl-v"]],[],[],[[0,22,"pl-mh"],[4,22,"pl-en"]],[],[[0,1,"pl-v"],[24,26,"pl-s"],[32,34,"pl-s"]],[[0,1,"pl-v"],[59,61,"pl-s"],[67,69,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[3,15,"pl-c1"],[15,16,"pl-s"],[35,36,"pl-s"],[36,45,"pl-c1"],[45,46,"pl-s"]],[],[],[[0,3,"pl-ms"]],[],[[0,23,"pl-mh"],[3,23,"pl-en"]],[],[],[],[[0,1,"pl-ml"],[10,11,"pl-ml"],[20,21,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,8,"pl-c1"],[8,9,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,19,"pl-corl"],[19,20,"pl-s"],[21,22,"pl-ml"],[35,36,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,11,"pl-c1"],[11,12,"pl-s"],[12,13,"pl-s"],[13,14,"pl-s"],[14,25,"pl-corl"],[25,26,"pl-s"],[27,28,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,7,"pl-c1"],[7,8,"pl-s"],[8,9,"pl-s"],[9,10,"pl-s"],[10,17,"pl-corl"],[17,18,"pl-s"],[19,20,"pl-ml"],[56,57,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,9,"pl-c1"],[9,10,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"],[12,21,"pl-corl"],[21,22,"pl-s"],[23,24,"pl-ml"],[72,73,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,7,"pl-c1"],[7,8,"pl-s"],[8,9,"pl-s"],[9,10,"pl-s"],[10,17,"pl-corl"],[17,18,"pl-s"],[19,20,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,10,"pl-c1"],[10,11,"pl-s"],[11,12,"pl-s"],[12,13,"pl-s"],[13,23,"pl-corl"],[23,24,"pl-s"],[25,26,"pl-ml"],[47,48,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,8,"pl-c1"],[8,9,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,19,"pl-corl"],[19,20,"pl-s"],[21,22,"pl-ml"],[43,44,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,11,"pl-c1"],[11,12,"pl-s"],[12,13,"pl-s"],[13,14,"pl-s"],[14,25,"pl-corl"],[25,26,"pl-s"],[27,28,"pl-ml"],[75,76,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,9,"pl-c1"],[9,10,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"],[12,21,"pl-corl"],[21,22,"pl-s"],[23,24,"pl-ml"],[48,49,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,12,"pl-c1"],[12,13,"pl-s"],[13,14,"pl-s"],[14,15,"pl-s"],[15,28,"pl-corl"],[28,29,"pl-s"],[30,31,"pl-ml"],[81,82,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,13,"pl-c1"],[13,14,"pl-s"],[14,15,"pl-s"],[15,16,"pl-s"],[16,30,"pl-corl"],[30,31,"pl-s"],[32,33,"pl-ml"],[75,76,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,9,"pl-c1"],[9,10,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"],[12,22,"pl-corl"],[22,23,"pl-s"],[24,25,"pl-ml"],[72,73,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,10,"pl-c1"],[10,11,"pl-s"],[11,12,"pl-s"],[12,13,"pl-s"],[13,24,"pl-corl"],[24,25,"pl-s"],[26,27,"pl-ml"],[58,59,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,10,"pl-c1"],[10,11,"pl-s"],[11,12,"pl-s"],[12,13,"pl-s"],[13,24,"pl-corl"],[24,25,"pl-s"],[26,27,"pl-ml"],[68,69,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,8,"pl-c1"],[8,9,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,20,"pl-corl"],[20,21,"pl-s"],[22,23,"pl-ml"],[67,68,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,18,"pl-c1"],[18,19,"pl-s"],[19,20,"pl-s"],[20,21,"pl-s"],[21,40,"pl-corl"],[40,41,"pl-s"],[42,43,"pl-ml"],[72,73,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,11,"pl-c1"],[11,12,"pl-s"],[12,13,"pl-s"],[13,14,"pl-s"],[14,26,"pl-corl"],[26,27,"pl-s"],[28,29,"pl-ml"],[56,57,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,10,"pl-c1"],[10,11,"pl-s"],[11,12,"pl-s"],[12,13,"pl-s"],[13,24,"pl-corl"],[24,25,"pl-s"],[26,27,"pl-ml"],[46,47,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,6,"pl-c1"],[6,7,"pl-s"],[7,8,"pl-s"],[8,9,"pl-s"],[9,16,"pl-corl"],[16,17,"pl-s"],[18,19,"pl-ml"],[58,59,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,10,"pl-c1"],[10,11,"pl-s"],[11,12,"pl-s"],[12,13,"pl-s"],[13,24,"pl-corl"],[24,25,"pl-s"],[26,27,"pl-ml"],[61,62,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,9,"pl-c1"],[9,10,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"],[12,22,"pl-corl"],[22,23,"pl-s"],[24,25,"pl-ml"],[67,68,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,10,"pl-c1"],[10,11,"pl-s"],[11,12,"pl-s"],[12,13,"pl-s"],[13,24,"pl-corl"],[24,25,"pl-s"],[26,27,"pl-ml"],[51,52,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,8,"pl-c1"],[8,9,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,20,"pl-corl"],[20,21,"pl-s"],[22,23,"pl-ml"],[62,63,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,10,"pl-c1"],[10,11,"pl-s"],[11,12,"pl-s"],[12,13,"pl-s"],[13,24,"pl-corl"],[24,25,"pl-s"],[26,27,"pl-ml"],[49,50,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,8,"pl-c1"],[8,9,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,20,"pl-corl"],[20,21,"pl-s"],[22,23,"pl-ml"],[62,63,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,7,"pl-c1"],[7,8,"pl-s"],[8,9,"pl-s"],[9,10,"pl-s"],[10,18,"pl-corl"],[18,19,"pl-s"],[20,21,"pl-ml"],[57,58,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,10,"pl-c1"],[10,11,"pl-s"],[14,15,"pl-s"],[15,19,"pl-c1"],[19,20,"pl-s"],[20,21,"pl-s"],[21,22,"pl-s"],[22,39,"pl-corl"],[39,40,"pl-s"],[41,42,"pl-ml"],[79,80,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,11,"pl-c1"],[11,12,"pl-s"],[12,13,"pl-s"],[13,14,"pl-s"],[14,26,"pl-corl"],[26,27,"pl-s"],[28,29,"pl-ml"],[57,58,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,10,"pl-c1"],[10,11,"pl-s"],[11,12,"pl-s"],[12,13,"pl-s"],[13,24,"pl-corl"],[24,25,"pl-s"],[26,27,"pl-ml"],[64,65,"pl-ml"]],[],[[0,14,"pl-mh"],[4,14,"pl-en"],[8,9,"pl-s"],[9,13,"pl-c1"],[13,14,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,11,"pl-c1"]],[[0,13,"pl-c1"]],[[0,9,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[60,61,"pl-s"],[61,62,"pl-c1"],[62,63,"pl-s"]],[],[[0,2,"pl-s"],[12,14,"pl-s"],[21,23,"pl-s"],[29,31,"pl-s"],[38,40,"pl-s"],[51,53,"pl-s"],[54,55,"pl-s"],[55,56,"pl-c1"],[56,57,"pl-s"],[59,61,"pl-s"],[76,78,"pl-s"]],[],[[0,2,"pl-s"],[9,11,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[7,11,"pl-c1"]],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[22,23,"pl-s"],[23,24,"pl-s"],[24,35,"pl-corl"],[35,36,"pl-s"]],[],[[0,17,"pl-mh"],[4,17,"pl-en"],[8,9,"pl-s"],[9,16,"pl-c1"],[16,17,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,14,"pl-c1"]],[[0,16,"pl-c1"]],[[0,9,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[7,8,"pl-s"],[8,24,"pl-c1"],[24,25,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-c1"],[2,3,"pl-s"]],[[37,38,"pl-s"],[38,41,"pl-c1"],[41,42,"pl-s"]],[],[[0,2,"pl-s"],[12,14,"pl-s"],[21,23,"pl-s"],[29,31,"pl-s"],[38,40,"pl-s"],[51,53,"pl-s"],[54,55,"pl-s"],[55,56,"pl-c1"],[56,57,"pl-s"],[59,61,"pl-s"],[76,78,"pl-s"]],[],[[0,2,"pl-s"],[9,11,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[[0,15,"pl-c"],[0,1,"pl-c"]],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[21,22,"pl-s"],[22,23,"pl-s"],[23,34,"pl-corl"],[34,35,"pl-s"]],[],[[0,13,"pl-mh"],[4,13,"pl-en"],[8,9,"pl-s"],[9,12,"pl-c1"],[12,13,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,21,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,11,"pl-c1"],[11,12,"pl-s"],[13,14,"pl-ml"],[19,20,"pl-ml"],[23,24,"pl-ml"],[97,98,"pl-ml"]],[],[[0,2,"pl-s"],[12,14,"pl-s"],[21,23,"pl-s"],[34,36,"pl-s"],[37,38,"pl-s"],[38,39,"pl-c1"],[39,40,"pl-s"],[50,51,"pl-s"],[51,52,"pl-c1"],[52,53,"pl-s"]],[[0,2,"pl-s"],[17,19,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[[0,3,"pl-s"]],[],[[19,20,"pl-s"],[20,26,"pl-c1"],[26,27,"pl-s"],[55,56,"pl-s"],[56,66,"pl-c1"],[66,67,"pl-s"]],[[0,1,"pl-s"],[5,6,"pl-s"],[6,7,"pl-s"],[7,43,"pl-corl"],[43,44,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[27,28,"pl-s"],[28,29,"pl-s"],[29,41,"pl-corl"],[41,42,"pl-s"],[44,45,"pl-s"],[45,46,"pl-s"],[46,59,"pl-c1"],[59,60,"pl-s"],[60,61,"pl-s"],[61,62,"pl-s"],[62,73,"pl-corl"],[73,74,"pl-s"]],[],[[0,15,"pl-mh"],[4,15,"pl-en"],[8,9,"pl-s"],[9,14,"pl-c1"],[14,15,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,12,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[39,40,"pl-s"],[40,46,"pl-c1"],[46,47,"pl-s"]],[[43,44,"pl-s"],[44,63,"pl-c1"],[63,64,"pl-s"]],[],[[0,1,"pl-s"],[1,6,"pl-c1"],[6,7,"pl-s"]],[],[[0,1,"pl-ml"],[10,11,"pl-ml"],[20,21,"pl-ml"],[43,44,"pl-ml"],[57,58,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,12,"pl-c1"],[12,13,"pl-s"],[14,15,"pl-ml"],[16,17,"pl-s"],[17,26,"pl-c1"],[26,27,"pl-s"],[28,29,"pl-ml"],[30,31,"pl-s"],[31,47,"pl-c1"],[47,48,"pl-s"],[49,50,"pl-ml"],[75,76,"pl-s"],[76,85,"pl-c1"],[85,86,"pl-s"],[117,118,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,12,"pl-c1"],[12,13,"pl-s"],[14,15,"pl-ml"],[16,17,"pl-s"],[17,21,"pl-c1"],[21,22,"pl-s"],[23,24,"pl-ml"],[25,26,"pl-s"],[26,42,"pl-c1"],[42,43,"pl-s"],[44,45,"pl-ml"],[59,60,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,13,"pl-c1"],[13,14,"pl-s"],[15,16,"pl-ml"],[17,18,"pl-s"],[25,26,"pl-s"],[27,28,"pl-ml"],[29,30,"pl-s"],[30,47,"pl-c1"],[47,48,"pl-s"],[49,50,"pl-ml"],[99,100,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,23,"pl-c1"],[23,24,"pl-s"],[25,26,"pl-ml"],[27,28,"pl-s"],[28,30,"pl-c1"],[30,31,"pl-s"],[32,33,"pl-ml"],[34,35,"pl-s"],[35,62,"pl-c1"],[62,63,"pl-s"],[64,65,"pl-ml"],[88,89,"pl-ml"]],[],[],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,10,"pl-c1"]],[[0,21,"pl-c1"]],[[0,21,"pl-c1"]],[[0,20,"pl-c1"]],[[0,15,"pl-c1"]],[[0,20,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[29,30,"pl-s"],[30,31,"pl-c1"],[31,32,"pl-s"]],[[7,8,"pl-s"],[8,18,"pl-c1"],[18,19,"pl-s"]],[[0,2,"pl-s"],[17,19,"pl-s"],[42,43,"pl-s"],[43,53,"pl-c1"],[53,54,"pl-s"],[63,64,"pl-s"],[64,70,"pl-c1"],[70,71,"pl-s"]],[[20,21,"pl-s"],[21,50,"pl-c1"],[50,51,"pl-s"],[53,54,"pl-s"],[54,61,"pl-c1"],[61,62,"pl-s"]],[],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[26,27,"pl-s"],[27,28,"pl-s"],[28,39,"pl-corl"],[39,40,"pl-s"],[42,43,"pl-s"],[50,51,"pl-s"],[51,52,"pl-s"],[52,60,"pl-corl"],[60,61,"pl-s"],[63,64,"pl-s"],[64,65,"pl-s"],[65,78,"pl-c1"],[78,79,"pl-s"],[79,80,"pl-s"],[80,81,"pl-s"],[81,96,"pl-corl"],[96,97,"pl-s"]],[],[[0,13,"pl-mh"],[4,13,"pl-en"],[8,9,"pl-s"],[9,12,"pl-c1"],[12,13,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,48,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,20,"pl-c1"],[20,21,"pl-s"],[22,23,"pl-ml"],[24,25,"pl-s"],[25,36,"pl-c1"],[36,37,"pl-s"],[47,48,"pl-s"],[48,53,"pl-c1"],[53,54,"pl-s"],[56,57,"pl-ml"],[58,59,"pl-s"],[59,77,"pl-c1"],[77,78,"pl-s"],[79,80,"pl-ml"],[95,96,"pl-s"],[96,101,"pl-c1"],[101,102,"pl-s"],[115,116,"pl-s"],[116,119,"pl-c1"],[119,120,"pl-s"],[133,134,"pl-s"],[134,141,"pl-c1"],[141,142,"pl-s"],[154,155,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,22,"pl-c1"],[22,23,"pl-s"],[24,25,"pl-ml"],[26,27,"pl-s"],[36,37,"pl-s"],[37,44,"pl-c1"],[44,45,"pl-s"],[46,47,"pl-s"],[48,49,"pl-ml"],[50,51,"pl-s"],[51,69,"pl-c1"],[69,70,"pl-s"],[71,72,"pl-ml"],[83,84,"pl-s"],[84,91,"pl-c1"],[91,92,"pl-s"],[94,95,"pl-ml"]],[],[[5,6,"pl-s"],[6,24,"pl-c1"],[24,25,"pl-s"],[35,36,"pl-s"],[36,46,"pl-c1"],[46,47,"pl-s"]],[],[],[],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[29,30,"pl-s"],[30,31,"pl-c1"],[31,32,"pl-s"]],[[0,2,"pl-s"],[17,19,"pl-s"]],[[12,13,"pl-s"],[13,33,"pl-c1"],[33,34,"pl-s"],[44,45,"pl-s"],[45,64,"pl-c1"],[64,65,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[],[[0,3,"pl-s"]],[],[[4,5,"pl-s"],[5,10,"pl-c1"],[10,11,"pl-s"],[16,17,"pl-s"],[17,25,"pl-c1"],[25,26,"pl-s"]],[[0,1,"pl-s"],[3,4,"pl-s"],[4,5,"pl-s"],[5,38,"pl-corl"],[38,39,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[21,22,"pl-s"],[22,23,"pl-s"],[23,29,"pl-corl"],[29,30,"pl-s"],[32,33,"pl-s"],[33,34,"pl-s"],[34,40,"pl-c1"],[40,41,"pl-s"],[41,42,"pl-s"],[42,43,"pl-s"],[43,54,"pl-corl"],[54,55,"pl-s"]],[],[[0,16,"pl-mh"],[4,16,"pl-en"],[8,9,"pl-s"],[9,15,"pl-c1"],[15,16,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,29,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[[0,2,"pl-s"],[11,13,"pl-s"]],[],[[0,1,"pl-ml"],[11,12,"pl-ml"],[22,23,"pl-ml"],[36,37,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,10,"pl-c1"],[10,11,"pl-s"],[12,13,"pl-ml"],[18,19,"pl-ml"],[81,82,"pl-ml"]],[],[[0,2,"pl-s"],[7,9,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[18,19,"pl-ml"],[20,21,"pl-s"],[21,25,"pl-c1"],[25,26,"pl-s"],[27,28,"pl-ml"],[31,32,"pl-ml"],[49,50,"pl-s"],[50,54,"pl-c1"],[54,55,"pl-s"],[57,58,"pl-s"],[58,64,"pl-c1"],[64,65,"pl-s"],[67,68,"pl-s"],[68,76,"pl-c1"],[76,77,"pl-s"],[79,80,"pl-s"],[80,89,"pl-c1"],[89,90,"pl-s"],[92,93,"pl-s"],[93,102,"pl-c1"],[102,103,"pl-s"],[129,130,"pl-s"],[130,136,"pl-c1"],[136,137,"pl-s"],[151,152,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[25,26,"pl-ml"],[29,30,"pl-ml"],[57,58,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[16,17,"pl-ml"],[18,19,"pl-s"],[26,27,"pl-s"],[28,29,"pl-ml"],[32,33,"pl-ml"],[62,63,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,20,"pl-c1"],[20,21,"pl-s"],[22,23,"pl-ml"],[24,25,"pl-s"],[32,33,"pl-s"],[34,35,"pl-ml"],[38,39,"pl-ml"],[59,60,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[18,19,"pl-ml"],[20,21,"pl-s"],[28,29,"pl-s"],[30,31,"pl-ml"],[34,35,"pl-ml"],[53,54,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,12,"pl-c1"],[12,13,"pl-s"],[14,15,"pl-ml"],[16,17,"pl-s"],[17,19,"pl-c1"],[19,20,"pl-s"],[21,22,"pl-ml"],[25,26,"pl-ml"],[84,85,"pl-s"],[85,86,"pl-c1"],[86,87,"pl-s"],[89,90,"pl-ml"]],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"]],[[0,1,"pl-s"],[1,33,"pl-c1"],[33,34,"pl-s"],[37,38,"pl-s"],[38,39,"pl-c1"],[39,40,"pl-s"]],[[0,1,"pl-s"],[1,8,"pl-c1"],[8,9,"pl-s"],[27,29,"pl-s"],[44,46,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[14,31,"pl-s"],[14,15,"pl-pds"],[30,31,"pl-pds"]],[[14,29,"pl-s"],[14,15,"pl-pds"],[28,29,"pl-pds"]],[[14,20,"pl-s"],[14,15,"pl-pds"],[19,20,"pl-pds"]],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[22,23,"pl-s"],[23,24,"pl-s"],[24,35,"pl-corl"],[35,36,"pl-s"],[38,39,"pl-s"],[55,56,"pl-s"],[56,57,"pl-s"],[57,73,"pl-corl"],[73,74,"pl-s"]],[],[[0,14,"pl-mh"],[4,14,"pl-en"],[8,9,"pl-s"],[9,13,"pl-c1"],[13,14,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,37,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[[0,2,"pl-s"],[11,13,"pl-s"]],[],[[0,1,"pl-ml"],[11,12,"pl-ml"],[22,23,"pl-ml"],[36,37,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,10,"pl-c1"],[10,11,"pl-s"],[12,13,"pl-ml"],[18,19,"pl-ml"],[58,59,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,12,"pl-c1"],[12,13,"pl-s"],[14,15,"pl-ml"],[20,21,"pl-ml"],[59,60,"pl-ml"]],[],[[0,2,"pl-s"],[7,9,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[16,17,"pl-ml"],[18,19,"pl-s"],[19,25,"pl-c1"],[25,26,"pl-s"],[27,28,"pl-ml"],[31,32,"pl-ml"],[51,52,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,20,"pl-c1"],[20,21,"pl-s"],[22,23,"pl-ml"],[24,25,"pl-s"],[32,33,"pl-s"],[34,35,"pl-ml"],[38,39,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[18,19,"pl-ml"],[20,21,"pl-s"],[21,28,"pl-c1"],[28,29,"pl-s"],[30,31,"pl-ml"],[34,35,"pl-ml"],[55,56,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,20,"pl-c1"],[20,21,"pl-s"],[22,23,"pl-ml"],[24,25,"pl-s"],[32,33,"pl-s"],[34,35,"pl-ml"],[38,39,"pl-ml"],[76,77,"pl-ml"]],[],[[27,28,"pl-s"],[28,39,"pl-c1"],[39,40,"pl-s"],[45,46,"pl-s"],[46,67,"pl-c1"],[67,68,"pl-s"]],[],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[29,30,"pl-s"],[30,31,"pl-c1"],[31,32,"pl-s"]],[[0,2,"pl-s"],[17,19,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[12,31,"pl-s"],[12,13,"pl-pds"],[30,31,"pl-pds"],[32,63,"pl-s"],[32,33,"pl-pds"],[62,63,"pl-pds"]],[[12,24,"pl-s"],[12,13,"pl-pds"],[23,24,"pl-pds"],[25,45,"pl-s"],[25,26,"pl-pds"],[44,45,"pl-pds"]],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[21,22,"pl-s"],[22,23,"pl-s"],[23,34,"pl-corl"],[34,35,"pl-s"],[55,56,"pl-s"],[60,61,"pl-s"],[61,62,"pl-s"],[62,83,"pl-corl"],[83,84,"pl-s"]],[],[[0,17,"pl-mh"],[4,17,"pl-en"],[8,9,"pl-s"],[9,16,"pl-c1"],[16,17,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,32,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[[0,2,"pl-s"],[11,13,"pl-s"]],[],[[0,1,"pl-ml"],[11,12,"pl-ml"],[22,23,"pl-ml"],[36,37,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,12,"pl-c1"],[12,13,"pl-s"],[14,15,"pl-ml"],[19,20,"pl-ml"],[88,89,"pl-ml"]],[],[[0,2,"pl-s"],[7,9,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[18,19,"pl-ml"],[20,21,"pl-s"],[28,29,"pl-s"],[30,31,"pl-ml"],[34,35,"pl-ml"],[53,54,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,18,"pl-c1"],[18,19,"pl-s"],[20,21,"pl-ml"],[22,23,"pl-s"],[30,31,"pl-s"],[32,33,"pl-ml"],[36,37,"pl-ml"],[93,94,"pl-s"],[94,102,"pl-c1"],[102,103,"pl-s"],[105,106,"pl-s"],[106,110,"pl-c1"],[110,111,"pl-s"],[127,128,"pl-s"],[128,143,"pl-c1"],[143,144,"pl-s"],[146,147,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,9,"pl-c1"],[9,10,"pl-s"],[11,12,"pl-ml"],[17,18,"pl-ml"],[21,22,"pl-ml"],[45,46,"pl-s"],[46,54,"pl-c1"],[54,55,"pl-s"],[69,70,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,13,"pl-c1"],[13,14,"pl-s"],[15,16,"pl-ml"],[17,18,"pl-s"],[18,19,"pl-c1"],[19,20,"pl-s"],[21,22,"pl-ml"],[25,26,"pl-ml"],[105,106,"pl-s"],[106,109,"pl-c1"],[109,110,"pl-s"],[113,114,"pl-ml"]],[],[[8,9,"pl-s"],[9,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-s"],[20,26,"pl-c1"],[26,27,"pl-s"]],[],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[59,60,"pl-s"],[60,61,"pl-c1"],[61,62,"pl-s"]],[[7,9,"pl-s"],[24,26,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[21,22,"pl-s"],[22,23,"pl-s"],[23,33,"pl-corl"],[33,34,"pl-s"]],[],[[0,15,"pl-mh"],[4,15,"pl-en"],[8,9,"pl-s"],[9,14,"pl-c1"],[14,15,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,12,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[[0,2,"pl-s"],[8,10,"pl-s"],[17,19,"pl-s"],[30,32,"pl-s"],[33,34,"pl-s"],[34,35,"pl-c1"],[35,36,"pl-s"],[46,47,"pl-s"],[47,48,"pl-c1"],[48,49,"pl-s"]],[[0,2,"pl-s"],[17,19,"pl-s"]],[],[[0,2,"pl-s"],[9,11,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[[0,21,"pl-c"],[0,1,"pl-c"]],[[0,19,"pl-c"],[0,1,"pl-c"]],[[0,21,"pl-c"],[0,1,"pl-c"]],[[0,24,"pl-c"],[0,1,"pl-c"]],[[0,3,"pl-s"]],[],[[0,19,"pl-mh"],[4,19,"pl-en"],[9,10,"pl-s"],[10,18,"pl-c1"],[18,19,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,57,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[],[[0,2,"pl-s"],[11,13,"pl-s"]],[],[[0,1,"pl-ml"],[11,12,"pl-ml"],[22,23,"pl-ml"],[36,37,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,19,"pl-c1"],[19,20,"pl-s"],[21,22,"pl-ml"],[27,28,"pl-ml"],[53,54,"pl-ml"]],[],[[0,2,"pl-s"],[7,9,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,13,"pl-c1"],[13,14,"pl-s"],[15,16,"pl-ml"],[17,18,"pl-s"],[18,19,"pl-c1"],[19,20,"pl-s"],[21,22,"pl-ml"],[25,26,"pl-ml"],[72,73,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,12,"pl-c1"],[12,13,"pl-s"],[14,15,"pl-ml"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[20,21,"pl-ml"],[24,25,"pl-ml"],[71,72,"pl-ml"]],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[29,30,"pl-s"],[30,31,"pl-c1"],[31,32,"pl-s"]],[[7,9,"pl-s"],[24,26,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[24,25,"pl-s"],[25,26,"pl-s"],[26,40,"pl-corl"],[40,41,"pl-s"]],[],[[0,20,"pl-mh"],[4,20,"pl-en"],[9,10,"pl-s"],[10,19,"pl-c1"],[19,20,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,45,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[[0,2,"pl-s"],[11,13,"pl-s"]],[],[[0,1,"pl-ml"],[11,12,"pl-ml"],[22,23,"pl-ml"],[36,37,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,19,"pl-c1"],[19,20,"pl-s"],[21,22,"pl-ml"],[27,28,"pl-ml"],[53,54,"pl-ml"]],[],[[0,2,"pl-s"],[7,9,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,12,"pl-c1"],[12,13,"pl-s"],[14,15,"pl-ml"],[16,17,"pl-s"],[17,19,"pl-c1"],[19,20,"pl-s"],[21,22,"pl-ml"],[25,26,"pl-ml"],[88,89,"pl-s"],[89,91,"pl-c1"],[91,92,"pl-s"],[94,95,"pl-ml"]],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[39,40,"pl-s"],[40,65,"pl-c1"],[65,66,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-c1"],[2,3,"pl-s"],[43,45,"pl-s"],[60,62,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[[0,3,"pl-s"]],[],[[0,16,"pl-mh"],[4,16,"pl-en"],[9,10,"pl-s"],[10,15,"pl-c1"],[15,16,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,28,"pl-c1"]],[[0,51,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[[0,2,"pl-s"],[11,13,"pl-s"]],[],[[0,1,"pl-ml"],[11,12,"pl-ml"],[22,23,"pl-ml"],[36,37,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,10,"pl-c1"],[10,11,"pl-s"],[12,13,"pl-ml"],[17,18,"pl-ml"],[26,27,"pl-s"],[27,35,"pl-c1"],[35,36,"pl-s"],[38,39,"pl-s"],[39,50,"pl-c1"],[50,51,"pl-s"],[53,54,"pl-s"],[54,64,"pl-c1"],[64,65,"pl-s"],[67,68,"pl-s"],[68,73,"pl-c1"],[73,74,"pl-s"],[76,77,"pl-s"],[77,83,"pl-c1"],[83,84,"pl-s"],[86,87,"pl-ml"]],[],[[0,2,"pl-s"],[7,9,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[20,21,"pl-s"],[21,25,"pl-c1"],[25,26,"pl-s"],[27,28,"pl-ml"],[29,30,"pl-s"],[30,41,"pl-c1"],[41,42,"pl-s"],[52,53,"pl-s"],[53,58,"pl-c1"],[58,59,"pl-s"],[61,62,"pl-ml"],[63,64,"pl-s"],[64,82,"pl-c1"],[82,83,"pl-s"],[84,85,"pl-ml"],[103,104,"pl-s"],[104,107,"pl-c1"],[107,108,"pl-s"],[121,122,"pl-s"],[122,129,"pl-c1"],[129,130,"pl-s"],[142,143,"pl-s"],[143,148,"pl-c1"],[148,149,"pl-s"],[162,163,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[21,22,"pl-s"],[22,44,"pl-c1"],[44,45,"pl-s"],[46,47,"pl-ml"],[50,51,"pl-ml"],[52,53,"pl-s"],[53,65,"pl-c1"],[65,66,"pl-s"],[90,91,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,15,"pl-c1"],[15,16,"pl-s"],[17,18,"pl-ml"],[19,20,"pl-s"],[20,36,"pl-c1"],[36,37,"pl-s"],[38,39,"pl-ml"],[42,43,"pl-ml"],[44,45,"pl-s"],[45,57,"pl-c1"],[57,58,"pl-s"],[95,96,"pl-ml"]],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[61,62,"pl-s"],[62,63,"pl-c1"],[63,64,"pl-s"]],[[30,32,"pl-s"],[47,49,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[21,22,"pl-s"],[22,23,"pl-s"],[23,40,"pl-corl"],[40,41,"pl-s"],[43,44,"pl-s"],[50,51,"pl-s"],[51,52,"pl-s"],[52,58,"pl-corl"],[58,59,"pl-s"]],[],[[0,17,"pl-mh"],[4,17,"pl-en"],[9,10,"pl-s"],[10,16,"pl-c1"],[16,17,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,37,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[68,70,"pl-s"],[76,78,"pl-s"]],[[1,2,"pl-s"],[2,10,"pl-c1"],[10,11,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[16,17,"pl-ml"],[18,19,"pl-s"],[41,42,"pl-s"],[43,44,"pl-ml"],[47,48,"pl-ml"],[80,81,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[16,17,"pl-ml"],[18,19,"pl-s"],[29,30,"pl-s"],[31,32,"pl-ml"],[35,36,"pl-ml"],[59,60,"pl-ml"]],[],[[77,78,"pl-s"],[78,79,"pl-c1"],[79,80,"pl-s"]],[[12,13,"pl-s"],[13,63,"pl-c1"],[63,64,"pl-s"]],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[29,30,"pl-s"],[30,31,"pl-c1"],[31,32,"pl-s"],[54,55,"pl-s"],[55,61,"pl-c1"],[61,62,"pl-s"]],[[52,54,"pl-s"],[69,71,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[7,13,"pl-k"]],[],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[21,22,"pl-s"],[22,23,"pl-s"],[23,34,"pl-corl"],[34,35,"pl-s"],[55,56,"pl-s"],[60,61,"pl-s"],[61,62,"pl-s"],[62,83,"pl-corl"],[83,84,"pl-s"]],[],[[0,17,"pl-mh"],[4,17,"pl-en"],[9,10,"pl-s"],[10,16,"pl-c1"],[16,17,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,43,"pl-c1"]],[[0,48,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[],[[0,2,"pl-s"],[7,9,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[16,17,"pl-ml"],[18,19,"pl-s"],[26,27,"pl-s"],[28,29,"pl-ml"],[32,33,"pl-ml"],[66,67,"pl-s"],[67,78,"pl-c1"],[78,79,"pl-s"],[81,82,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[18,19,"pl-ml"],[20,21,"pl-s"],[29,30,"pl-s"],[31,32,"pl-ml"],[35,36,"pl-ml"],[51,52,"pl-s"],[52,56,"pl-c1"],[56,57,"pl-s"],[64,65,"pl-s"],[65,69,"pl-c1"],[69,70,"pl-s"],[86,87,"pl-s"],[87,100,"pl-c1"],[100,101,"pl-s"],[103,104,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[18,19,"pl-ml"],[24,25,"pl-ml"],[28,29,"pl-ml"],[65,66,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,15,"pl-c1"],[15,16,"pl-s"],[17,18,"pl-ml"],[19,20,"pl-s"],[35,36,"pl-s"],[36,49,"pl-c1"],[49,50,"pl-s"],[51,52,"pl-s"],[53,54,"pl-ml"],[57,58,"pl-ml"],[83,84,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,21,"pl-c1"],[21,22,"pl-s"],[23,24,"pl-ml"],[29,30,"pl-ml"],[33,34,"pl-ml"],[90,91,"pl-ml"]],[],[],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[29,30,"pl-s"],[30,31,"pl-c1"],[31,32,"pl-s"]],[[0,1,"pl-s"],[1,14,"pl-c1"],[14,15,"pl-s"],[24,25,"pl-s"],[25,32,"pl-c1"],[32,33,"pl-s"],[35,37,"pl-s"],[52,54,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[7,13,"pl-k"]],[[7,13,"pl-k"],[36,37,"pl-k"]],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[21,22,"pl-s"],[22,23,"pl-s"],[23,34,"pl-corl"],[34,35,"pl-s"]],[],[[0,15,"pl-mh"],[4,15,"pl-en"],[9,10,"pl-s"],[10,14,"pl-c1"],[14,15,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,55,"pl-c1"]],[[0,20,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[],[[0,2,"pl-s"],[7,9,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,11,"pl-c1"],[11,12,"pl-s"],[13,14,"pl-ml"],[19,20,"pl-ml"],[23,24,"pl-ml"],[69,70,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,11,"pl-c1"],[11,12,"pl-s"],[13,14,"pl-ml"],[19,20,"pl-ml"],[23,24,"pl-ml"],[78,79,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,8,"pl-c1"],[8,9,"pl-s"],[10,11,"pl-ml"],[16,17,"pl-ml"],[20,21,"pl-ml"],[71,72,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[16,17,"pl-ml"],[18,19,"pl-s"],[34,35,"pl-s"],[36,37,"pl-ml"],[40,41,"pl-ml"],[65,66,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,11,"pl-c1"],[11,12,"pl-s"],[13,14,"pl-ml"],[19,20,"pl-ml"],[23,24,"pl-ml"],[75,76,"pl-s"],[76,84,"pl-c1"],[84,85,"pl-s"],[88,89,"pl-ml"]],[],[[12,13,"pl-s"],[13,21,"pl-c1"],[21,22,"pl-s"],[23,24,"pl-s"],[24,32,"pl-c1"],[32,33,"pl-s"],[34,35,"pl-s"],[35,43,"pl-c1"],[43,44,"pl-s"]],[[9,10,"pl-s"],[10,18,"pl-c1"],[18,19,"pl-s"],[29,30,"pl-s"],[30,38,"pl-c1"],[38,39,"pl-s"]],[[0,1,"pl-s"],[1,15,"pl-c1"],[15,16,"pl-s"],[26,27,"pl-s"],[27,46,"pl-c1"],[46,47,"pl-s"],[66,67,"pl-s"],[67,77,"pl-c1"],[77,78,"pl-s"]],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[29,30,"pl-s"],[30,31,"pl-c1"],[31,32,"pl-s"]],[[9,11,"pl-s"],[26,28,"pl-s"]],[],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[31,32,"pl-s"],[32,33,"pl-s"],[33,49,"pl-corl"],[49,50,"pl-s"]],[],[[0,25,"pl-mh"],[4,25,"pl-en"],[9,10,"pl-s"],[10,24,"pl-c1"],[24,25,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,74,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[16,17,"pl-ml"],[18,19,"pl-s"],[29,30,"pl-s"],[31,32,"pl-ml"],[35,36,"pl-ml"],[67,68,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,12,"pl-c1"],[12,13,"pl-s"],[14,15,"pl-ml"],[16,17,"pl-s"],[27,28,"pl-s"],[29,30,"pl-ml"],[33,34,"pl-ml"],[58,59,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,12,"pl-c1"],[12,13,"pl-s"],[14,15,"pl-ml"],[20,21,"pl-ml"],[24,25,"pl-ml"],[67,68,"pl-ml"]],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[49,50,"pl-s"],[50,51,"pl-c1"],[51,52,"pl-s"],[65,66,"pl-s"],[66,72,"pl-c1"],[72,73,"pl-s"],[74,75,"pl-s"],[75,79,"pl-c1"],[79,80,"pl-s"]],[[16,18,"pl-s"],[33,35,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[29,47,"pl-s"],[29,30,"pl-pds"],[46,47,"pl-pds"]],[[29,47,"pl-s"],[29,30,"pl-pds"],[46,47,"pl-pds"]],[[0,3,"pl-s"]],[],[[0,18,"pl-mh"],[4,18,"pl-en"],[9,10,"pl-s"],[10,17,"pl-c1"],[17,18,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,28,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[[12,13,"pl-s"],[13,33,"pl-c1"],[33,34,"pl-s"]],[[0,2,"pl-s"],[6,8,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[16,17,"pl-ml"],[18,19,"pl-s"],[33,34,"pl-s"],[35,36,"pl-ml"],[39,40,"pl-ml"],[77,78,"pl-ml"]],[],[[21,22,"pl-s"],[22,28,"pl-c1"],[28,29,"pl-s"],[34,35,"pl-s"],[35,59,"pl-c1"],[59,60,"pl-s"]],[],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[59,60,"pl-s"],[60,61,"pl-c1"],[61,62,"pl-s"]],[],[[0,2,"pl-s"],[17,19,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[15,16,"pl-s"],[16,25,"pl-c1"],[25,26,"pl-s"],[26,27,"pl-s"],[27,28,"pl-s"],[28,37,"pl-corl"],[37,38,"pl-s"],[40,41,"pl-s"],[57,58,"pl-s"],[58,59,"pl-s"],[59,75,"pl-corl"],[75,76,"pl-s"]],[],[[0,17,"pl-mh"],[4,17,"pl-en"],[9,10,"pl-s"],[10,16,"pl-c1"],[16,17,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,13,"pl-c1"]],[[0,28,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[58,59,"pl-s"],[59,67,"pl-c1"],[67,68,"pl-s"]],[],[[0,2,"pl-s"],[7,9,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[38,39,"pl-s"],[39,60,"pl-c1"],[60,61,"pl-s"],[62,63,"pl-ml"],[64,65,"pl-s"],[65,82,"pl-c1"],[82,83,"pl-s"],[107,108,"pl-ml"],[190,191,"pl-s"],[191,192,"pl-c1"],[192,193,"pl-s"],[223,224,"pl-ml"]],[],[],[],[],[[6,7,"pl-s"],[7,8,"pl-c1"],[8,9,"pl-s"]],[],[[15,16,"pl-s"],[16,23,"pl-c1"],[23,24,"pl-s"],[74,75,"pl-s"],[75,79,"pl-c1"],[79,80,"pl-s"]],[[5,6,"pl-s"],[6,23,"pl-c1"],[23,24,"pl-s"],[29,30,"pl-s"],[30,49,"pl-c1"],[49,50,"pl-s"]],[],[],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[39,40,"pl-s"],[40,41,"pl-c1"],[41,42,"pl-s"]],[[0,2,"pl-s"],[17,19,"pl-s"],[56,57,"pl-s"],[57,74,"pl-c1"],[74,75,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[15,16,"pl-s"],[16,22,"pl-c1"],[22,23,"pl-s"],[23,24,"pl-s"],[24,25,"pl-s"],[25,42,"pl-corl"],[42,43,"pl-s"]],[],[[0,13,"pl-mh"],[4,13,"pl-en"],[9,10,"pl-s"],[10,12,"pl-c1"],[12,13,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,20,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[59,60,"pl-s"],[60,61,"pl-c1"],[61,62,"pl-s"]],[],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,11,"pl-c1"],[11,12,"pl-s"],[13,14,"pl-ml"],[15,16,"pl-s"],[16,18,"pl-c1"],[18,19,"pl-s"],[20,21,"pl-ml"],[24,25,"pl-ml"],[111,112,"pl-ml"]],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[39,40,"pl-s"],[40,59,"pl-c1"],[59,60,"pl-s"],[63,64,"pl-s"],[64,65,"pl-c1"],[65,66,"pl-s"]],[[14,16,"pl-s"],[31,33,"pl-s"],[40,42,"pl-s"],[50,52,"pl-s"]],[],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[[0,3,"pl-s"]],[],[[0,17,"pl-mh"],[4,17,"pl-en"],[9,10,"pl-s"],[10,16,"pl-c1"],[16,17,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,20,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[63,64,"pl-s"],[64,75,"pl-c1"],[75,76,"pl-s"]],[],[[0,1,"pl-ml"],[11,12,"pl-ml"],[21,22,"pl-ml"],[44,45,"pl-ml"],[58,59,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,9,"pl-c1"],[9,10,"pl-s"],[11,12,"pl-ml"],[13,14,"pl-s"],[14,48,"pl-c1"],[48,49,"pl-s"],[50,51,"pl-ml"],[54,55,"pl-ml"],[111,112,"pl-ml"]],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[29,30,"pl-s"],[30,31,"pl-c1"],[31,32,"pl-s"]],[[0,2,"pl-s"],[17,19,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[[14,15,"pl-k"]],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[22,23,"pl-s"],[23,24,"pl-s"],[24,36,"pl-corl"],[36,37,"pl-s"]],[],[[0,16,"pl-mh"],[4,16,"pl-en"],[9,10,"pl-s"],[10,15,"pl-c1"],[15,16,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,36,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[[11,12,"pl-s"],[12,26,"pl-c1"],[26,27,"pl-s"]],[],[],[[0,1,"pl-ml"],[18,19,"pl-ml"],[28,29,"pl-ml"],[51,52,"pl-ml"],[65,66,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,9,"pl-c1"],[9,10,"pl-s"],[11,12,"pl-ml"],[13,14,"pl-s"],[14,15,"pl-c1"],[15,16,"pl-s"],[17,18,"pl-ml"],[21,22,"pl-ml"],[74,75,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,17,"pl-c1"],[17,18,"pl-s"],[21,22,"pl-s"],[22,36,"pl-c1"],[36,37,"pl-s"],[38,39,"pl-ml"],[60,61,"pl-s"],[61,68,"pl-c1"],[68,69,"pl-s"],[70,71,"pl-ml"],[74,75,"pl-ml"],[110,111,"pl-ml"]],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[32,33,"pl-s"],[33,34,"pl-c1"],[34,35,"pl-s"]],[[7,9,"pl-s"],[24,26,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[21,22,"pl-s"],[22,23,"pl-s"],[23,34,"pl-corl"],[34,35,"pl-s"],[37,38,"pl-s"],[38,39,"pl-s"],[39,48,"pl-c1"],[48,49,"pl-s"],[49,50,"pl-s"],[50,51,"pl-s"],[51,60,"pl-corl"],[60,61,"pl-s"]],[],[[0,17,"pl-mh"],[4,17,"pl-en"],[9,10,"pl-s"],[10,16,"pl-c1"],[16,17,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,53,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[],[],[[0,2,"pl-s"],[19,21,"pl-s"]],[],[[0,1,"pl-ml"],[18,19,"pl-ml"],[28,29,"pl-ml"],[51,52,"pl-ml"],[65,66,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,9,"pl-c1"],[9,10,"pl-s"],[11,12,"pl-ml"],[13,14,"pl-s"],[14,15,"pl-c1"],[15,16,"pl-s"],[17,18,"pl-ml"],[21,22,"pl-ml"],[42,43,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,17,"pl-c1"],[17,18,"pl-s"],[21,22,"pl-s"],[22,29,"pl-c1"],[29,30,"pl-s"],[31,32,"pl-ml"],[53,54,"pl-s"],[54,61,"pl-c1"],[61,62,"pl-s"],[63,64,"pl-ml"],[67,68,"pl-ml"],[83,84,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[20,21,"pl-s"],[21,25,"pl-c1"],[25,26,"pl-s"],[27,28,"pl-ml"],[29,30,"pl-s"],[30,33,"pl-c1"],[33,34,"pl-s"],[35,36,"pl-ml"],[39,40,"pl-ml"],[101,102,"pl-ml"]],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[29,30,"pl-s"],[30,31,"pl-c1"],[31,32,"pl-s"]],[[0,2,"pl-s"],[17,19,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[15,16,"pl-s"],[16,25,"pl-c1"],[25,26,"pl-s"],[26,27,"pl-s"],[27,28,"pl-s"],[28,37,"pl-corl"],[37,38,"pl-s"],[40,41,"pl-s"],[46,47,"pl-s"],[47,48,"pl-s"],[48,58,"pl-corl"],[58,59,"pl-s"]],[],[[0,15,"pl-mh"],[4,15,"pl-en"],[9,10,"pl-s"],[10,14,"pl-c1"],[14,15,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,44,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[23,24,"pl-s"],[24,35,"pl-c1"],[35,36,"pl-s"],[38,39,"pl-s"],[39,55,"pl-c1"],[55,56,"pl-s"],[58,59,"pl-s"],[59,77,"pl-c1"],[77,78,"pl-s"]],[[4,5,"pl-s"],[5,19,"pl-c1"],[19,20,"pl-s"],[56,57,"pl-s"],[57,58,"pl-c1"],[58,59,"pl-s"]],[],[],[],[[0,1,"pl-ml"],[13,14,"pl-ml"],[23,24,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,8,"pl-c1"],[8,9,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,21,"pl-corl"],[21,22,"pl-s"],[23,24,"pl-ml"],[74,75,"pl-s"],[75,81,"pl-c1"],[81,82,"pl-s"],[85,86,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,11,"pl-c1"],[11,12,"pl-s"],[12,13,"pl-s"],[13,14,"pl-s"],[14,27,"pl-corl"],[27,28,"pl-s"],[29,30,"pl-ml"],[53,54,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,11,"pl-c1"],[11,12,"pl-s"],[12,13,"pl-s"],[13,14,"pl-s"],[14,27,"pl-corl"],[27,28,"pl-s"],[29,30,"pl-ml"],[69,70,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,10,"pl-c1"],[10,11,"pl-s"],[11,12,"pl-s"],[12,13,"pl-s"],[13,25,"pl-corl"],[25,26,"pl-s"],[27,28,"pl-ml"],[77,78,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,8,"pl-c1"],[8,9,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,21,"pl-corl"],[21,22,"pl-s"],[23,24,"pl-ml"],[66,67,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,9,"pl-c1"],[9,10,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"],[12,23,"pl-corl"],[23,24,"pl-s"],[25,26,"pl-ml"],[66,67,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,7,"pl-c1"],[7,8,"pl-s"],[8,9,"pl-s"],[9,10,"pl-s"],[10,19,"pl-corl"],[19,20,"pl-s"],[21,22,"pl-ml"],[59,60,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,9,"pl-c1"],[9,10,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"],[12,23,"pl-corl"],[23,24,"pl-s"],[25,26,"pl-ml"],[63,64,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,4,"pl-s"],[4,8,"pl-c1"],[8,9,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,21,"pl-corl"],[21,22,"pl-s"],[23,24,"pl-ml"],[63,64,"pl-ml"]],[],[[24,25,"pl-s"],[25,34,"pl-c1"],[34,35,"pl-s"],[39,40,"pl-s"],[40,47,"pl-c1"],[47,48,"pl-s"]],[],[[0,16,"pl-mh"],[5,16,"pl-en"],[5,6,"pl-s"],[6,15,"pl-c1"],[15,16,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,56,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[13,14,"pl-s"],[14,15,"pl-s"],[15,21,"pl-c1"],[21,22,"pl-s"],[22,23,"pl-s"],[23,24,"pl-s"],[24,35,"pl-corl"],[35,36,"pl-s"]],[[1,2,"pl-s"],[2,13,"pl-c1"],[13,14,"pl-s"],[23,24,"pl-s"],[24,27,"pl-c1"],[27,28,"pl-s"]],[],[[0,19,"pl-mh"],[5,19,"pl-en"],[5,6,"pl-s"],[6,18,"pl-c1"],[18,19,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,64,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[21,22,"pl-s"],[22,29,"pl-c1"],[29,30,"pl-s"],[31,32,"pl-ml"],[35,36,"pl-ml"],[51,52,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[16,17,"pl-ml"],[18,19,"pl-s"],[26,27,"pl-s"],[28,29,"pl-ml"],[32,33,"pl-ml"],[57,58,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[16,17,"pl-ml"],[18,19,"pl-s"],[26,27,"pl-s"],[28,29,"pl-ml"],[32,33,"pl-ml"],[55,56,"pl-ml"]],[],[],[],[[0,19,"pl-mh"],[5,19,"pl-en"],[5,6,"pl-s"],[6,18,"pl-c1"],[18,19,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,36,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[[0,18,"pl-mh"],[5,18,"pl-en"],[5,6,"pl-s"],[6,17,"pl-c1"],[17,18,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,64,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[0,1,"pl-ml"],[13,14,"pl-ml"],[23,24,"pl-ml"],[46,47,"pl-ml"],[60,61,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,11,"pl-c1"],[11,12,"pl-s"],[13,14,"pl-ml"],[15,16,"pl-s"],[26,27,"pl-s"],[28,29,"pl-ml"],[32,33,"pl-ml"],[65,66,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[21,22,"pl-s"],[22,29,"pl-c1"],[29,30,"pl-s"],[31,32,"pl-ml"],[35,36,"pl-ml"],[51,52,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,11,"pl-c1"],[11,12,"pl-s"],[13,14,"pl-ml"],[15,16,"pl-s"],[16,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[23,24,"pl-ml"],[42,43,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,9,"pl-c1"],[9,10,"pl-s"],[11,12,"pl-ml"],[17,18,"pl-ml"],[21,22,"pl-ml"],[34,35,"pl-ml"]],[],[[0,1,"pl-s"],[1,13,"pl-c1"],[13,14,"pl-s"],[31,32,"pl-s"],[32,38,"pl-c1"],[38,39,"pl-s"]],[],[[0,16,"pl-mh"],[5,16,"pl-en"],[5,6,"pl-s"],[6,15,"pl-c1"],[15,16,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,64,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,11,"pl-c1"],[11,12,"pl-s"],[15,16,"pl-s"],[16,24,"pl-c1"],[24,25,"pl-s"],[26,27,"pl-ml"],[32,33,"pl-ml"],[36,37,"pl-ml"],[96,97,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[21,22,"pl-s"],[22,29,"pl-c1"],[29,30,"pl-s"],[31,32,"pl-ml"],[35,36,"pl-ml"],[51,52,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,11,"pl-c1"],[11,12,"pl-s"],[13,14,"pl-ml"],[15,16,"pl-s"],[16,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[23,24,"pl-ml"],[42,43,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,9,"pl-c1"],[9,10,"pl-s"],[11,12,"pl-ml"],[17,18,"pl-ml"],[21,22,"pl-ml"],[34,35,"pl-ml"]],[],[[9,10,"pl-s"],[10,13,"pl-c1"],[13,14,"pl-s"]],[],[[0,17,"pl-mh"],[5,17,"pl-en"],[5,6,"pl-s"],[6,16,"pl-c1"],[16,17,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,93,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[21,22,"pl-s"],[22,29,"pl-c1"],[29,30,"pl-s"],[31,32,"pl-ml"],[35,36,"pl-ml"],[51,52,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,13,"pl-c1"],[13,14,"pl-s"],[15,16,"pl-ml"],[17,18,"pl-s"],[18,25,"pl-c1"],[25,26,"pl-s"],[27,28,"pl-ml"],[31,32,"pl-ml"],[48,49,"pl-s"],[49,56,"pl-c1"],[56,57,"pl-s"],[59,60,"pl-s"],[60,65,"pl-c1"],[65,66,"pl-s"],[74,75,"pl-s"],[75,79,"pl-c1"],[79,80,"pl-s"],[83,84,"pl-s"],[84,88,"pl-c1"],[88,89,"pl-s"],[112,113,"pl-s"],[113,114,"pl-c1"],[114,115,"pl-s"],[117,118,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,13,"pl-c1"],[13,14,"pl-s"],[15,16,"pl-ml"],[17,18,"pl-s"],[25,26,"pl-s"],[27,28,"pl-ml"],[31,32,"pl-ml"],[69,70,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,11,"pl-c1"],[11,12,"pl-s"],[13,14,"pl-ml"],[15,16,"pl-s"],[16,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[23,24,"pl-ml"],[70,71,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[18,19,"pl-ml"],[20,21,"pl-s"],[21,23,"pl-c1"],[23,24,"pl-s"],[25,26,"pl-ml"],[29,30,"pl-ml"],[46,47,"pl-ml"]],[],[[0,15,"pl-mh"],[5,15,"pl-en"],[5,6,"pl-s"],[6,14,"pl-c1"],[14,15,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,45,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[21,22,"pl-s"],[22,29,"pl-c1"],[29,30,"pl-s"],[31,32,"pl-ml"],[35,36,"pl-ml"],[51,52,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,13,"pl-c1"],[13,14,"pl-s"],[15,16,"pl-ml"],[17,18,"pl-s"],[18,22,"pl-c1"],[22,23,"pl-s"],[24,25,"pl-ml"],[28,29,"pl-ml"],[44,45,"pl-ml"]],[],[[0,1,"pl-s"],[1,9,"pl-c1"],[9,10,"pl-s"],[27,28,"pl-s"],[28,31,"pl-c1"],[31,32,"pl-s"]],[],[[0,17,"pl-mh"],[5,17,"pl-en"],[5,6,"pl-s"],[6,16,"pl-c1"],[16,17,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,63,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[0,1,"pl-ml"],[13,14,"pl-ml"],[23,24,"pl-ml"],[46,47,"pl-ml"],[60,61,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,11,"pl-c1"],[11,12,"pl-s"],[13,14,"pl-ml"],[15,16,"pl-s"],[26,27,"pl-s"],[28,29,"pl-ml"],[32,33,"pl-ml"],[65,66,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[21,22,"pl-s"],[22,29,"pl-c1"],[29,30,"pl-s"],[31,32,"pl-ml"],[35,36,"pl-ml"],[51,52,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,11,"pl-c1"],[11,12,"pl-s"],[13,14,"pl-ml"],[15,16,"pl-s"],[16,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[23,24,"pl-ml"],[42,43,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,9,"pl-c1"],[9,10,"pl-s"],[11,12,"pl-ml"],[17,18,"pl-ml"],[21,22,"pl-ml"],[34,35,"pl-ml"]],[],[[0,1,"pl-s"],[1,9,"pl-c1"],[9,10,"pl-s"],[15,16,"pl-s"],[16,30,"pl-c1"],[30,31,"pl-s"],[48,49,"pl-s"],[49,54,"pl-c1"],[54,55,"pl-s"]],[],[[0,16,"pl-mh"],[5,16,"pl-en"],[5,6,"pl-s"],[6,15,"pl-c1"],[15,16,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,97,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[0,1,"pl-ml"],[13,14,"pl-ml"],[23,24,"pl-ml"],[46,47,"pl-ml"],[60,61,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,10,"pl-c1"],[10,11,"pl-s"],[12,13,"pl-ml"],[14,15,"pl-s"],[25,26,"pl-s"],[27,28,"pl-ml"],[31,32,"pl-ml"],[59,60,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[21,22,"pl-s"],[22,29,"pl-c1"],[29,30,"pl-s"],[31,32,"pl-ml"],[35,36,"pl-ml"],[51,52,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,11,"pl-c1"],[11,12,"pl-s"],[13,14,"pl-ml"],[15,16,"pl-s"],[23,24,"pl-s"],[25,26,"pl-ml"],[29,30,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[16,17,"pl-ml"],[18,19,"pl-s"],[26,27,"pl-s"],[28,29,"pl-ml"],[32,33,"pl-ml"],[55,56,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,12,"pl-c1"],[12,13,"pl-s"],[14,15,"pl-ml"],[16,17,"pl-s"],[17,19,"pl-c1"],[19,20,"pl-s"],[21,22,"pl-ml"],[25,26,"pl-ml"],[44,45,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,10,"pl-c1"],[10,11,"pl-s"],[12,13,"pl-ml"],[18,19,"pl-ml"],[22,23,"pl-ml"],[65,66,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,9,"pl-c1"],[9,10,"pl-s"],[11,12,"pl-ml"],[17,18,"pl-ml"],[21,22,"pl-ml"],[34,35,"pl-ml"]],[],[[0,1,"pl-s"],[1,15,"pl-c1"],[15,16,"pl-s"],[33,34,"pl-s"],[34,38,"pl-c1"],[38,39,"pl-s"]],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[29,30,"pl-s"],[30,31,"pl-c1"],[31,32,"pl-s"]],[[47,49,"pl-s"],[64,66,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[17,18,"pl-c1"]],[],[],[],[],[],[[17,26,"pl-s"],[17,18,"pl-pds"],[25,26,"pl-pds"]],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[21,22,"pl-s"],[22,23,"pl-s"],[23,34,"pl-corl"],[34,35,"pl-s"],[37,38,"pl-s"],[43,44,"pl-s"],[44,45,"pl-s"],[45,55,"pl-corl"],[55,56,"pl-s"]],[],[[0,17,"pl-mh"],[4,17,"pl-en"],[9,10,"pl-s"],[10,16,"pl-c1"],[16,17,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,46,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[[0,1,"pl-ml"],[13,14,"pl-ml"],[23,24,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,26,"pl-c1"],[26,27,"pl-s"],[28,29,"pl-ml"],[47,48,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,49,"pl-c1"],[49,50,"pl-s"],[51,52,"pl-ml"],[78,79,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,7,"pl-c1"],[7,8,"pl-s"],[11,12,"pl-s"],[12,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[46,47,"pl-s"],[47,55,"pl-c1"],[55,56,"pl-s"],[57,58,"pl-s"],[58,62,"pl-c1"],[62,63,"pl-s"],[75,76,"pl-s"],[76,80,"pl-c1"],[80,81,"pl-s"],[100,101,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,11,"pl-c1"],[11,12,"pl-s"],[13,14,"pl-ml"],[39,40,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,7,"pl-c1"],[7,8,"pl-s"],[9,10,"pl-ml"],[40,41,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,7,"pl-c1"],[7,8,"pl-s"],[9,10,"pl-ml"],[48,49,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,9,"pl-c1"],[9,10,"pl-s"],[13,14,"pl-s"],[14,25,"pl-c1"],[25,26,"pl-s"],[27,28,"pl-ml"],[62,63,"pl-ml"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[20,21,"pl-ml"],[30,31,"pl-ml"],[53,54,"pl-ml"],[67,68,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"],[20,21,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[18,19,"pl-s"],[19,21,"pl-c1"],[21,22,"pl-s"],[25,26,"pl-s"],[26,34,"pl-c1"],[34,35,"pl-s"],[36,37,"pl-ml"],[38,39,"pl-s"],[39,42,"pl-c1"],[42,43,"pl-s"],[45,46,"pl-s"],[46,49,"pl-c1"],[49,50,"pl-s"],[52,53,"pl-s"],[53,57,"pl-c1"],[57,58,"pl-s"],[60,61,"pl-s"],[61,69,"pl-c1"],[69,70,"pl-s"],[71,72,"pl-ml"],[73,74,"pl-s"],[86,87,"pl-s"],[88,89,"pl-ml"],[92,93,"pl-ml"],[129,130,"pl-s"],[130,141,"pl-c1"],[141,142,"pl-s"],[145,146,"pl-s"],[146,159,"pl-c1"],[159,160,"pl-s"],[162,163,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,15,"pl-c1"],[15,16,"pl-s"],[17,18,"pl-ml"],[19,20,"pl-s"],[20,24,"pl-c1"],[24,25,"pl-s"],[27,28,"pl-s"],[28,32,"pl-c1"],[32,33,"pl-s"],[35,36,"pl-s"],[36,39,"pl-c1"],[39,40,"pl-s"],[41,42,"pl-ml"],[43,44,"pl-s"],[44,48,"pl-c1"],[48,49,"pl-s"],[50,51,"pl-ml"],[54,55,"pl-ml"],[56,57,"pl-s"],[57,61,"pl-c1"],[61,62,"pl-s"],[66,67,"pl-s"],[67,71,"pl-c1"],[71,72,"pl-s"],[77,78,"pl-s"],[78,82,"pl-c1"],[82,83,"pl-s"],[85,86,"pl-s"],[86,90,"pl-c1"],[90,91,"pl-s"],[92,93,"pl-s"],[93,97,"pl-c1"],[97,98,"pl-s"],[99,100,"pl-s"],[100,104,"pl-c1"],[104,105,"pl-s"],[120,121,"pl-s"],[121,124,"pl-c1"],[124,125,"pl-s"],[126,127,"pl-s"],[127,131,"pl-c1"],[131,132,"pl-s"],[134,135,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,10,"pl-c1"],[10,11,"pl-s"],[14,15,"pl-s"],[15,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[21,22,"pl-s"],[22,26,"pl-c1"],[26,27,"pl-s"],[28,29,"pl-ml"],[34,35,"pl-ml"],[38,39,"pl-ml"],[68,69,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,10,"pl-c1"],[10,11,"pl-s"],[14,15,"pl-s"],[15,28,"pl-c1"],[28,29,"pl-s"],[30,31,"pl-ml"],[32,33,"pl-s"],[33,37,"pl-c1"],[37,38,"pl-s"],[39,40,"pl-ml"],[41,42,"pl-s"],[62,63,"pl-s"],[64,65,"pl-ml"],[68,69,"pl-ml"],[83,84,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,8,"pl-c1"],[8,9,"pl-s"],[10,11,"pl-ml"],[12,13,"pl-s"],[13,19,"pl-c1"],[19,20,"pl-s"],[21,22,"pl-ml"],[27,28,"pl-ml"],[31,32,"pl-ml"],[55,56,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,8,"pl-c1"],[8,9,"pl-s"],[10,11,"pl-ml"],[12,13,"pl-s"],[13,19,"pl-c1"],[19,20,"pl-s"],[21,22,"pl-ml"],[27,28,"pl-ml"],[31,32,"pl-ml"],[55,56,"pl-ml"]],[],[[5,6,"pl-s"],[6,12,"pl-c1"],[12,13,"pl-s"]],[],[],[[19,20,"pl-s"],[20,23,"pl-c1"],[23,24,"pl-s"],[25,26,"pl-s"],[26,29,"pl-c1"],[29,30,"pl-s"],[33,34,"pl-s"],[34,45,"pl-c1"],[45,46,"pl-s"],[54,55,"pl-s"],[55,67,"pl-c1"],[67,68,"pl-s"],[71,72,"pl-s"],[72,80,"pl-c1"],[80,81,"pl-s"]],[[0,1,"pl-s"],[1,12,"pl-c1"],[12,13,"pl-s"],[15,16,"pl-s"],[16,29,"pl-c1"],[29,30,"pl-s"],[32,33,"pl-s"],[33,51,"pl-c1"],[51,52,"pl-s"],[54,55,"pl-s"],[55,67,"pl-c1"],[67,68,"pl-s"]],[[0,1,"pl-s"],[1,10,"pl-c1"],[10,11,"pl-s"],[13,14,"pl-s"],[14,23,"pl-c1"],[23,24,"pl-s"],[26,27,"pl-s"],[27,37,"pl-c1"],[37,38,"pl-s"],[40,41,"pl-s"],[41,54,"pl-c1"],[54,55,"pl-s"],[57,58,"pl-s"],[58,72,"pl-c1"],[72,73,"pl-s"]],[[0,1,"pl-s"],[1,26,"pl-c1"],[26,27,"pl-s"],[35,36,"pl-s"],[36,54,"pl-c1"],[54,55,"pl-s"]],[[0,1,"pl-s"],[1,23,"pl-c1"],[23,24,"pl-s"],[26,27,"pl-s"],[27,52,"pl-c1"],[52,53,"pl-s"],[55,56,"pl-s"],[56,69,"pl-c1"],[69,70,"pl-s"]],[[0,1,"pl-s"],[1,12,"pl-c1"],[12,13,"pl-s"],[15,16,"pl-s"],[16,40,"pl-c1"],[40,41,"pl-s"],[43,44,"pl-s"],[44,55,"pl-c1"],[55,56,"pl-s"],[58,59,"pl-s"],[59,70,"pl-c1"],[70,71,"pl-s"]],[[0,1,"pl-s"],[1,19,"pl-c1"],[19,20,"pl-s"],[22,23,"pl-s"],[23,37,"pl-c1"],[37,38,"pl-s"],[40,41,"pl-s"],[41,61,"pl-c1"],[61,62,"pl-s"],[64,65,"pl-s"],[65,77,"pl-c1"],[77,78,"pl-s"]],[[0,1,"pl-s"],[1,9,"pl-c1"],[9,10,"pl-s"],[12,13,"pl-s"],[13,27,"pl-c1"],[27,28,"pl-s"],[30,31,"pl-s"],[31,44,"pl-c1"],[44,45,"pl-s"],[47,48,"pl-s"],[48,72,"pl-c1"],[72,73,"pl-s"]],[[0,1,"pl-s"],[1,34,"pl-c1"],[34,35,"pl-s"],[37,38,"pl-s"],[38,62,"pl-c1"],[62,63,"pl-s"],[65,66,"pl-s"],[66,81,"pl-c1"],[81,82,"pl-s"]],[],[[0,1,"pl-s"],[1,12,"pl-c1"],[12,13,"pl-s"],[20,21,"pl-s"],[21,31,"pl-c1"],[31,32,"pl-s"],[34,35,"pl-s"],[35,56,"pl-c1"],[56,57,"pl-s"]],[[0,1,"pl-s"],[1,27,"pl-c1"],[27,28,"pl-s"],[34,35,"pl-s"],[35,68,"pl-c1"],[68,69,"pl-s"]],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[29,30,"pl-s"],[30,31,"pl-c1"],[31,32,"pl-s"]],[[35,37,"pl-s"],[52,54,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[[14,17,"pl-c1"]],[[14,17,"pl-c1"]],[],[],[],[],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[31,32,"pl-s"],[32,33,"pl-s"],[33,49,"pl-corl"],[49,50,"pl-s"]],[],[[0,15,"pl-mh"],[4,15,"pl-en"],[9,10,"pl-s"],[10,14,"pl-c1"],[14,15,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,43,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[49,50,"pl-s"],[50,60,"pl-c1"],[60,61,"pl-s"]],[],[[0,1,"pl-ml"],[13,14,"pl-ml"],[21,22,"pl-ml"],[32,33,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,8,"pl-c1"],[8,9,"pl-s"],[10,11,"pl-ml"],[12,13,"pl-s"],[13,26,"pl-c1"],[26,27,"pl-s"],[30,31,"pl-s"],[31,33,"pl-c1"],[33,34,"pl-s"],[37,38,"pl-s"],[38,51,"pl-c1"],[51,52,"pl-s"],[53,54,"pl-ml"],[124,125,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,9,"pl-c1"],[9,10,"pl-s"],[13,14,"pl-s"],[14,20,"pl-c1"],[20,21,"pl-s"],[22,23,"pl-ml"],[29,30,"pl-ml"],[79,80,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,9,"pl-c1"],[9,10,"pl-s"],[11,12,"pl-ml"],[18,19,"pl-ml"],[27,28,"pl-s"],[28,38,"pl-c1"],[38,39,"pl-s"],[51,52,"pl-ml"]],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[29,30,"pl-s"],[30,31,"pl-c1"],[31,32,"pl-s"]],[[22,24,"pl-s"],[39,41,"pl-s"]],[],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[26,27,"pl-k"],[33,34,"pl-k"]],[],[[12,18,"pl-c1"]],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[39,40,"pl-s"],[40,41,"pl-s"],[41,65,"pl-corl"],[65,66,"pl-s"]],[],[[0,14,"pl-mh"],[4,14,"pl-en"],[9,10,"pl-s"],[10,13,"pl-c1"],[13,14,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,37,"pl-c1"]],[[0,43,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[52,53,"pl-s"],[53,63,"pl-c1"],[63,64,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,18,"pl-c1"],[18,19,"pl-s"],[22,23,"pl-s"],[23,25,"pl-c1"],[25,26,"pl-s"],[29,30,"pl-s"],[30,45,"pl-c1"],[45,46,"pl-s"],[47,48,"pl-ml"],[49,50,"pl-s"],[50,70,"pl-c1"],[70,71,"pl-s"],[72,73,"pl-ml"],[76,77,"pl-ml"],[97,98,"pl-ml"]],[],[[0,1,"pl-v"],[2,3,"pl-s"],[3,7,"pl-c1"],[7,8,"pl-s"]],[],[[0,1,"pl-v"],[2,3,"pl-s"],[3,13,"pl-c1"],[13,14,"pl-s"]],[],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[29,30,"pl-s"],[30,31,"pl-c1"],[31,32,"pl-s"]],[[32,34,"pl-s"],[49,51,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[20,21,"pl-s"],[21,22,"pl-s"],[22,31,"pl-corl"],[31,32,"pl-s"],[34,35,"pl-s"],[35,36,"pl-s"],[36,49,"pl-c1"],[49,50,"pl-s"],[50,51,"pl-s"],[51,52,"pl-s"],[52,67,"pl-corl"],[67,68,"pl-s"]],[],[[0,26,"pl-mh"],[4,26,"pl-en"],[9,10,"pl-s"],[10,16,"pl-c1"],[16,17,"pl-s"],[20,21,"pl-s"],[21,25,"pl-c1"],[25,26,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,22,"pl-c1"]],[[0,20,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[[6,7,"pl-s"],[7,11,"pl-c1"],[11,12,"pl-s"],[29,30,"pl-s"],[30,36,"pl-c1"],[36,37,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,9,"pl-c1"],[9,10,"pl-s"],[11,12,"pl-ml"],[17,18,"pl-ml"],[21,22,"pl-ml"],[79,80,"pl-ml"]],[],[],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[[2,8,"pl-ent"],[10,17,"pl-s"],[10,11,"pl-pds"],[16,17,"pl-pds"]],[[2,15,"pl-ent"],[17,60,"pl-s"],[17,18,"pl-pds"],[59,60,"pl-pds"]],[[2,12,"pl-ent"],[16,22,"pl-ent"],[24,27,"pl-s"],[24,25,"pl-pds"],[26,27,"pl-pds"],[29,40,"pl-ent"],[42,47,"pl-c1"]],[[2,8,"pl-ent"],[12,21,"pl-ent"],[23,28,"pl-c1"],[30,35,"pl-ent"],[37,39,"pl-s"],[37,38,"pl-pds"],[38,39,"pl-pds"]],[[2,14,"pl-ent"],[16,43,"pl-s"],[16,17,"pl-pds"],[42,43,"pl-pds"]],[[2,15,"pl-ent"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[],[[0,3,"pl-s"]],[],[[36,37,"pl-s"],[37,48,"pl-c1"],[48,49,"pl-s"],[56,57,"pl-s"],[57,75,"pl-c1"],[75,76,"pl-s"]],[[0,1,"pl-s"],[1,13,"pl-c1"],[13,14,"pl-s"],[17,18,"pl-s"],[18,26,"pl-c1"],[26,27,"pl-s"],[34,35,"pl-s"],[35,40,"pl-c1"],[40,41,"pl-s"]],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[29,31,"pl-s"],[46,48,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[21,22,"pl-s"],[22,23,"pl-s"],[23,34,"pl-corl"],[34,35,"pl-s"],[37,38,"pl-s"],[53,54,"pl-s"],[54,55,"pl-s"],[55,73,"pl-corl"],[73,74,"pl-s"]],[],[[0,18,"pl-mh"],[4,18,"pl-en"],[9,10,"pl-s"],[10,17,"pl-c1"],[17,18,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,50,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[[0,1,"pl-ml"],[13,14,"pl-ml"],[24,25,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,5,"pl-c1"],[5,6,"pl-s"],[7,8,"pl-ml"],[39,40,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,20,"pl-c1"],[20,21,"pl-s"],[22,23,"pl-ml"],[45,46,"pl-s"],[46,47,"pl-c1"],[47,48,"pl-s"],[58,59,"pl-s"],[59,60,"pl-c1"],[60,61,"pl-s"],[64,65,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,9,"pl-c1"],[9,10,"pl-s"],[11,12,"pl-ml"],[74,75,"pl-ml"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,13,"pl-c1"],[13,14,"pl-s"],[15,16,"pl-ml"],[17,18,"pl-s"],[18,19,"pl-c1"],[19,20,"pl-s"],[21,22,"pl-ml"],[25,26,"pl-ml"],[46,47,"pl-s"],[47,51,"pl-c1"],[51,52,"pl-s"],[54,55,"pl-ml"]],[],[[39,40,"pl-s"],[40,52,"pl-c1"],[52,53,"pl-s"]],[],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[29,30,"pl-s"],[30,31,"pl-c1"],[31,32,"pl-s"]],[[30,32,"pl-s"],[47,49,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[11,13,"pl-s"],[14,15,"pl-s"],[21,22,"pl-s"],[22,23,"pl-s"],[23,34,"pl-corl"],[34,35,"pl-s"]],[],[[0,17,"pl-mh"],[4,17,"pl-en"],[9,10,"pl-s"],[10,16,"pl-c1"],[16,17,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"],[7,7,"pl-c1"]],[[0,23,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[17,18,"pl-ml"],[40,41,"pl-ml"],[54,55,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,10,"pl-c1"],[10,11,"pl-s"],[14,15,"pl-s"],[15,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[25,26,"pl-ml"],[29,30,"pl-ml"],[77,78,"pl-ml"]],[],[[29,30,"pl-s"],[30,37,"pl-c1"],[37,38,"pl-s"]],[[22,23,"pl-s"],[23,30,"pl-c1"],[30,31,"pl-s"]],[],[[0,2,"pl-s"],[13,15,"pl-s"],[16,17,"pl-s"],[17,18,"pl-c1"],[18,19,"pl-s"],[52,53,"pl-s"],[53,54,"pl-c1"],[54,55,"pl-s"]],[[0,2,"pl-s"],[17,19,"pl-s"]],[],[[0,2,"pl-s"],[10,12,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[],[[0,3,"pl-s"]],[],[[0,3,"pl-ms"]],[],[[0,32,"pl-mh"],[3,32,"pl-en"]],[],[],[],[[0,1,"pl-s"],[1,8,"pl-c1"],[8,9,"pl-s"],[37,38,"pl-s"],[38,39,"pl-c1"],[39,40,"pl-s"],[53,54,"pl-s"],[54,55,"pl-c1"],[55,56,"pl-s"]],[[0,1,"pl-s"],[1,13,"pl-c1"],[13,14,"pl-s"],[24,25,"pl-s"],[25,31,"pl-c1"],[31,32,"pl-s"],[54,55,"pl-s"],[55,64,"pl-c1"],[64,65,"pl-s"]],[[0,1,"pl-s"],[1,17,"pl-c1"],[17,18,"pl-s"]],[],[],[],[[0,25,"pl-mh"],[4,25,"pl-en"]],[],[[0,1,"pl-ml"],[11,12,"pl-ml"],[24,25,"pl-ml"],[34,35,"pl-ml"],[44,45,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[16,17,"pl-ml"],[20,21,"pl-ml"],[22,23,"pl-s"],[32,33,"pl-s"],[33,38,"pl-c1"],[38,39,"pl-s"],[40,41,"pl-s"],[42,43,"pl-ml"],[68,69,"pl-s"],[69,74,"pl-c1"],[74,75,"pl-s"],[77,78,"pl-s"],[78,84,"pl-c1"],[84,85,"pl-s"],[87,88,"pl-s"],[88,94,"pl-c1"],[94,95,"pl-s"],[97,98,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,21,"pl-c1"],[21,22,"pl-s"],[23,24,"pl-ml"],[25,26,"pl-s"],[26,37,"pl-c1"],[37,38,"pl-s"],[39,40,"pl-ml"],[41,42,"pl-s"],[42,48,"pl-c1"],[48,49,"pl-s"],[50,51,"pl-ml"],[65,66,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,24,"pl-c1"],[24,25,"pl-s"],[26,27,"pl-ml"],[28,29,"pl-s"],[29,43,"pl-c1"],[43,44,"pl-s"],[45,46,"pl-ml"],[47,48,"pl-s"],[48,53,"pl-c1"],[53,54,"pl-s"],[55,56,"pl-ml"],[79,80,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,26,"pl-c1"],[26,27,"pl-s"],[28,29,"pl-ml"],[30,31,"pl-s"],[31,47,"pl-c1"],[47,48,"pl-s"],[49,50,"pl-ml"],[51,52,"pl-s"],[59,60,"pl-s"],[61,62,"pl-ml"],[134,135,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,29,"pl-c1"],[29,30,"pl-s"],[31,32,"pl-ml"],[33,34,"pl-s"],[34,53,"pl-c1"],[53,54,"pl-s"],[55,56,"pl-ml"],[57,58,"pl-s"],[65,66,"pl-s"],[67,68,"pl-ml"],[118,119,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,34,"pl-c1"],[34,35,"pl-s"],[36,37,"pl-ml"],[38,39,"pl-s"],[39,63,"pl-c1"],[63,64,"pl-s"],[65,66,"pl-ml"],[67,68,"pl-s"],[75,76,"pl-s"],[77,78,"pl-ml"],[154,155,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,22,"pl-c1"],[22,23,"pl-s"],[24,25,"pl-ml"],[26,27,"pl-s"],[27,39,"pl-c1"],[39,40,"pl-s"],[41,42,"pl-ml"],[43,44,"pl-s"],[44,46,"pl-c1"],[46,47,"pl-s"],[48,49,"pl-ml"],[102,103,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,23,"pl-c1"],[23,24,"pl-s"],[25,26,"pl-ml"],[27,28,"pl-s"],[28,41,"pl-c1"],[41,42,"pl-s"],[43,44,"pl-ml"],[45,46,"pl-s"],[46,48,"pl-c1"],[48,49,"pl-s"],[50,51,"pl-ml"],[87,88,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,28,"pl-c1"],[28,29,"pl-s"],[30,31,"pl-ml"],[32,33,"pl-s"],[33,51,"pl-c1"],[51,52,"pl-s"],[53,54,"pl-ml"],[55,56,"pl-s"],[56,58,"pl-c1"],[58,59,"pl-s"],[60,61,"pl-ml"],[91,92,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,41,"pl-c1"],[41,42,"pl-s"],[43,44,"pl-ml"],[45,46,"pl-s"],[46,77,"pl-c1"],[77,78,"pl-s"],[79,80,"pl-ml"],[81,82,"pl-s"],[82,84,"pl-c1"],[84,85,"pl-s"],[86,87,"pl-ml"],[137,138,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,29,"pl-c1"],[29,30,"pl-s"],[31,32,"pl-ml"],[33,34,"pl-s"],[34,53,"pl-c1"],[53,54,"pl-s"],[55,56,"pl-ml"],[57,58,"pl-s"],[58,60,"pl-c1"],[60,61,"pl-s"],[62,63,"pl-ml"],[114,115,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,30,"pl-c1"],[30,31,"pl-s"],[32,33,"pl-ml"],[34,35,"pl-s"],[35,55,"pl-c1"],[55,56,"pl-s"],[57,58,"pl-ml"],[59,60,"pl-s"],[60,61,"pl-c1"],[61,62,"pl-s"],[63,64,"pl-ml"],[116,117,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,36,"pl-c1"],[36,37,"pl-s"],[38,39,"pl-ml"],[40,41,"pl-s"],[41,67,"pl-c1"],[67,68,"pl-s"],[69,70,"pl-ml"],[71,72,"pl-s"],[72,74,"pl-c1"],[74,75,"pl-s"],[76,77,"pl-ml"],[111,112,"pl-s"],[112,123,"pl-c1"],[123,124,"pl-s"],[126,127,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,43,"pl-c1"],[43,44,"pl-s"],[45,46,"pl-ml"],[47,48,"pl-s"],[48,81,"pl-c1"],[81,82,"pl-s"],[83,84,"pl-ml"],[85,86,"pl-s"],[86,88,"pl-c1"],[88,89,"pl-s"],[90,91,"pl-ml"],[122,123,"pl-s"],[123,134,"pl-c1"],[134,135,"pl-s"],[137,138,"pl-ml"]],[],[[0,34,"pl-mh"],[4,34,"pl-en"]],[],[[0,1,"pl-ml"],[11,12,"pl-ml"],[24,25,"pl-ml"],[34,35,"pl-ml"],[44,45,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,31,"pl-c1"],[31,32,"pl-s"],[33,34,"pl-ml"],[35,36,"pl-s"],[36,57,"pl-c1"],[57,58,"pl-s"],[59,60,"pl-ml"],[61,62,"pl-s"],[62,70,"pl-c1"],[70,71,"pl-s"],[72,73,"pl-ml"],[94,95,"pl-s"],[95,103,"pl-c1"],[103,104,"pl-s"],[114,115,"pl-s"],[115,121,"pl-c1"],[121,122,"pl-s"],[131,132,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,28,"pl-c1"],[28,29,"pl-s"],[30,31,"pl-ml"],[32,33,"pl-s"],[33,51,"pl-c1"],[51,52,"pl-s"],[53,54,"pl-ml"],[55,56,"pl-s"],[63,64,"pl-s"],[65,66,"pl-ml"],[106,107,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,38,"pl-c1"],[38,39,"pl-s"],[40,41,"pl-ml"],[42,43,"pl-s"],[43,71,"pl-c1"],[71,72,"pl-s"],[73,74,"pl-ml"],[75,76,"pl-s"],[83,84,"pl-s"],[85,86,"pl-ml"],[154,155,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,34,"pl-c1"],[34,35,"pl-s"],[36,37,"pl-ml"],[38,39,"pl-s"],[39,63,"pl-c1"],[63,64,"pl-s"],[65,66,"pl-ml"],[67,68,"pl-s"],[68,70,"pl-c1"],[70,71,"pl-s"],[72,73,"pl-ml"],[100,101,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,35,"pl-c1"],[35,36,"pl-s"],[37,38,"pl-ml"],[39,40,"pl-s"],[40,65,"pl-c1"],[65,66,"pl-s"],[67,68,"pl-ml"],[69,70,"pl-s"],[70,74,"pl-c1"],[74,75,"pl-s"],[76,77,"pl-ml"],[115,116,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,32,"pl-c1"],[32,33,"pl-s"],[34,35,"pl-ml"],[36,37,"pl-s"],[37,59,"pl-c1"],[59,60,"pl-s"],[61,62,"pl-ml"],[63,64,"pl-s"],[64,68,"pl-c1"],[68,69,"pl-s"],[70,71,"pl-ml"],[106,107,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,48,"pl-c1"],[48,49,"pl-s"],[50,51,"pl-ml"],[52,53,"pl-s"],[53,91,"pl-c1"],[91,92,"pl-s"],[93,94,"pl-ml"],[95,96,"pl-s"],[96,98,"pl-c1"],[98,99,"pl-s"],[100,101,"pl-ml"],[156,157,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,38,"pl-c1"],[38,39,"pl-s"],[40,41,"pl-ml"],[42,43,"pl-s"],[43,71,"pl-c1"],[71,72,"pl-s"],[73,74,"pl-ml"],[75,76,"pl-s"],[76,81,"pl-c1"],[81,82,"pl-s"],[111,112,"pl-ml"],[332,333,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,31,"pl-c1"],[31,32,"pl-s"],[33,34,"pl-ml"],[35,36,"pl-s"],[61,62,"pl-s"],[63,64,"pl-ml"],[65,66,"pl-s"],[66,70,"pl-c1"],[70,71,"pl-s"],[83,84,"pl-ml"],[146,147,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,32,"pl-c1"],[32,33,"pl-s"],[34,35,"pl-ml"],[36,37,"pl-s"],[54,55,"pl-s"],[56,57,"pl-ml"],[58,59,"pl-s"],[59,64,"pl-c1"],[64,65,"pl-s"],[94,95,"pl-ml"],[235,236,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,30,"pl-c1"],[30,31,"pl-s"],[32,33,"pl-ml"],[34,35,"pl-s"],[52,53,"pl-s"],[54,55,"pl-ml"],[56,57,"pl-s"],[57,98,"pl-c1"],[98,99,"pl-s"],[100,101,"pl-ml"],[155,156,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,29,"pl-c1"],[29,30,"pl-s"],[31,32,"pl-ml"],[33,34,"pl-s"],[47,48,"pl-s"],[49,50,"pl-ml"],[51,52,"pl-s"],[52,57,"pl-c1"],[57,58,"pl-s"],[59,60,"pl-ml"],[160,161,"pl-ml"]],[],[[0,30,"pl-mh"],[4,30,"pl-en"]],[],[[0,1,"pl-ml"],[11,12,"pl-ml"],[24,25,"pl-ml"],[34,35,"pl-ml"],[44,45,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,22,"pl-c1"],[22,23,"pl-s"],[24,25,"pl-ml"],[26,27,"pl-s"],[27,39,"pl-c1"],[39,40,"pl-s"],[41,42,"pl-ml"],[43,44,"pl-s"],[44,48,"pl-c1"],[48,49,"pl-s"],[50,51,"pl-ml"],[60,61,"pl-s"],[61,67,"pl-c1"],[67,68,"pl-s"],[73,74,"pl-s"],[74,78,"pl-c1"],[78,79,"pl-s"],[81,82,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,19,"pl-c1"],[19,20,"pl-s"],[21,22,"pl-ml"],[23,24,"pl-s"],[24,33,"pl-c1"],[33,34,"pl-s"],[35,36,"pl-ml"],[37,38,"pl-s"],[38,47,"pl-c1"],[47,48,"pl-s"],[49,50,"pl-ml"],[69,70,"pl-s"],[70,77,"pl-c1"],[77,78,"pl-s"],[96,97,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,19,"pl-c1"],[19,20,"pl-s"],[21,22,"pl-ml"],[23,24,"pl-s"],[24,33,"pl-c1"],[33,34,"pl-s"],[35,36,"pl-ml"],[37,38,"pl-s"],[38,42,"pl-c1"],[42,43,"pl-s"],[44,45,"pl-ml"],[59,60,"pl-s"],[60,71,"pl-c1"],[71,72,"pl-s"],[103,104,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,20,"pl-c1"],[20,21,"pl-s"],[22,23,"pl-ml"],[24,25,"pl-s"],[25,35,"pl-c1"],[35,36,"pl-s"],[37,38,"pl-ml"],[39,40,"pl-s"],[40,42,"pl-c1"],[42,43,"pl-s"],[44,45,"pl-ml"],[142,143,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,30,"pl-c1"],[30,31,"pl-s"],[32,33,"pl-ml"],[34,35,"pl-s"],[35,55,"pl-c1"],[55,56,"pl-s"],[57,58,"pl-ml"],[59,60,"pl-s"],[60,62,"pl-c1"],[62,63,"pl-s"],[64,65,"pl-ml"],[96,97,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,23,"pl-c1"],[23,24,"pl-s"],[25,26,"pl-ml"],[27,28,"pl-s"],[28,41,"pl-c1"],[41,42,"pl-s"],[43,44,"pl-ml"],[45,46,"pl-s"],[46,50,"pl-c1"],[50,51,"pl-s"],[52,53,"pl-ml"],[54,55,"pl-s"],[55,60,"pl-c1"],[60,61,"pl-s"],[63,64,"pl-s"],[64,68,"pl-c1"],[68,69,"pl-s"],[71,72,"pl-s"],[72,76,"pl-c1"],[76,77,"pl-s"],[79,80,"pl-s"],[80,85,"pl-c1"],[85,86,"pl-s"],[88,89,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,24,"pl-c1"],[24,25,"pl-s"],[26,27,"pl-ml"],[28,29,"pl-s"],[29,43,"pl-c1"],[43,44,"pl-s"],[45,46,"pl-ml"],[47,48,"pl-s"],[48,52,"pl-c1"],[52,53,"pl-s"],[54,55,"pl-ml"],[56,57,"pl-s"],[57,61,"pl-c1"],[61,62,"pl-s"],[64,65,"pl-s"],[65,69,"pl-c1"],[69,70,"pl-s"],[72,73,"pl-s"],[73,78,"pl-c1"],[78,79,"pl-s"],[81,82,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,21,"pl-c1"],[21,22,"pl-s"],[23,24,"pl-ml"],[25,26,"pl-s"],[26,37,"pl-c1"],[37,38,"pl-s"],[39,40,"pl-ml"],[41,42,"pl-s"],[42,46,"pl-c1"],[46,47,"pl-s"],[48,49,"pl-ml"],[69,70,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,21,"pl-c1"],[21,22,"pl-s"],[23,24,"pl-ml"],[25,26,"pl-s"],[26,37,"pl-c1"],[37,38,"pl-s"],[39,40,"pl-ml"],[41,42,"pl-s"],[42,47,"pl-c1"],[47,48,"pl-s"],[49,50,"pl-ml"],[51,52,"pl-s"],[52,57,"pl-c1"],[57,58,"pl-s"],[60,61,"pl-s"],[61,64,"pl-c1"],[64,65,"pl-s"],[67,68,"pl-s"],[68,75,"pl-c1"],[75,76,"pl-s"],[78,79,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,28,"pl-c1"],[28,29,"pl-s"],[30,31,"pl-ml"],[32,33,"pl-s"],[33,51,"pl-c1"],[51,52,"pl-s"],[53,54,"pl-ml"],[55,56,"pl-s"],[56,61,"pl-c1"],[61,62,"pl-s"],[63,64,"pl-ml"],[92,93,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,24,"pl-c1"],[24,25,"pl-s"],[26,27,"pl-ml"],[28,29,"pl-s"],[29,43,"pl-c1"],[43,44,"pl-s"],[45,46,"pl-ml"],[47,48,"pl-s"],[48,50,"pl-c1"],[50,51,"pl-s"],[52,53,"pl-ml"],[78,79,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,30,"pl-c1"],[30,31,"pl-s"],[32,33,"pl-ml"],[34,35,"pl-s"],[35,55,"pl-c1"],[55,56,"pl-s"],[57,58,"pl-ml"],[59,60,"pl-s"],[60,79,"pl-c1"],[79,80,"pl-s"],[81,82,"pl-ml"],[131,132,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,28,"pl-c1"],[28,29,"pl-s"],[30,31,"pl-ml"],[32,33,"pl-s"],[33,51,"pl-c1"],[51,52,"pl-s"],[53,54,"pl-ml"],[55,56,"pl-s"],[56,59,"pl-c1"],[59,60,"pl-s"],[61,62,"pl-ml"],[83,84,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,22,"pl-c1"],[22,23,"pl-s"],[24,25,"pl-ml"],[26,27,"pl-s"],[45,46,"pl-s"],[47,48,"pl-ml"],[49,50,"pl-s"],[57,58,"pl-s"],[59,60,"pl-ml"],[111,112,"pl-ml"]],[],[[0,28,"pl-mh"],[4,28,"pl-en"]],[],[[0,1,"pl-ml"],[11,12,"pl-ml"],[24,25,"pl-ml"],[34,35,"pl-ml"],[44,45,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,23,"pl-c1"],[23,24,"pl-s"],[25,26,"pl-ml"],[27,28,"pl-s"],[28,41,"pl-c1"],[41,42,"pl-s"],[43,44,"pl-ml"],[45,46,"pl-s"],[46,65,"pl-c1"],[65,66,"pl-s"],[67,68,"pl-ml"],[91,92,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,28,"pl-c1"],[28,29,"pl-s"],[30,31,"pl-ml"],[32,33,"pl-s"],[33,51,"pl-c1"],[51,52,"pl-s"],[53,54,"pl-ml"],[55,56,"pl-s"],[56,61,"pl-c1"],[61,62,"pl-s"],[63,64,"pl-ml"],[92,93,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,38,"pl-c1"],[38,39,"pl-s"],[40,41,"pl-ml"],[42,43,"pl-s"],[43,71,"pl-c1"],[71,72,"pl-s"],[73,74,"pl-ml"],[75,76,"pl-s"],[76,79,"pl-c1"],[79,80,"pl-s"],[81,82,"pl-ml"],[104,105,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,37,"pl-c1"],[37,38,"pl-s"],[39,40,"pl-ml"],[41,42,"pl-s"],[42,69,"pl-c1"],[69,70,"pl-s"],[71,72,"pl-ml"],[73,74,"pl-s"],[74,80,"pl-c1"],[80,81,"pl-s"],[82,83,"pl-ml"],[109,110,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,36,"pl-c1"],[36,37,"pl-s"],[38,39,"pl-ml"],[40,41,"pl-s"],[41,67,"pl-c1"],[67,68,"pl-s"],[69,70,"pl-ml"],[71,72,"pl-s"],[72,78,"pl-c1"],[78,79,"pl-s"],[80,81,"pl-ml"],[107,108,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,38,"pl-c1"],[38,39,"pl-s"],[40,41,"pl-ml"],[42,43,"pl-s"],[43,71,"pl-c1"],[71,72,"pl-s"],[73,74,"pl-ml"],[75,76,"pl-s"],[76,80,"pl-c1"],[80,81,"pl-s"],[82,83,"pl-ml"],[106,107,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,36,"pl-c1"],[36,37,"pl-s"],[38,39,"pl-ml"],[40,41,"pl-s"],[41,67,"pl-c1"],[67,68,"pl-s"],[69,70,"pl-ml"],[71,72,"pl-s"],[72,78,"pl-c1"],[78,79,"pl-s"],[80,81,"pl-ml"],[103,104,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,35,"pl-c1"],[35,36,"pl-s"],[37,38,"pl-ml"],[39,40,"pl-s"],[40,65,"pl-c1"],[65,66,"pl-s"],[67,68,"pl-ml"],[69,70,"pl-s"],[70,79,"pl-c1"],[79,80,"pl-s"],[81,82,"pl-ml"],[94,95,"pl-ml"]],[],[[0,35,"pl-mh"],[4,35,"pl-en"]],[],[[0,1,"pl-ml"],[11,12,"pl-ml"],[24,25,"pl-ml"],[34,35,"pl-ml"],[44,45,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,30,"pl-c1"],[30,31,"pl-s"],[32,33,"pl-ml"],[34,35,"pl-s"],[35,55,"pl-c1"],[55,56,"pl-s"],[57,58,"pl-ml"],[59,60,"pl-s"],[60,62,"pl-c1"],[62,63,"pl-s"],[64,65,"pl-ml"],[106,107,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,26,"pl-c1"],[26,27,"pl-s"],[28,29,"pl-ml"],[30,31,"pl-s"],[31,47,"pl-c1"],[47,48,"pl-s"],[49,50,"pl-ml"],[51,52,"pl-s"],[52,55,"pl-c1"],[55,56,"pl-s"],[57,58,"pl-ml"],[81,82,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,21,"pl-c1"],[21,22,"pl-s"],[23,24,"pl-ml"],[25,26,"pl-s"],[26,37,"pl-c1"],[37,38,"pl-s"],[39,40,"pl-ml"],[41,42,"pl-s"],[42,46,"pl-c1"],[46,47,"pl-s"],[48,49,"pl-ml"],[63,64,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,23,"pl-c1"],[23,24,"pl-s"],[25,26,"pl-ml"],[27,28,"pl-s"],[28,41,"pl-c1"],[41,42,"pl-s"],[43,44,"pl-ml"],[45,46,"pl-s"],[46,51,"pl-c1"],[51,52,"pl-s"],[53,54,"pl-ml"],[86,87,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,25,"pl-c1"],[25,26,"pl-s"],[27,28,"pl-ml"],[29,30,"pl-s"],[30,45,"pl-c1"],[45,46,"pl-s"],[47,48,"pl-ml"],[49,50,"pl-s"],[50,52,"pl-c1"],[52,53,"pl-s"],[54,55,"pl-ml"],[77,78,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,34,"pl-c1"],[34,35,"pl-s"],[36,37,"pl-ml"],[38,39,"pl-s"],[39,63,"pl-c1"],[63,64,"pl-s"],[65,66,"pl-ml"],[67,68,"pl-s"],[68,73,"pl-c1"],[73,74,"pl-s"],[75,76,"pl-ml"],[130,131,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,35,"pl-c1"],[35,36,"pl-s"],[37,38,"pl-ml"],[39,40,"pl-s"],[40,65,"pl-c1"],[65,66,"pl-s"],[67,68,"pl-ml"],[69,70,"pl-s"],[77,78,"pl-s"],[79,80,"pl-ml"],[121,122,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,32,"pl-c1"],[32,33,"pl-s"],[34,35,"pl-ml"],[36,37,"pl-s"],[37,59,"pl-c1"],[59,60,"pl-s"],[61,62,"pl-ml"],[63,64,"pl-s"],[71,72,"pl-s"],[73,74,"pl-ml"],[112,113,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,35,"pl-c1"],[35,36,"pl-s"],[37,38,"pl-ml"],[39,40,"pl-s"],[40,65,"pl-c1"],[65,66,"pl-s"],[67,68,"pl-ml"],[69,70,"pl-s"],[77,78,"pl-s"],[79,80,"pl-ml"],[121,122,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,28,"pl-c1"],[28,29,"pl-s"],[30,31,"pl-ml"],[32,33,"pl-s"],[33,58,"pl-c1"],[58,59,"pl-s"],[60,61,"pl-ml"],[62,63,"pl-s"],[63,67,"pl-c1"],[67,68,"pl-s"],[69,70,"pl-ml"],[91,92,"pl-s"],[92,96,"pl-c1"],[96,97,"pl-s"],[99,100,"pl-s"],[100,106,"pl-c1"],[106,107,"pl-s"],[109,110,"pl-s"],[110,116,"pl-c1"],[116,117,"pl-s"],[119,120,"pl-s"],[120,137,"pl-c1"],[137,138,"pl-s"],[181,182,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,25,"pl-c1"],[25,26,"pl-s"],[27,28,"pl-ml"],[29,30,"pl-s"],[30,52,"pl-c1"],[52,53,"pl-s"],[54,55,"pl-ml"],[56,57,"pl-s"],[57,79,"pl-c1"],[79,80,"pl-s"],[81,82,"pl-ml"],[111,112,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,28,"pl-c1"],[28,29,"pl-s"],[30,31,"pl-ml"],[32,33,"pl-s"],[33,58,"pl-c1"],[58,59,"pl-s"],[60,61,"pl-ml"],[62,63,"pl-s"],[63,85,"pl-c1"],[85,86,"pl-s"],[96,97,"pl-ml"],[118,119,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,27,"pl-c1"],[27,28,"pl-s"],[29,30,"pl-ml"],[31,32,"pl-s"],[44,45,"pl-s"],[46,47,"pl-ml"],[48,49,"pl-s"],[56,57,"pl-s"],[58,59,"pl-ml"],[123,124,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,22,"pl-c1"],[22,23,"pl-s"],[24,25,"pl-ml"],[26,27,"pl-s"],[27,38,"pl-c1"],[38,39,"pl-s"],[40,41,"pl-ml"],[42,43,"pl-s"],[50,51,"pl-s"],[52,53,"pl-ml"],[68,69,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,19,"pl-c1"],[19,20,"pl-s"],[21,22,"pl-ml"],[23,24,"pl-s"],[24,32,"pl-c1"],[32,33,"pl-s"],[34,35,"pl-ml"],[36,37,"pl-s"],[44,45,"pl-s"],[46,47,"pl-ml"],[59,60,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,22,"pl-c1"],[22,23,"pl-s"],[24,25,"pl-ml"],[26,27,"pl-s"],[27,38,"pl-c1"],[38,39,"pl-s"],[40,41,"pl-ml"],[42,43,"pl-s"],[50,51,"pl-s"],[52,53,"pl-ml"],[68,69,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,21,"pl-c1"],[21,22,"pl-s"],[23,24,"pl-ml"],[25,26,"pl-s"],[38,39,"pl-s"],[40,41,"pl-ml"],[42,43,"pl-s"],[50,51,"pl-s"],[52,53,"pl-ml"],[95,96,"pl-s"],[96,110,"pl-c1"],[110,111,"pl-s"],[112,113,"pl-s"],[113,130,"pl-c1"],[130,131,"pl-s"],[158,159,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,27,"pl-c1"],[27,28,"pl-s"],[29,30,"pl-ml"],[31,32,"pl-s"],[44,45,"pl-s"],[46,47,"pl-ml"],[48,49,"pl-s"],[56,57,"pl-s"],[58,59,"pl-ml"],[95,96,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,27,"pl-c1"],[27,28,"pl-s"],[29,30,"pl-ml"],[31,32,"pl-s"],[44,45,"pl-s"],[46,47,"pl-ml"],[48,49,"pl-s"],[56,57,"pl-s"],[58,59,"pl-ml"],[95,96,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,28,"pl-c1"],[28,29,"pl-s"],[30,31,"pl-ml"],[32,33,"pl-s"],[45,46,"pl-s"],[47,48,"pl-ml"],[49,50,"pl-s"],[50,55,"pl-c1"],[55,56,"pl-s"],[57,58,"pl-ml"],[92,93,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,33,"pl-c1"],[33,34,"pl-s"],[35,36,"pl-ml"],[37,38,"pl-s"],[50,51,"pl-s"],[52,53,"pl-ml"],[54,55,"pl-s"],[55,60,"pl-c1"],[60,61,"pl-s"],[62,63,"pl-ml"],[104,105,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,28,"pl-c1"],[28,29,"pl-s"],[30,31,"pl-ml"],[32,33,"pl-s"],[45,46,"pl-s"],[47,48,"pl-ml"],[49,50,"pl-s"],[68,69,"pl-s"],[70,71,"pl-ml"],[105,106,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,27,"pl-c1"],[27,28,"pl-s"],[29,30,"pl-ml"],[31,32,"pl-s"],[44,45,"pl-s"],[46,47,"pl-ml"],[48,49,"pl-s"],[67,68,"pl-s"],[69,70,"pl-ml"],[90,91,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,37,"pl-c1"],[37,38,"pl-s"],[39,40,"pl-ml"],[41,42,"pl-s"],[54,55,"pl-s"],[56,57,"pl-ml"],[58,59,"pl-s"],[77,78,"pl-s"],[79,80,"pl-ml"],[109,110,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,34,"pl-c1"],[34,35,"pl-s"],[36,37,"pl-ml"],[38,39,"pl-s"],[51,52,"pl-s"],[53,54,"pl-ml"],[55,56,"pl-s"],[74,75,"pl-s"],[76,77,"pl-ml"],[103,104,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,21,"pl-c1"],[21,22,"pl-s"],[23,24,"pl-ml"],[25,26,"pl-s"],[38,39,"pl-s"],[40,41,"pl-ml"],[42,43,"pl-s"],[61,62,"pl-s"],[63,64,"pl-ml"],[97,98,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,21,"pl-c1"],[21,22,"pl-s"],[23,24,"pl-ml"],[25,26,"pl-s"],[38,39,"pl-s"],[40,41,"pl-ml"],[42,43,"pl-s"],[50,51,"pl-s"],[52,53,"pl-ml"],[95,96,"pl-ml"]],[],[[0,38,"pl-mh"],[4,38,"pl-en"]],[],[[0,1,"pl-ml"],[11,12,"pl-ml"],[24,25,"pl-ml"],[34,35,"pl-ml"],[44,45,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,39,"pl-c1"],[39,40,"pl-s"],[41,42,"pl-ml"],[43,44,"pl-s"],[44,73,"pl-c1"],[73,74,"pl-s"],[75,76,"pl-ml"],[77,78,"pl-s"],[78,83,"pl-c1"],[83,84,"pl-s"],[85,86,"pl-ml"],[115,116,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,30,"pl-c1"],[30,31,"pl-s"],[32,33,"pl-ml"],[34,35,"pl-s"],[35,55,"pl-c1"],[55,56,"pl-s"],[57,58,"pl-ml"],[59,60,"pl-s"],[60,63,"pl-c1"],[63,64,"pl-s"],[65,66,"pl-ml"],[82,83,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,34,"pl-c1"],[34,35,"pl-s"],[36,37,"pl-ml"],[38,39,"pl-s"],[39,63,"pl-c1"],[63,64,"pl-s"],[65,66,"pl-ml"],[67,68,"pl-s"],[68,70,"pl-c1"],[70,71,"pl-s"],[72,73,"pl-ml"],[92,93,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,43,"pl-c1"],[43,44,"pl-s"],[45,46,"pl-ml"],[47,48,"pl-s"],[48,81,"pl-c1"],[81,82,"pl-s"],[83,84,"pl-ml"],[85,86,"pl-s"],[86,88,"pl-c1"],[88,89,"pl-s"],[90,91,"pl-ml"],[127,128,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,34,"pl-c1"],[34,35,"pl-s"],[36,37,"pl-ml"],[38,39,"pl-s"],[39,63,"pl-c1"],[63,64,"pl-s"],[65,66,"pl-ml"],[67,68,"pl-s"],[68,71,"pl-c1"],[71,72,"pl-s"],[73,74,"pl-ml"],[100,101,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,39,"pl-c1"],[39,40,"pl-s"],[41,42,"pl-ml"],[43,44,"pl-s"],[44,73,"pl-c1"],[73,74,"pl-s"],[75,76,"pl-ml"],[77,78,"pl-s"],[78,82,"pl-c1"],[82,83,"pl-s"],[84,85,"pl-ml"],[116,117,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,42,"pl-c1"],[42,43,"pl-s"],[44,45,"pl-ml"],[46,47,"pl-s"],[47,79,"pl-c1"],[79,80,"pl-s"],[81,82,"pl-ml"],[83,84,"pl-s"],[84,86,"pl-c1"],[86,87,"pl-s"],[88,89,"pl-ml"],[114,115,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,25,"pl-c1"],[25,26,"pl-s"],[27,28,"pl-ml"],[29,30,"pl-s"],[30,45,"pl-c1"],[45,46,"pl-s"],[47,48,"pl-ml"],[49,50,"pl-s"],[59,60,"pl-s"],[60,71,"pl-c1"],[71,72,"pl-s"],[73,74,"pl-s"],[75,76,"pl-ml"],[111,112,"pl-s"],[112,118,"pl-c1"],[118,119,"pl-s"],[124,125,"pl-s"],[125,133,"pl-c1"],[133,134,"pl-s"],[136,137,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,35,"pl-c1"],[35,36,"pl-s"],[37,38,"pl-ml"],[39,40,"pl-s"],[57,58,"pl-s"],[59,60,"pl-ml"],[81,82,"pl-ml"],[112,113,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,28,"pl-c1"],[28,29,"pl-s"],[30,31,"pl-ml"],[32,33,"pl-s"],[33,51,"pl-c1"],[51,52,"pl-s"],[53,54,"pl-ml"],[55,56,"pl-s"],[56,65,"pl-c1"],[65,66,"pl-s"],[67,68,"pl-ml"],[120,121,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,28,"pl-c1"],[28,29,"pl-s"],[30,31,"pl-ml"],[32,33,"pl-s"],[33,51,"pl-c1"],[51,52,"pl-s"],[53,54,"pl-ml"],[55,56,"pl-s"],[56,60,"pl-c1"],[60,61,"pl-s"],[62,63,"pl-ml"],[91,92,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,34,"pl-c1"],[34,35,"pl-s"],[36,37,"pl-ml"],[38,39,"pl-s"],[39,63,"pl-c1"],[63,64,"pl-s"],[65,66,"pl-ml"],[67,68,"pl-s"],[68,74,"pl-c1"],[74,75,"pl-s"],[76,77,"pl-ml"],[111,112,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,31,"pl-c1"],[31,32,"pl-s"],[33,34,"pl-ml"],[35,36,"pl-s"],[36,57,"pl-c1"],[57,58,"pl-s"],[59,60,"pl-ml"],[61,62,"pl-s"],[62,64,"pl-c1"],[64,65,"pl-s"],[66,67,"pl-ml"],[94,95,"pl-s"],[95,106,"pl-c1"],[106,107,"pl-s"],[110,111,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,32,"pl-c1"],[32,33,"pl-s"],[34,35,"pl-ml"],[36,37,"pl-s"],[37,59,"pl-c1"],[59,60,"pl-s"],[61,62,"pl-ml"],[63,64,"pl-s"],[64,77,"pl-c1"],[77,78,"pl-s"],[79,80,"pl-ml"],[98,99,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,31,"pl-c1"],[31,32,"pl-s"],[33,34,"pl-ml"],[35,36,"pl-s"],[36,57,"pl-c1"],[57,58,"pl-s"],[59,60,"pl-ml"],[61,62,"pl-s"],[62,72,"pl-c1"],[72,73,"pl-s"],[74,75,"pl-ml"],[92,93,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,29,"pl-c1"],[29,30,"pl-s"],[31,32,"pl-ml"],[33,34,"pl-s"],[34,53,"pl-c1"],[53,54,"pl-s"],[55,56,"pl-ml"],[57,58,"pl-s"],[65,66,"pl-s"],[67,68,"pl-ml"],[97,98,"pl-ml"]],[],[[0,12,"pl-mh"],[4,12,"pl-en"]],[],[[0,1,"pl-ml"],[11,12,"pl-ml"],[24,25,"pl-ml"],[34,35,"pl-ml"],[44,45,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,22,"pl-c1"],[22,23,"pl-s"],[24,25,"pl-ml"],[26,27,"pl-s"],[27,39,"pl-c1"],[39,40,"pl-s"],[41,42,"pl-ml"],[43,44,"pl-s"],[44,49,"pl-c1"],[49,50,"pl-s"],[51,52,"pl-ml"],[77,78,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,18,"pl-c1"],[18,19,"pl-s"],[20,21,"pl-ml"],[22,23,"pl-s"],[23,31,"pl-c1"],[31,32,"pl-s"],[33,34,"pl-ml"],[35,36,"pl-s"],[36,38,"pl-c1"],[38,39,"pl-s"],[40,41,"pl-ml"],[64,65,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,24,"pl-c1"],[24,25,"pl-s"],[26,27,"pl-ml"],[28,29,"pl-s"],[29,43,"pl-c1"],[43,44,"pl-s"],[45,46,"pl-ml"],[47,48,"pl-s"],[48,67,"pl-c1"],[67,68,"pl-s"],[69,70,"pl-ml"],[117,118,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,23,"pl-c1"],[23,24,"pl-s"],[25,26,"pl-ml"],[27,28,"pl-s"],[28,41,"pl-c1"],[41,42,"pl-s"],[43,44,"pl-ml"],[45,46,"pl-s"],[46,49,"pl-c1"],[49,50,"pl-s"],[51,52,"pl-ml"],[68,69,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,22,"pl-c1"],[22,23,"pl-s"],[24,25,"pl-ml"],[26,27,"pl-s"],[27,39,"pl-c1"],[39,40,"pl-s"],[41,42,"pl-ml"],[43,44,"pl-s"],[44,47,"pl-c1"],[47,48,"pl-s"],[49,50,"pl-ml"],[65,66,"pl-ml"]],[],[[0,48,"pl-mh"],[4,48,"pl-en"]],[],[[0,1,"pl-ml"],[11,12,"pl-ml"],[20,21,"pl-ml"],[30,31,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,20,"pl-c1"],[20,21,"pl-s"],[22,23,"pl-ml"],[24,26,"pl-s"],[33,35,"pl-s"],[36,37,"pl-ml"],[56,57,"pl-s"],[57,75,"pl-c1"],[75,76,"pl-s"],[80,81,"pl-s"],[81,105,"pl-c1"],[105,106,"pl-s"],[108,109,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,34,"pl-c1"],[34,35,"pl-s"],[36,37,"pl-ml"],[38,40,"pl-s"],[56,58,"pl-s"],[59,60,"pl-ml"],[79,80,"pl-s"],[80,104,"pl-c1"],[104,105,"pl-s"],[107,108,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,27,"pl-c1"],[27,28,"pl-s"],[29,30,"pl-ml"],[41,42,"pl-ml"],[107,108,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,37,"pl-c1"],[37,38,"pl-s"],[39,40,"pl-ml"],[51,52,"pl-ml"],[85,86,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,39,"pl-c1"],[39,40,"pl-s"],[41,42,"pl-ml"],[53,54,"pl-ml"],[89,90,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,21,"pl-c1"],[21,22,"pl-s"],[25,26,"pl-s"],[26,44,"pl-c1"],[44,45,"pl-s"],[46,47,"pl-ml"],[58,59,"pl-ml"],[100,101,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,22,"pl-c1"],[22,23,"pl-s"],[24,25,"pl-ml"],[36,37,"pl-ml"],[80,81,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,28,"pl-c1"],[28,29,"pl-s"],[32,33,"pl-s"],[33,59,"pl-c1"],[59,60,"pl-s"],[61,62,"pl-ml"],[73,74,"pl-ml"],[98,99,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,32,"pl-c1"],[32,33,"pl-s"],[34,35,"pl-ml"],[46,47,"pl-ml"],[82,83,"pl-ml"]],[],[[0,3,"pl-ms"]],[],[[0,27,"pl-mh"],[3,27,"pl-en"]],[],[],[],[],[[0,1,"pl-ml"],[22,23,"pl-ml"],[37,38,"pl-ml"],[51,52,"pl-s"],[52,57,"pl-c1"],[57,58,"pl-s"],[60,61,"pl-ml"],[70,71,"pl-s"],[71,84,"pl-c1"],[84,85,"pl-s"],[87,88,"pl-ml"],[93,94,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"],[16,17,"pl-ml"],[20,21,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,9,"pl-c1"],[9,10,"pl-s"],[12,13,"pl-s"],[13,17,"pl-c1"],[17,18,"pl-s"],[20,21,"pl-s"],[21,28,"pl-c1"],[28,29,"pl-s"],[31,32,"pl-s"],[32,37,"pl-c1"],[37,38,"pl-s"],[40,41,"pl-s"],[41,49,"pl-c1"],[49,50,"pl-s"],[52,53,"pl-s"],[53,62,"pl-c1"],[62,63,"pl-s"],[65,66,"pl-s"],[66,72,"pl-c1"],[72,73,"pl-s"],[75,76,"pl-s"],[76,82,"pl-c1"],[82,83,"pl-s"],[85,86,"pl-s"],[86,100,"pl-c1"],[100,101,"pl-s"],[103,104,"pl-s"],[104,106,"pl-c1"],[106,107,"pl-s"],[109,110,"pl-s"],[110,116,"pl-c1"],[116,117,"pl-s"],[119,120,"pl-s"],[120,127,"pl-c1"],[127,128,"pl-s"],[130,131,"pl-s"],[131,137,"pl-c1"],[137,138,"pl-s"],[140,141,"pl-s"],[141,145,"pl-c1"],[145,146,"pl-s"],[148,149,"pl-s"],[149,154,"pl-c1"],[154,155,"pl-s"],[157,158,"pl-s"],[158,161,"pl-c1"],[161,162,"pl-s"],[164,165,"pl-s"],[165,171,"pl-c1"],[171,172,"pl-s"],[182,183,"pl-s"],[183,189,"pl-c1"],[189,190,"pl-s"],[192,193,"pl-s"],[193,200,"pl-c1"],[200,201,"pl-s"],[203,204,"pl-s"],[204,210,"pl-c1"],[210,211,"pl-s"],[213,214,"pl-s"],[214,219,"pl-c1"],[219,220,"pl-s"],[221,222,"pl-ml"],[223,225,"pl-s"],[232,234,"pl-s"],[253,254,"pl-ml"],[259,260,"pl-ml"],[265,266,"pl-ml"],[271,272,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,8,"pl-c1"],[8,9,"pl-s"],[10,11,"pl-ml"],[14,15,"pl-ml"],[16,17,"pl-s"],[17,24,"pl-c1"],[24,25,"pl-s"],[43,44,"pl-s"],[44,50,"pl-c1"],[50,51,"pl-s"],[76,77,"pl-s"],[77,111,"pl-c1"],[111,112,"pl-s"],[118,119,"pl-s"],[119,129,"pl-c1"],[129,130,"pl-s"],[189,190,"pl-ml"],[193,194,"pl-ml"],[197,198,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[18,19,"pl-ml"],[22,23,"pl-ml"],[26,27,"pl-ml"],[28,29,"pl-s"],[29,36,"pl-c1"],[36,37,"pl-s"],[61,62,"pl-s"],[62,68,"pl-c1"],[68,69,"pl-s"],[74,75,"pl-s"],[75,79,"pl-c1"],[79,80,"pl-s"],[128,129,"pl-s"],[129,139,"pl-c1"],[139,140,"pl-s"],[143,144,"pl-s"],[144,161,"pl-c1"],[161,162,"pl-s"],[214,215,"pl-ml"],[230,231,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,6,"pl-c1"],[6,7,"pl-s"],[22,23,"pl-ml"],[24,26,"pl-s"],[33,35,"pl-s"],[53,54,"pl-ml"],[57,58,"pl-ml"],[61,62,"pl-ml"],[84,85,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,6,"pl-c1"],[6,7,"pl-s"],[23,24,"pl-s"],[24,42,"pl-c1"],[42,43,"pl-s"],[45,46,"pl-ml"],[49,50,"pl-ml"],[53,54,"pl-ml"],[57,58,"pl-ml"],[76,77,"pl-s"],[77,97,"pl-c1"],[97,98,"pl-s"],[108,109,"pl-s"],[109,128,"pl-c1"],[128,129,"pl-s"],[131,132,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[18,19,"pl-ml"],[22,23,"pl-ml"],[26,27,"pl-ml"],[30,31,"pl-ml"],[44,45,"pl-s"],[45,59,"pl-c1"],[59,60,"pl-s"],[70,71,"pl-s"],[71,90,"pl-c1"],[90,91,"pl-s"],[110,111,"pl-s"],[111,121,"pl-c1"],[121,122,"pl-s"],[123,124,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,10,"pl-c1"],[10,11,"pl-s"],[30,31,"pl-ml"],[50,51,"pl-s"],[51,71,"pl-c1"],[71,72,"pl-s"],[89,90,"pl-s"],[90,100,"pl-c1"],[100,101,"pl-s"],[103,104,"pl-ml"],[110,111,"pl-ml"],[117,118,"pl-ml"],[121,122,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,13,"pl-c1"],[13,14,"pl-s"],[17,18,"pl-s"],[18,24,"pl-c1"],[24,25,"pl-s"],[28,29,"pl-s"],[29,35,"pl-c1"],[35,36,"pl-s"],[37,38,"pl-ml"],[47,48,"pl-s"],[48,58,"pl-c1"],[58,59,"pl-s"],[83,84,"pl-ml"],[87,88,"pl-ml"],[91,92,"pl-ml"],[95,96,"pl-ml"]],[],[],[],[[0,1,"pl-v"],[2,4,"pl-s"],[25,27,"pl-s"]],[],[[0,1,"pl-v"],[2,4,"pl-s"],[10,11,"pl-s"],[11,21,"pl-c1"],[21,22,"pl-s"],[23,25,"pl-s"]],[[17,18,"pl-s"],[18,27,"pl-c1"],[27,28,"pl-s"],[37,38,"pl-s"],[38,48,"pl-c1"],[48,49,"pl-s"],[64,65,"pl-s"],[65,70,"pl-c1"],[70,71,"pl-s"]],[[0,1,"pl-v"],[2,4,"pl-s"],[25,27,"pl-s"]],[],[[0,1,"pl-v"],[2,4,"pl-s"],[17,19,"pl-s"]],[[10,11,"pl-s"],[11,21,"pl-c1"],[21,22,"pl-s"]],[[0,1,"pl-v"],[2,4,"pl-s"],[17,19,"pl-s"],[20,21,"pl-s"],[21,26,"pl-c1"],[26,27,"pl-s"],[29,30,"pl-s"],[30,33,"pl-c1"],[33,34,"pl-s"],[40,41,"pl-s"],[41,48,"pl-c1"],[48,49,"pl-s"]],[],[],[[0,3,"pl-ms"]],[],[[0,36,"pl-mh"],[3,36,"pl-en"]],[],[],[],[],[[0,52,"pl-mh"],[4,52,"pl-en"],[30,31,"pl-s"],[31,36,"pl-c1"],[36,37,"pl-s"],[42,43,"pl-s"],[43,51,"pl-c1"],[51,52,"pl-s"]],[],[[4,5,"pl-s"],[5,10,"pl-c1"],[10,11,"pl-s"],[68,69,"pl-s"],[69,77,"pl-c1"],[77,78,"pl-s"]],[],[],[],[],[[0,1,"pl-v"],[2,4,"pl-s"],[16,18,"pl-s"],[58,59,"pl-s"],[59,68,"pl-c1"],[68,69,"pl-s"]],[[2,3,"pl-s"],[3,24,"pl-c1"],[24,25,"pl-s"],[27,28,"pl-s"],[28,41,"pl-c1"],[41,42,"pl-s"]],[[27,28,"pl-s"],[28,35,"pl-c1"],[35,36,"pl-s"]],[[10,11,"pl-s"],[11,20,"pl-c1"],[20,21,"pl-s"],[34,35,"pl-s"],[35,58,"pl-c1"],[58,59,"pl-s"]],[[0,1,"pl-v"],[11,12,"pl-s"],[12,15,"pl-c1"],[15,16,"pl-s"],[36,37,"pl-s"],[37,42,"pl-c1"],[42,43,"pl-s"],[45,46,"pl-s"],[46,49,"pl-c1"],[49,50,"pl-s"],[56,57,"pl-s"],[57,64,"pl-c1"],[64,65,"pl-s"]],[],[[0,45,"pl-mh"],[4,45,"pl-en"],[33,34,"pl-s"],[34,44,"pl-c1"],[44,45,"pl-s"]],[],[[15,16,"pl-s"],[16,26,"pl-c1"],[26,27,"pl-s"]],[],[[0,1,"pl-v"],[2,4,"pl-s"],[16,18,"pl-s"],[62,63,"pl-s"],[63,75,"pl-c1"],[75,76,"pl-s"]],[[14,15,"pl-s"],[15,35,"pl-c1"],[35,36,"pl-s"]],[[2,3,"pl-s"],[3,4,"pl-s"],[4,18,"pl-c1"],[18,19,"pl-s"],[19,20,"pl-s"],[20,21,"pl-s"],[21,29,"pl-corl"],[29,30,"pl-s"]],[],[[0,62,"pl-mh"],[4,62,"pl-en"],[32,33,"pl-s"],[33,38,"pl-c1"],[38,39,"pl-s"]],[],[[4,5,"pl-s"],[5,10,"pl-c1"],[10,11,"pl-s"]],[],[[0,1,"pl-v"],[2,4,"pl-s"],[16,18,"pl-s"],[46,47,"pl-s"],[47,55,"pl-c1"],[55,56,"pl-s"]],[[54,55,"pl-s"],[61,62,"pl-s"],[62,63,"pl-s"],[63,69,"pl-corl"],[69,70,"pl-s"]],[],[[0,49,"pl-mh"],[4,49,"pl-en"],[35,36,"pl-s"],[36,48,"pl-c1"],[48,49,"pl-s"]],[],[[4,5,"pl-s"],[5,24,"pl-c1"],[24,25,"pl-s"]],[],[],[[0,1,"pl-v"],[2,4,"pl-s"],[16,18,"pl-s"],[19,20,"pl-s"],[20,36,"pl-c1"],[36,37,"pl-s"],[42,43,"pl-s"],[43,62,"pl-c1"],[62,63,"pl-s"]],[[16,17,"pl-s"],[17,29,"pl-c1"],[29,30,"pl-s"]],[],[],[[0,34,"pl-mh"],[4,34,"pl-en"]],[],[[9,10,"pl-s"],[10,28,"pl-c1"],[28,29,"pl-s"]],[],[],[[0,1,"pl-v"],[2,4,"pl-s"],[16,18,"pl-s"],[46,47,"pl-s"],[47,73,"pl-c1"],[73,74,"pl-s"]],[[24,25,"pl-s"],[25,53,"pl-c1"],[53,54,"pl-s"]],[],[[15,16,"pl-s"],[16,17,"pl-s"],[17,30,"pl-c1"],[30,31,"pl-s"],[31,32,"pl-s"],[32,33,"pl-s"],[33,44,"pl-corl"],[44,45,"pl-s"]]],"colorizedLines":null}},"title":"cortex/docs/CLI-REFERENCE.md at v2.4.11 · lleontor705/cortex","appPayload":{},"meta":{"title":"cortex/docs/CLI-REFERENCE.md at v2.4.11 · lleontor705/cortex"}}</script>
  <div data-target="react-app.reactRoot"><meta name="github-code-view-meta-stats" id="github-code-view-meta-stats" data-hydrostats="publish"/> <!-- --> <a hidden="" id="code-view-repo-link" href="/lleontor705/cortex" data-discover="true"></a> <div class="d-none"></div><div><div style="--spacing:var(--spacing-none)" class="prc-PageLayout-PageLayoutRoot--KH-d" data-component="SplitPageLayout" data-has-sidebar="true"><div class="prc-PageLayout-SidebarWrapper-kLG4B CopilotSidePanelSidebar-module__SidePanel__L3O0C CopilotSidePanelSidebar-module__HiddenSidePanel__TBRGn" style="--spacing-column:var(--spacing-none)" data-is-hidden="false" data-position="end" data-sticky="true" data-responsive-variant="fullscreen"><div class="prc-PageLayout-VerticalDivider-9QRmK prc-PageLayout-SidebarVerticalDivider-0Rl0V" data-component="PageLayout.VerticalDivider" data-variant="line" data-position="end" style="--spacing:var(--spacing-none)"><div class="prc-PageLayout-DraggableHandle-9s6B4" data-component="PageLayout.DragHandle" role="slider" aria-label="Draggable pane splitter" aria-valuemin="450" aria-valuemax="768" aria-valuenow="544" aria-valuetext="Pane width 544 pixels" tabindex="0"></div></div><div class="prc-PageLayout-Sidebar-iciWg" data-component="SplitPageLayout.Sidebar" data-resizable="true" style="--spacing:var(--spacing-normal);--pane-min-width:450px;--pane-max-width:768px;--pane-width-custom:544px;--pane-width-size:var(--pane-width-custom);--pane-width:544px"><div class="height-full" data-testid="copilot-code-view-side-panel"><div id="copilot-side-panel-content" class="height-full"></div></div></div></div><div class="prc-PageLayout-PageLayoutWrapper-2BhU2" data-width="full"><div class="prc-PageLayout-PageLayoutContent-BneH9"><div id="repos-file-tree-sidebar" class="CodeViewFileTreeLayout-module__sidebar__n_Aau" tabindex="0"><div class="prc-PageLayout-PaneWrapper-pHPop ReposFileTreePane-module__Pane__rBZpI ReposFileTreePane-module__HideTree__AYZnm ReposFileTreePane-module__HidePane__VHAVt" style="--offset-header:0px;--spacing-row:var(--spacing-none);--spacing-column:var(--spacing-none)" data-is-hidden="false" data-position="start" data-sticky="true"><div class="prc-PageLayout-HorizontalDivider-JLVqp prc-PageLayout-PaneHorizontalDivider-9tbnE" data-component="PageLayout.HorizontalDivider" data-variant-regular="none" data-variant-narrow="none" data-position="start" style="--spacing-divider:var(--spacing-none);--spacing:var(--spacing-none)"></div><div class="prc-PageLayout-Pane-AyzHK" data-component="SplitPageLayout.Pane" data-resizable="true" style="--spacing:var(--spacing-none);--pane-min-width:256px;--pane-max-width:calc(100vw - var(--pane-max-width-diff));--pane-width-size:var(--pane-width-large);--pane-width:320px"></div><div class="prc-PageLayout-VerticalDivider-9QRmK prc-PageLayout-PaneVerticalDivider-le57g" data-component="PageLayout.VerticalDivider" data-variant-narrow="none" data-variant-regular="line" data-variant-wide="line" data-position="start" style="--spacing:var(--spacing-none)"><div class="prc-PageLayout-DraggableHandle-9s6B4" data-component="PageLayout.DragHandle" role="slider" aria-label="Draggable pane splitter" aria-valuemin="256" aria-valuemax="600" aria-valuenow="320" aria-valuetext="Pane width 320 pixels" tabindex="0"></div></div></div></div><div data-component="SplitPageLayout.Content" class="prc-PageLayout-ContentWrapper-gR9eG"><div class="prc-PageLayout-Content-xWL-A" data-width="full" style="--spacing:var(--spacing-none)"><div class="SharedPageLayout-module__content__IwGAp" data-selector="repos-split-pane-content" id="repos-split-pane-content" tabindex="0"> <!-- --> <div class="container CodeViewHeader-module__Box__JkPOb"><div class="CodeViewHeader-module__StickyHeader__Qn7UN" id="StickyHeader"><div class="CodeViewHeader-module__Box_1__SbNDV"><div class="CodeViewHeader-module__Box_2__TB46f"><div class="react-code-view-header-wrap--narrow CodeViewHeader-module__Box_3__q1zUL"><div class="CodeViewHeader-module__treeToggleWrapper__RQ__9"><h2 class="use-tree-pane-module__Heading__s4QbZ prc-Heading-Heading-MtWFE" data-component="Heading"><button data-component="Button" type="button" aria-label="Expand file tree" data-testid="expand-file-tree-button-mobile" class="prc-Button-ButtonBase-9n-Xk ExpandFileTreeButton-module__Button_1__Svs95" data-loading="false" data-size="medium" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-arrow-left" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.78 12.53a.75.75 0 0 1-1.06 0L2.47 8.28a.75.75 0 0 1 0-1.06l4.25-4.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L4.81 7h7.44a.75.75 0 0 1 0 1.5H4.81l2.97 2.97a.75.75 0 0 1 0 1.06Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3">Files</span></span></button><button data-component="IconButton" type="button" data-testid="expand-file-tree-button" aria-controls="repos-file-tree" class="prc-Button-ButtonBase-9n-Xk position-relative ExpandFileTreeButton-module__expandButton__hDOcv ExpandFileTreeButton-module__filesButtonBreakpoint__zEvz3 fgColor-muted prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="invisible" aria-labelledby="_R_4lla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-sidebar-collapse" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M6.823 7.823a.25.25 0 0 1 0 .354l-2.396 2.396A.25.25 0 0 1 4 10.396V5.604a.25.25 0 0 1 .427-.177Z"></path><path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25H9.5v-13H1.75a.25.25 0 0 0-.25.25ZM11 14.5h3.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H11Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="se" data-component="Tooltip" aria-hidden="true" id="_R_4lla9lik5_">Expand file tree</span><div class="d-none"></div></h2></div><div class="react-code-view-header-mb--narrow mr-2"><button data-component="Button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="v2.4.11 branch" data-testid="anchor-button" data-icv-name="Switch branches/tags" class="prc-Button-ButtonBase-9n-Xk ref-selector-class RefSelectorAnchoredOverlay-module__RefSelectorOverlayBtn__a3WK3" data-loading="false" data-size="medium" data-variant="default" id="ref-picker-repos-header-ref-selector-wide"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><div class="RefSelectorAnchoredOverlay-module__RefSelectorOverlayContainer__yaf4p"><div style="max-width:125px" class="ref-selector-button-text-container RefSelectorAnchoredOverlay-module__RefSelectorBtnTextContainer__Di3rk"><span class="RefSelectorAnchoredOverlay-module__RefSelectorText__w_fmP">v2.4.11</span></div></div></span><span data-component="trailingVisual" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><div class="d-none"></div></div><div class="react-code-view-header-mb--narrow CodeViewHeader-module__Box_5__MQ0hL"><div class="Breadcrumb-module__container__Vxvev Breadcrumb-module__lg__Rjz0A"><nav data-testid="breadcrumbs" aria-labelledby="repos-header-breadcrumb-heading" id="repos-header-breadcrumb" class="Breadcrumb-module__nav__rQFDj"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading" id="repos-header-breadcrumb-heading">Breadcrumbs</h2><ol class="Breadcrumb-module__list__ZH6zr"><li class="Breadcrumb-module__listItem__Ib0x_"><a class="Breadcrumb-module__repoLink__O2Nbs prc-Link-Link-9ZwDx" data-component="Link" data-testid="breadcrumbs-repo-link" href="/lleontor705/cortex/tree/v2.4.11" data-discover="true">cortex</a></li><li class="Breadcrumb-module__listItem__Ib0x_"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__lg__Rjz0A" aria-hidden="true">/</span><a class="Breadcrumb-module__directoryLink__kQy_t prc-Link-Link-9ZwDx" data-component="Link" href="/lleontor705/cortex/tree/v2.4.11/docs" data-discover="true">docs</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Breadcrumb-module__filename__equZR"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__lg__Rjz0A" aria-hidden="true">/</span><h1 class="Breadcrumb-module__filenameHeading__MNMtw Breadcrumb-module__lg__Rjz0A prc-Heading-Heading-MtWFE" data-component="Heading" tabindex="-1" id="file-name-id">CLI-REFERENCE.md</h1></div><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-9n-Xk ml-2 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_7lla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="CopyToClipboardIconButton-module__tooltip__WyiwL prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-label="Copy path" aria-hidden="true" id="_R_7lla9lik5_">Copy path</span></div></div></div><div class="react-code-view-header-element--wide"><div class="CodeViewHeader-module__Box_7___0R6c"><div class="d-flex gap-2"><div><div class="CodeViewHeader-module__FileResultsList__JDzUy"><span class="d-flex FileResultsList-module__FilesSearchBox__ivVkc TextInput-wrapper prc-components-TextInputWrapper-Hpdqi prc-components-TextInputBaseWrapper-wY-n0" data-no-trailing-action="true" data-component="TextInput" data-leading-visual="true" data-trailing-visual="true" aria-busy="false"><span class="TextInput-icon" id="_R_1cpla9lik5_" aria-hidden="true" data-component="TextInput.LeadingVisual"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-search" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg></span><input type="text" aria-label="Go to file" role="combobox" aria-controls="file-results-list" aria-expanded="false" aria-haspopup="dialog" autoCorrect="off" spellCheck="false" placeholder="Go to file" aria-describedby="_R_1cpla9lik5_ _R_1cpla9lik5H1_" data-component="input" class="prc-components-Input-IwWrt" value=""/><span class="TextInput-icon" id="_R_1cpla9lik5H1_" aria-hidden="true" data-component="TextInput.TrailingVisual"></span></span></div><div class="d-none"></div></div><button data-component="Button" type="button" style="display:none" class="prc-Button-ButtonBase-9n-Xk NavigationMenu-module__Button__LpKgm" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Blame</span></span></button><div class="d-none"></div><button data-component="IconButton" type="button" data-testid="more-file-actions-button-nav-menu-wide" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click NavigationMenu-module__IconButton__HpX3G prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-labelledby="_R_7p9la9lik5_" id="_R_99la9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_7p9la9lik5_">More file actions</span></div></div></div><div class="react-code-view-header-element--narrow"><div class="CodeViewHeader-module__Box_7___0R6c"><div class="d-flex gap-2"><button data-component="Button" type="button" style="display:none" class="prc-Button-ButtonBase-9n-Xk NavigationMenu-module__Button__LpKgm" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Blame</span></span></button><div class="d-none"></div><button data-component="IconButton" type="button" data-testid="more-file-actions-button-nav-menu-narrow" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click NavigationMenu-module__IconButton__HpX3G prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-labelledby="_R_7pdla9lik5_" id="_R_9dla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_7pdla9lik5_">More file actions</span></div></div></div></div></div></div></div><div class="CodeView-module__contentWrapper__cG2JH"><div class="react-code-view-bottom-padding"><div class="BlobTopBanners-module__Box__v_nvx"></div></div> <div class="d-none"></div><div class="d-flex flex-column border rounded-2 tmp-mb-3 pl-1"><div class="LatestCommit-module__Box__B25ZT"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">Latest commit</h2><div style="width:120px" class="Skeleton Skeleton--text" data-testid="loading"> </div><div class="d-flex flex-shrink-0 gap-2"><div data-testid="latest-commit-details" class="d-none d-sm-flex flex-items-center"></div><div class="d-flex gap-2"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">History</h2><a data-component="LinkButton" href="/lleontor705/cortex/commits/v2.4.11/docs/CLI-REFERENCE.md" class="prc-Button-ButtonBase-9n-Xk d-none d-lg-flex LinkButton-module__linkButton__nFnov flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><span class="fgColor-default">History</span></span></span></a><div class="d-sm-none"></div><div class="d-flex d-lg-none"><a data-component="LinkButton" aria-label="View commit history for this file." href="/lleontor705/cortex/commits/v2.4.11/docs/CLI-REFERENCE.md" class="prc-Button-ButtonBase-9n-Xk LinkButton-module__linkButton__nFnov flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible" aria-describedby="_R_4mlala9lik5_"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span></span></a><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="s" data-component="Tooltip" role="tooltip" aria-hidden="true" id="_R_4mlala9lik5_">History</span></div></div></div></div></div><div class="d-flex flex-row"><div class="container BlobViewContent-module__blobContainer__DtH2d"><div class="react-code-size-details-banner BlobViewContent-module__codeSizeDetails__e5sUw"><div class="react-code-size-details-banner CodeSizeDetails-module__Box__VcD6l"><div class="text-mono CodeSizeDetails-module__Box_1__GVxQL"><div data-testid="blob-size" class="CodeSizeDetails-module__Truncate_1__lE93V prc-Truncate-Truncate-2G1eo" data-inline="true" title="59.8 KB" style="--truncate-max-width:100%"><span>1636 lines (1198 loc) · 59.8 KB</span></div></div></div></div><div class="react-blob-view-header-sticky BlobViewContent-module__stickyHeader__VwxB5" id="repos-sticky-header"><div class="BlobViewHeader-module__Box__yhm9u"><div class="react-blob-sticky-header"><div class="FileNameStickyHeader-module__outerWrapper__ZL4Xc FileNameStickyHeader-module__outerWrapperHidden__Zpynk"><div class="FileNameStickyHeader-module__Box_1__Hazu5"><div class="FileNameStickyHeader-module__Box_2__hoolP"><div class="FileNameStickyHeader-module__Box_3__MVKsk"><button data-component="Button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="v2.4.11 tag" data-testid="anchor-button" data-icv-name="Switch branches/tags" class="prc-Button-ButtonBase-9n-Xk ref-selector-class RefSelectorAnchoredOverlay-module__RefSelectorOverlayBtn__a3WK3" data-loading="false" data-size="medium" data-variant="default" id="ref-picker-repos-header-ref-selector"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-tag" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1 7.775V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 0 1 0 2.474l-5.026 5.026a1.75 1.75 0 0 1-2.474 0l-6.25-6.25A1.752 1.752 0 0 1 1 7.775Zm1.5 0c0 .066.026.13.073.177l6.25 6.25a.25.25 0 0 0 .354 0l5.025-5.025a.25.25 0 0 0 0-.354l-6.25-6.25a.25.25 0 0 0-.177-.073H2.75a.25.25 0 0 0-.25.25ZM6 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><div class="RefSelectorAnchoredOverlay-module__RefSelectorOverlayContainer__yaf4p"><div style="max-width:125px" class="ref-selector-button-text-container RefSelectorAnchoredOverlay-module__RefSelectorBtnTextContainer__Di3rk"><span class="RefSelectorAnchoredOverlay-module__RefSelectorText__w_fmP">v2.4.11</span></div></div></span><span data-component="trailingVisual" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><div class="d-none"></div></div><div class="FileNameStickyHeader-module__Box_4__FLhtt"><div class="Breadcrumb-module__container__Vxvev Breadcrumb-module__md__Wb1Gs"><nav data-testid="breadcrumbs" aria-labelledby="sticky-breadcrumb-heading" id="sticky-breadcrumb" class="Breadcrumb-module__nav__rQFDj"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading" id="sticky-breadcrumb-heading">Breadcrumbs</h2><ol class="Breadcrumb-module__list__ZH6zr"><li class="Breadcrumb-module__listItem__Ib0x_"><a class="Breadcrumb-module__repoLink__O2Nbs prc-Link-Link-9ZwDx" data-component="Link" data-testid="breadcrumbs-repo-link" href="/lleontor705/cortex/tree/v2.4.11" data-discover="true">cortex</a></li><li class="Breadcrumb-module__listItem__Ib0x_"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__md__Wb1Gs" aria-hidden="true">/</span><a class="Breadcrumb-module__directoryLink__kQy_t prc-Link-Link-9ZwDx" data-component="Link" href="/lleontor705/cortex/tree/v2.4.11/docs" data-discover="true">docs</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Breadcrumb-module__filename__equZR"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__md__Wb1Gs" aria-hidden="true">/</span><h1 class="Breadcrumb-module__filenameHeading__MNMtw Breadcrumb-module__md__Wb1Gs prc-Heading-Heading-MtWFE" data-component="Heading" tabindex="-1" id="sticky-file-name-id">CLI-REFERENCE.md</h1></div><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-9n-Xk ml-2 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_7lcpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="CopyToClipboardIconButton-module__tooltip__WyiwL prc-TooltipV2-Tooltip-tLeuB" data-direction="s" data-component="Tooltip" aria-label="Copy path" aria-hidden="true" id="_R_7lcpala9lik5_">Copy path</span></div></div></div><button data-component="Button" type="button" class="prc-Button-ButtonBase-9n-Xk FileNameStickyHeader-module__Button__LSEU_ FileNameStickyHeader-module__GoToTopButton__nxAFn" data-loading="false" data-size="small" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-arrow-up" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.47 7.78a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0l4.25 4.25a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018L9 4.81v7.44a.75.75 0 0 1-1.5 0V4.81L4.53 7.78a.75.75 0 0 1-1.06 0Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3">Top</span></span></button></div></div></div><div class="BlobViewHeader-module__Box_1__VEmuQ"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">File metadata and controls</h2><div class="BlobViewHeader-module__Box_2__icUs2"><ul aria-label="File view" class="prc-SegmentedControl-SegmentedControl-lqIXp BlobTabButtons-module__SegmentedControl__jen2u" data-variant="default" data-size="small" data-component="SegmentedControl"><li class="prc-SegmentedControl-Item-tSCQh" data-selected="" data-component="SegmentedControl.Button"><button aria-pressed="true" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:transparent"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Preview">Preview</div></span></button></li><li class="prc-SegmentedControl-Item-tSCQh" data-component="SegmentedControl.Button"><button aria-pressed="false" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:var(--borderColor-default)"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Code">Code</div></span></button></li><li class="prc-SegmentedControl-Item-tSCQh" data-component="SegmentedControl.Button"><button aria-pressed="false" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:var(--borderColor-default)"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Blame">Blame</div></span></button></li></ul><div class="d-none"></div><div class="react-code-size-details-in-header CodeSizeDetails-module__Box__VcD6l"><div class="text-mono CodeSizeDetails-module__Box_1__GVxQL"><div data-testid="blob-size" class="CodeSizeDetails-module__Truncate_1__lE93V prc-Truncate-Truncate-2G1eo" data-inline="true" title="59.8 KB" style="--truncate-max-width:100%"><span>1636 lines (1198 loc) · 59.8 KB</span></div></div></div></div><div class="BlobViewHeader-module__Box_3__ng6v2"><div class="d-none"></div><div class="react-blob-header-edit-and-raw-actions BlobViewHeader-module__Box_4__J4Y4W"><div class="d-none"></div><div class="prc-ButtonGroup-ButtonGroup-vFUrY" data-component="ButtonGroup"><div class="prc-ButtonGroup-Item-PqvDl"><a data-component="LinkButton" href="https://github.com/lleontor705/cortex/raw/refs/tags/v2.4.11/docs/CLI-REFERENCE.md" data-testid="raw-button" class="prc-Button-ButtonBase-9n-Xk LinkButton-module__linkButton__nFnov BlobViewHeader-module__LinkButton__X9kx2" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Raw</span></span></a></div><div class="prc-ButtonGroup-Item-PqvDl"><button data-component="IconButton" type="button" data-testid="copy-raw-button" class="prc-Button-ButtonBase-9n-Xk prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default" aria-labelledby="_R_qaucpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_qaucpala9lik5_">Copy raw file</span></div><div class="prc-ButtonGroup-Item-PqvDl"><button data-component="IconButton" type="button" data-testid="download-raw-button" class="prc-Button-ButtonBase-9n-Xk BlobViewHeader-module__downloadButton__ef459 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default" aria-labelledby="_R_eaucpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-download" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2.75 14A1.75 1.75 0 0 1 1 12.25v-2.5a.75.75 0 0 1 1.5 0v2.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-2.5a.75.75 0 0 1 1.5 0v2.5A1.75 1.75 0 0 1 13.25 14Z"></path><path d="M7.25 7.689V2a.75.75 0 0 1 1.5 0v5.689l1.97-1.969a.749.749 0 1 1 1.06 1.06l-3.25 3.25a.749.749 0 0 1-1.06 0L4.22 6.78a.749.749 0 1 1 1.06-1.06l1.97 1.969Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_eaucpala9lik5_">Download raw file</span></div></div></div><button data-component="IconButton" type="button" aria-pressed="false" class="prc-Button-ButtonBase-9n-Xk tmp-mr-2 TableOfContents-module__IconButton__jrlNM prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_3ucpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-list-unordered" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M5.75 2.5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5Zm0 5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5Zm0 5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5ZM2 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm1-6a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM2 4a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_3ucpala9lik5_">Outline</span><div class="react-blob-header-edit-and-raw-actions-combined"><button data-component="IconButton" type="button" title="More file actions" data-testid="more-file-actions-button" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click BlobViewHeader-module__IconButton__XrMQY prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_fkecpala9lik5_" id="_R_kecpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_fkecpala9lik5_">Edit and raw actions</span></div></div></div></div><div></div></div><div class="BlobViewContent-module__blobContentWrapper__JS0W6"><section aria-labelledby="file-name-id-wide file-name-id-mobile" class="BlobContent-module__blobContentSection__VOgZq BlobContent-module__blobContentSectionMarkdown__mPLOK" style="margin-top:46px"><div class="js-snippet-clipboard-copy-unpositioned BlobContent-module__markdownBlob__T8jpG" data-hpc="true" containertiming="hpc"><article class="markdown-body entry-content container-lg" itemprop="text"><div class="markdown-heading" dir="auto"><h1 tabindex="-1" class="heading-element" dir="auto">Cortex CLI Reference</h1><a id="user-content-cortex-cli-reference" class="anchor" aria-label="Permalink: Cortex CLI Reference" href="#cortex-cli-reference"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">This is the single authoritative contract for the <code>cortex</code> command line binary
(<code>cmd/cortex</code>). Every command, flag, default, environment-variable override, exit
code, and authentication requirement documented here is anchored to the shipped
implementation: <code>cmd/cortex/main.go</code>, <code>internal/cli/cli.go</code>, <code>internal/cli/web.go</code>,
<code>internal/cli/watch.go</code>, <code>internal/platform/mode.go</code>, and <code>internal/config</code>.</p>
<p dir="auto">If this document and any other repository document disagree about CLI behavior,
this document wins. Flag tables must exist in exactly one place, and that place is
here.</p>
<blockquote>
<p dir="auto"><strong>Related references.</strong> Configuration keys and file formats live in
<a href="/lleontor705/cortex/blob/v2.4.11/docs/CONFIGURATION.md">CONFIGURATION.md</a>. The MCP tool catalogs and profiles live in
<a href="/lleontor705/cortex/blob/v2.4.11/docs/MCP.md">MCP.md</a>. Server deployment lives in <a href="/lleontor705/cortex/blob/v2.4.11/docs/SERVER.md">SERVER.md</a>. The HTTP
REST surface lives in <a href="/lleontor705/cortex/blob/v2.4.11/docs/HTTP-API.md">HTTP-API.md</a>. Interactive terminal screens
live in <a href="/lleontor705/cortex/blob/v2.4.11/docs/TUI-GUIDE.md">TUI-GUIDE.md</a>.</p>
</blockquote>
<p dir="auto">Sections: <a href="#1-invocation-model">invocation model</a>,
<a href="#2-global-conventions">global conventions</a>,
<a href="#3-command-reference">command reference</a>,
<a href="#4-environment-variable-index">environment-variable index</a>,
<a href="#5-authentication-matrix">authentication matrix</a>, and
<a href="#6-deprecated-and-retired-surface">deprecated surface</a>.</p>
<hr>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">1. Invocation model</h2><a id="user-content-1-invocation-model" class="anchor" aria-label="Permalink: 1. Invocation model" href="#1-invocation-model"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">1.1 Binary and argument order</h3><a id="user-content-11-binary-and-argument-order" class="anchor" aria-label="Permalink: 1.1 Binary and argument order" href="#11-binary-and-argument-order"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">The production entrypoint is <code>cmd/cortex</code> (the <code>cortex</code> binary). The general form is:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex [--mode local|hybrid|server] &lt;command&gt; [arguments...]"><pre lang="text" class="notranslate"><code>cortex [--mode local|hybrid|server] &lt;command&gt; [arguments...]
</code></pre></div>
<p dir="auto">The binary first extracts and removes the global <code>--mode</code> flag, then dispatches on
the next positional argument (<code>args[1]</code>). Both flag syntaxes are accepted and the
flag may appear before or after the subcommand:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex --mode hybrid search &quot;release notes&quot;
cortex --mode=hybrid search &quot;release notes&quot;
cortex search &quot;release notes&quot; --mode=hybrid"><pre lang="text" class="notranslate"><code>cortex --mode hybrid search "release notes"
cortex --mode=hybrid search "release notes"
cortex search "release notes" --mode=hybrid
</code></pre></div>
<p dir="auto"><code>--mode</code> parsing is strict. The valid set is exactly <code>local</code>, <code>hybrid</code>, and
<code>server</code>; any other value fails closed with exit code <code>2</code> and the error message:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex: unknown mode &quot;…&quot;: use --mode local, --mode hybrid, or --mode server"><pre lang="text" class="notranslate"><code>cortex: unknown mode "…": use --mode local, --mode hybrid, or --mode server
</code></pre></div>
<p dir="auto">When <code>--mode</code> is absent the effective mode is <code>local</code>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">1.2 The mode triad</h3><a id="user-content-12-the-mode-triad" class="anchor" aria-label="Permalink: 1.2 The mode triad" href="#12-the-mode-triad"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Mode</th>
<th>Backend</th>
<th>Network surface</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>local</code></td>
<td>Single-binary SQLite (<code>~/.cortex/cortex.db</code>) with local stdio MCP</td>
<td>None required</td>
<td>Default. Byte-compatible with the standalone local composition.</td>
</tr>
<tr>
<td><code>hybrid</code></td>
<td>Local SQLite plus the remote sync/replication loop</td>
<td>Remote sync endpoint</td>
<td>Not a separate store: it is the local composition with replication layered on. The binary exports <code>CORTEX_MODE=hybrid</code> for the process.</td>
</tr>
<tr>
<td><code>server</code></td>
<td>Single-tenant PostgreSQL over authenticated HTTP and Streamable HTTP MCP</td>
<td>HTTP listener + <code>/mcp</code></td>
<td>Wired by <code>cmd/cortex</code>; see <a href="#137-mode-server"><code>--mode server</code></a>.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><code>cortex status</code> (alias <code>cortex mode</code>) reports the active triad and its
description. Server-mode PostgreSQL is single-tenant; tenant and workspace scope
are configuration constants, never client input.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">1.3 Exit-code contract</h3><a id="user-content-13-exit-code-contract" class="anchor" aria-label="Permalink: 1.3 Exit-code contract" href="#13-exit-code-contract"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Code</th>
<th>Meaning</th>
<th>Producing conditions</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>0</code></td>
<td>Success.</td>
<td>The command completed and printed its result. Commands that find no matching data (for example an empty search) still exit <code>0</code>.</td>
</tr>
<tr>
<td><code>1</code></td>
<td>Failure.</td>
<td>A runtime error (database, network, filesystem), a validation failure, an unknown command, or a per-command argument/usage error (missing required arguments, invalid numeric flag, invalid subcommand). Running <code>cortex</code> with no command also exits <code>1</code>.</td>
</tr>
<tr>
<td><code>2</code></td>
<td>Usage / argument error at the invocation layer.</td>
<td>An invalid <code>--mode</code> value, or a <code>--mode server</code> argument/configuration failure: unknown server argument, <code>--config</code> without a path, invalid <code>reindex --project-id</code>, server config that fails to load, or server bootstrap/web-key failure.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="# exit 0: a successful search
cortex search &quot;auth tokens&quot;

# exit 1: missing search query
cortex search
echo $?   # 1

# exit 2: invalid mode
cortex --mode bogus search &quot;x&quot;
echo $?   # 2"><pre><span class="pl-c"><span class="pl-c">#</span> exit 0: a successful search</span>
cortex search <span class="pl-s"><span class="pl-pds">"</span>auth tokens<span class="pl-pds">"</span></span>

<span class="pl-c"><span class="pl-c">#</span> exit 1: missing search query</span>
cortex search
<span class="pl-c1">echo</span> <span class="pl-smi">$?</span>   <span class="pl-c"><span class="pl-c">#</span> 1</span>

<span class="pl-c"><span class="pl-c">#</span> exit 2: invalid mode</span>
cortex --mode bogus search <span class="pl-s"><span class="pl-pds">"</span>x<span class="pl-pds">"</span></span>
<span class="pl-c1">echo</span> <span class="pl-smi">$?</span>   <span class="pl-c"><span class="pl-c">#</span> 2</span></pre></div>
<blockquote>
<p dir="auto"><strong>Note.</strong> Per-command usage errors (for example <code>cortex save</code> without a title and
content, or <code>cortex config</code> without a subcommand) currently return <code>1</code>, not <code>2</code>.
Only top-level mode parsing and the server invocation layer use <code>2</code>.</p>
</blockquote>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">1.4 Bare interactive invocation → TUI</h3><a id="user-content-14-bare-interactive-invocation--tui" class="anchor" aria-label="Permalink: 1.4 Bare interactive invocation → TUI" href="#14-bare-interactive-invocation--tui"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">When the effective mode is <code>local</code> or <code>hybrid</code> and the process is invoked
interactively with no command arguments:</p>
<ul dir="auto">
<li>the caller is an interactive terminal (<code>stdout</code> is a TTY and <code>stdin</code> is a TTY), and</li>
<li>there are no command arguments,</li>
</ul>
<p dir="auto">then the binary rewrites the invocation to <code>cortex tui</code> and launches the
interactive terminal UI instead of printing usage. This covers double-clicking the
binary on Windows or running <code>cortex</code> directly in a terminal. Non-interactive
invocations (pipes, scripts, CI) still print usage and exit <code>1</code>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">1.5 Background update notice</h3><a id="user-content-15-background-update-notice" class="anchor" aria-label="Permalink: 1.5 Background update notice" href="#15-background-update-notice"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">Every dispatch attempt except <code>help</code> starts a background update check. The result
is printed to <strong>stderr</strong>, never stdout, so it cannot corrupt machine-readable
output:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="A new version of cortex is available: vX.Y.Z (current: vA.B.C)
&lt;release-url&gt;"><pre lang="text" class="notranslate"><code>A new version of cortex is available: vX.Y.Z (current: vA.B.C)
&lt;release-url&gt;
</code></pre></div>
<ul dir="auto">
<li><code>cortex version</code> prints the notice synchronously.</li>
<li>Other commands drain the background channel non-blockingly right before exiting,
so the notice appears only when the check has already finished (best effort).</li>
<li><code>cortex update --check</code> performs a synchronous check instead.</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">1.6 <code>cortex serve</code> versus <code>--mode server</code></h3><a id="user-content-16-cortex-serve-versus---mode-server" class="anchor" aria-label="Permalink: 1.6 cortex serve versus --mode server" href="#16-cortex-serve-versus---mode-server"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><code>cortex serve</code> starts the <strong>local</strong> SQLite HTTP REST API and embedded web UI on the
configured listener (<code>http.host</code>/<code>http.port</code>, default <code>localhost:7438</code>). It is not
the PostgreSQL server.</p>
<p dir="auto"><code>cortex --mode server</code> starts the <strong>single-tenant PostgreSQL</strong> composition with
authenticated <code>/api/*</code> and Streamable HTTP MCP at <code>/mcp</code>, plus the embedded web UI.
See <a href="#137-mode-server"><code>--mode server</code></a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">1.7 <code>--mode server</code></h3><a id="user-content-17---mode-server" class="anchor" aria-label="Permalink: 1.7 --mode server" href="#17---mode-server"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex --mode server [options]
cortex --mode server reindex --project-id &lt;uuid&gt; [options]"><pre lang="text" class="notranslate"><code>cortex --mode server [options]
cortex --mode server reindex --project-id &lt;uuid&gt; [options]
</code></pre></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Argument</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--config &lt;path&gt;</code></td>
<td><em>(none)</em></td>
<td>—</td>
<td>Path to the server YAML configuration file. Also accepts <code>--config=&lt;path&gt;</code>.</td>
</tr>
<tr>
<td><code>reindex</code></td>
<td>off</td>
<td>—</td>
<td>Run offline synchronous reindexing for one project, then exit.</td>
</tr>
<tr>
<td><code>--project-id &lt;uuid&gt;</code></td>
<td><em>(required with reindex)</em></td>
<td>—</td>
<td>Public project UUID to reindex. Must be a well-formed non-nil UUID.</td>
</tr>
<tr>
<td><code>-h</code>, <code>--help</code>, <code>help</code></td>
<td>—</td>
<td>—</td>
<td>Print server help and exit <code>0</code>.</td>
</tr>
<tr>
<td><code>-v</code>, <code>--version</code>, <code>version</code></td>
<td>—</td>
<td>—</td>
<td>Print the binary version and exit <code>0</code>.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">Server startup reads configuration from <code>--config</code> (or the default search paths),
opens the PostgreSQL composition, mints or loads the embedded web access key, and
prints the endpoint banner:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex: server endpoint http://&lt;host&gt;:&lt;port&gt;
cortex: readiness http://&lt;host&gt;:&lt;port&gt;/health
cortex: API http://&lt;host&gt;:&lt;port&gt;/api/
cortex: MCP http://&lt;host&gt;:&lt;port&gt;/mcp
cortex: web http://&lt;host&gt;:&lt;port&gt;/
cortex: web key file &lt;path&gt;"><pre lang="text" class="notranslate"><code>cortex: server endpoint http://&lt;host&gt;:&lt;port&gt;
cortex: readiness http://&lt;host&gt;:&lt;port&gt;/health
cortex: API http://&lt;host&gt;:&lt;port&gt;/api/
cortex: MCP http://&lt;host&gt;:&lt;port&gt;/mcp
cortex: web http://&lt;host&gt;:&lt;port&gt;/
cortex: web key file &lt;path&gt;
</code></pre></div>
<p dir="auto">On first boot the plaintext web access key is printed exactly once. <code>reindex</code>
prints a single summary line:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex: server reindex complete project=&lt;uuid&gt; corpus=N upserted=N reembedded=N skipped=N batches=N"><pre lang="text" class="notranslate"><code>cortex: server reindex complete project=&lt;uuid&gt; corpus=N upserted=N reembedded=N skipped=N batches=N
</code></pre></div>
<p dir="auto">Exit codes: <code>0</code> success; <code>2</code> argument/config/bootstrap failure; <code>1</code> runtime
failure (<code>rt.Serve</code> error) or reindex execution error.</p>
<p dir="auto">Authentication: the server verifies the configured static bearer
(<code>http.token</code> / <code>CORTEX_HTTP_TOKEN</code>) on every <code>/api/*</code> and <code>/mcp</code> request before
binding the synthetic constant principal. <code>/health</code> is unauthenticated. The
embedded web UI uses the separate web access key.</p>
<hr>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">2. Global conventions</h2><a id="user-content-2-global-conventions" class="anchor" aria-label="Permalink: 2. Global conventions" href="#2-global-conventions"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">2.1 Flag styles</h3><a id="user-content-21-flag-styles" class="anchor" aria-label="Permalink: 2.1 Flag styles" href="#21-flag-styles"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li><strong>Value flags</strong> accept both forms: <code>--limit 20</code> and <code>--limit=20</code>. Most commands
implement the space-separated form; <code>--mode</code>, <code>--tools</code>, <code>--profile</code>, and the
<code>code</code> subcommands also accept the <code>=</code> form. When a value flag is used without a
value, the parser either ignores it or falls back to its default rather than
consuming the next token as a value.</li>
<li><strong>Boolean flags</strong> are presence-only (<code>--json</code>, <code>--graph-expand</code>, <code>--staged</code>,
<code>--regex</code>, <code>--pack</code>, <code>--dry-run</code>, <code>--check</code>, <code>--include-personal</code>, <code>--force</code>,
<code>--to-obsidian</code>, <code>--remote</code>). There is no <code>--flag=false</code> form for them.</li>
<li><strong>Aliases.</strong> Several commands accept short aliases: <code>-p</code> (<code>--project</code>),
<code>-m</code> (<code>--max-files</code>), <code>-f</code> (<code>--file</code>/<code>--force</code>, context dependent),
<code>-t</code> (<code>--token</code>), <code>-k</code> (<code>--key-file</code>), <code>-c</code> (<code>--check</code>), <code>-o</code> (<code>--output</code>).</li>
<li>Unknown tokens that do not start with <code>-</code> are treated as positional arguments
(a query, a path, a target). Unknown tokens that do start with <code>-</code> are ignored
by most parsers rather than rejected.</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">2.2 Defaults</h3><a id="user-content-22-defaults" class="anchor" aria-label="Permalink: 2.2 Defaults" href="#22-defaults"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">Flag defaults documented in this reference are the effective CLI defaults in
<code>internal/cli</code>. They are independent of configuration defaults: for example
<code>cortex search</code> uses a hard-coded result limit of <code>10</code>, while the configuration
key <code>search.default_limit</code> defaults to <code>20</code>. When both exist, the CLI default
applies unless the flag is supplied.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">2.3 Privacy preflight</h3><a id="user-content-23-privacy-preflight" class="anchor" aria-label="Permalink: 2.3 Privacy preflight" href="#23-privacy-preflight"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><code>cortex save</code> and <code>cortex import</code> run a privacy preflight before persisting:</p>
<ul dir="auto">
<li>All metadata fields (<code>project</code>, <code>topic_key</code>, <code>scope</code>, <code>type</code>, <code>source</code>,
<code>session_id</code>, and tags) are validated with <code>privacy.ValidateMetadata</code>.</li>
<li><code>title</code> and <code>content</code> are passed through <code>privacy.ProtectField</code>.</li>
<li>For batch import, the entire request is staged and validated against defensive
copies; if any record fails, the import is rejected atomically with exit <code>1</code> and
nothing is written.</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">2.4 Identifier spaces</h3><a id="user-content-24-identifier-spaces" class="anchor" aria-label="Permalink: 2.4 Identifier spaces" href="#24-identifier-spaces"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li><strong>Local mode</strong> uses integer observation IDs (for example <code>#42</code>), opaque
agent-provided session strings, and integer graph IDs.</li>
<li><strong>Server mode</strong> uses public UUIDs for observations and projects.</li>
<li>The two spaces are not interchangeable. Numeric IDs from a local catalog must
never be passed to server endpoints and vice versa.</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">2.5 Output streams</h3><a id="user-content-25-output-streams" class="anchor" aria-label="Permalink: 2.5 Output streams" href="#25-output-streams"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Primary results go to <strong>stdout</strong>.</li>
<li>Errors, warnings, and the background update notice go to <strong>stderr</strong>.</li>
<li><code>cortex serve</code> emits a pipe-safe <code>key=value</code> banner so its output stays
machine-readable.</li>
</ul>
<hr>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3. Command reference</h2><a id="user-content-3-command-reference" class="anchor" aria-label="Permalink: 3. Command reference" href="#3-command-reference"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">Command inventory at a glance:</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Command</th>
<th>Purpose</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#31-help"><code>help</code></a></td>
<td>Print usage</td>
</tr>
<tr>
<td><a href="#32-version"><code>version</code></a></td>
<td>Print the binary version</td>
</tr>
<tr>
<td><a href="#33-tui"><code>tui</code></a></td>
<td>Launch the interactive terminal UI</td>
</tr>
<tr>
<td><a href="#34-serve"><code>serve</code></a></td>
<td>Start the local SQLite HTTP API + embedded web</td>
</tr>
<tr>
<td><a href="#35-mcp"><code>mcp</code></a></td>
<td>Start the local stdio MCP server</td>
</tr>
<tr>
<td><a href="#36-search"><code>search</code></a></td>
<td>Search observations</td>
</tr>
<tr>
<td><a href="#37-save"><code>save</code></a></td>
<td>Save an observation</td>
</tr>
<tr>
<td><a href="#38-context"><code>context</code></a></td>
<td>Show recent session context or a context pack</td>
</tr>
<tr>
<td><a href="#39-stats"><code>stats</code></a></td>
<td>Show memory statistics</td>
</tr>
<tr>
<td><a href="#310-timeline"><code>timeline</code></a></td>
<td>Show chronological context around an observation</td>
</tr>
<tr>
<td><a href="#311-revisions"><code>revisions</code></a></td>
<td>Show revision history for an observation</td>
</tr>
<tr>
<td><a href="#312-setup"><code>setup</code></a></td>
<td>Install agent integrations / configure Ollama</td>
</tr>
<tr>
<td><a href="#313-import"><code>import</code></a></td>
<td>Import observations from JSON</td>
</tr>
<tr>
<td><a href="#314-export"><code>export</code></a></td>
<td>Export observations to JSON or Obsidian</td>
</tr>
<tr>
<td><a href="#315-sync"><code>sync</code></a></td>
<td>Sync via file chunks or remote replication</td>
</tr>
<tr>
<td><a href="#316-merge-projects"><code>merge-projects</code></a></td>
<td>Merge project-name variants</td>
</tr>
<tr>
<td><a href="#317-reindex"><code>reindex</code></a></td>
<td>Rebuild vector embeddings</td>
</tr>
<tr>
<td><a href="#318-doctor"><code>doctor</code></a></td>
<td>Run health checks</td>
</tr>
<tr>
<td><a href="#319-gc"><code>gc</code></a></td>
<td>Garbage-collect archived observations</td>
</tr>
<tr>
<td><a href="#320-backup"><code>backup</code></a></td>
<td>Create an atomic SQLite snapshot</td>
</tr>
<tr>
<td><a href="#321-watch"><code>watch</code></a></td>
<td>Continuous file watcher for AST indexing</td>
</tr>
<tr>
<td><a href="#322-ingest"><code>ingest</code></a></td>
<td>One-shot AST ingestion</td>
</tr>
<tr>
<td><a href="#323-code"><code>code</code></a></td>
<td>Code AST intelligence (9 subcommands)</td>
</tr>
<tr>
<td><a href="#324-config"><code>config</code></a></td>
<td>Manage configuration</td>
</tr>
<tr>
<td><a href="#325-auth"><code>auth</code></a></td>
<td>Manage the local authentication token</td>
</tr>
<tr>
<td><a href="#326-web"><code>web</code></a></td>
<td>Manage the embedded web credential</td>
</tr>
<tr>
<td><a href="#327-status--mode"><code>status</code> / <code>mode</code></a></td>
<td>Display operational mode and status</td>
</tr>
<tr>
<td><a href="#328-migrate"><code>migrate</code></a></td>
<td>Manage database migrations</td>
</tr>
<tr>
<td><a href="#329-update"><code>update</code></a></td>
<td>Update Cortex to the latest release</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.1 <code>help</code></h3><a id="user-content-31-help" class="anchor" aria-label="Permalink: 3.1 help" href="#31-help"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex help
cortex --help
cortex -h"><pre lang="text" class="notranslate"><code>cortex help
cortex --help
cortex -h
</code></pre></div>
<p dir="auto">Prints the top-level usage/command list to stdout and exits <code>0</code>.</p>
<p dir="auto"><strong>Arguments:</strong> none. <strong>Flags:</strong> none. <strong>Exit codes:</strong> <code>0</code>. <strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Example</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex help"><pre>cortex <span class="pl-c1">help</span></pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#32-version">version</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.2 <code>version</code></h3><a id="user-content-32-version" class="anchor" aria-label="Permalink: 3.2 version" href="#32-version"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex version
cortex --version
cortex -v"><pre lang="text" class="notranslate"><code>cortex version
cortex --version
cortex -v
</code></pre></div>
<p dir="auto">Prints <code>cortex &lt;version&gt;</code> to stdout, drains the background update notice, and exits
<code>0</code>. The version is injected by GoReleaser via ldflags; when built from source it
falls back to the module version, or <code>dev</code>.</p>
<p dir="auto"><strong>Arguments:</strong> none. <strong>Flags:</strong> none. <strong>Exit codes:</strong> <code>0</code>. <strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Example</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex version
# cortex v2.4.0"><pre>cortex version
<span class="pl-c"><span class="pl-c">#</span> cortex v2.4.0</span></pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#329-update">update</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.3 <code>tui</code></h3><a id="user-content-33-tui" class="anchor" aria-label="Permalink: 3.3 tui" href="#33-tui"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex tui [--config]"><pre lang="text" class="notranslate"><code>cortex tui [--config]
</code></pre></div>
<p dir="auto">Launches the Bubble Tea interactive terminal UI.</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--config</code></td>
<td>off</td>
<td>—</td>
<td>Open the Configuration Center screen directly instead of the dashboard.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Arguments:</strong> none. <strong>Exit codes:</strong> <code>0</code> success, <code>1</code> on app-open or program error.
<strong>Authentication:</strong> none (local store).</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex tui
cortex tui --config"><pre>cortex tui
cortex tui --config</pre></div>
<p dir="auto">A bare interactive <code>cortex</code> invocation is rewritten to <code>cortex tui</code> (see
<a href="#14-bare-interactive-invocation--tui">§1.4</a>).</p>
<p dir="auto"><strong>See also:</strong> <a href="/lleontor705/cortex/blob/v2.4.11/docs/TUI-GUIDE.md">TUI-GUIDE.md</a>, <a href="#324-config"><code>config wizard</code></a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.4 <code>serve</code></h3><a id="user-content-34-serve" class="anchor" aria-label="Permalink: 3.4 serve" href="#34-serve"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex serve"><pre lang="text" class="notranslate"><code>cortex serve
</code></pre></div>
<p dir="auto">Starts the local SQLite HTTP REST API (<code>/api/*</code>) and, when the web surface mounts,
the embedded web UI. The listen address is <code>http.host:http.port</code>.</p>
<p dir="auto"><code>serve</code> takes no flags; the trailing arguments are ignored.</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Setting</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>http.host</code></td>
<td><code>localhost</code></td>
<td><code>CORTEX_HTTP_HOST</code></td>
<td>Listen interface. Empty/<code>localhost</code>/loopback is treated as local.</td>
</tr>
<tr>
<td><code>http.port</code></td>
<td><code>7438</code></td>
<td><code>CORTEX_HTTP_PORT</code></td>
<td>Listen port.</td>
</tr>
<tr>
<td><code>http.token</code></td>
<td><em>(empty)</em></td>
<td><code>CORTEX_HTTP_TOKEN</code></td>
<td>Static bearer. Required for non-loopback binds.</td>
</tr>
<tr>
<td><code>http.allowed_origins</code></td>
<td><code>[]</code></td>
<td><code>CORTEX_HTTP_ALLOWED_ORIGINS</code></td>
<td>CORS browser origins.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">On first boot the web access key is minted and printed exactly once. The banner:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="mode=local
store=&lt;database path&gt;
sync=disabled|enabled
web=mounted|disabled
key_file=&lt;path&gt;
listen=&lt;host&gt;:&lt;port&gt;"><pre lang="text" class="notranslate"><code>mode=local
store=&lt;database path&gt;
sync=disabled|enabled
web=mounted|disabled
key_file=&lt;path&gt;
listen=&lt;host&gt;:&lt;port&gt;
</code></pre></div>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success; <code>1</code> if the app fails to open, the non-loopback bind
has no <code>http.token</code>, the web key cannot be resolved, or the listener fails.
<strong>Authentication:</strong> none by default; when <code>http.token</code> is set, <code>/api/*</code> and the
mounted MCP require <code>Authorization: Bearer &lt;token&gt;</code>. <code>/health</code> stays
unauthenticated.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex serve
CORTEX_HTTP_TOKEN=secret CORTEX_HTTP_HOST=0.0.0.0 cortex serve"><pre>cortex serve
CORTEX_HTTP_TOKEN=secret CORTEX_HTTP_HOST=0.0.0.0 cortex serve</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="/lleontor705/cortex/blob/v2.4.11/docs/HTTP-API.md">HTTP-API.md</a>, <a href="#326-web">web key</a>, <a href="#17-mode-server"><code>--mode server</code></a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.5 <code>mcp</code></h3><a id="user-content-35-mcp" class="anchor" aria-label="Permalink: 3.5 mcp" href="#35-mcp"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex mcp [--tools=PROFILE] [--profile=PROFILE]"><pre lang="text" class="notranslate"><code>cortex mcp [--tools=PROFILE] [--profile=PROFILE]
</code></pre></div>
<p dir="auto">Starts the local stdio MCP server.</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--tools[=]PROFILE</code></td>
<td><code>mcp.profile</code> (default <code>agent</code>)</td>
<td><code>CORTEX_MCP_PROFILE</code></td>
<td>Tool catalog: <code>agent</code> (22 tools), <code>dev</code> (11 tools), <code>minimal</code> (5 tools).</td>
</tr>
<tr>
<td><code>--profile[=]PROFILE</code></td>
<td><em>(same as <code>--tools</code>)</em></td>
<td><code>CORTEX_MCP_PROFILE</code></td>
<td>Alias for <code>--tools</code>.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">When <code>mcp.remote.enabled</code> is true, <code>cortex mcp</code> does not open SQLite; it proxies
the configured remote server and forwards calls over the local stdio transport.
In that mode the remote server owns the catalog and local profiles do not filter
it.</p>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success; <code>1</code> on config load, app-open, or serve failure.
<strong>Authentication:</strong> none locally (process-scoped stdio). A remote proxy reads its
bearer from <code>mcp.remote.token_env</code> (default <code>CORTEX_REMOTE_TOKEN</code>).</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex mcp
cortex mcp --tools=minimal
cortex mcp --profile dev"><pre>cortex mcp
cortex mcp --tools=minimal
cortex mcp --profile dev</pre></div>
<p dir="auto">The <code>admin</code> and <code>temporal</code> toolsets are retired; see
<a href="#6-deprecated-and-retired-surface">§6</a>.</p>
<p dir="auto"><strong>See also:</strong> <a href="/lleontor705/cortex/blob/v2.4.11/docs/MCP.md">MCP.md</a>, <a href="#324-config"><code>config</code></a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.6 <code>search</code></h3><a id="user-content-36-search" class="anchor" aria-label="Permalink: 3.6 search" href="#36-search"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex search &lt;query&gt; [flags]"><pre lang="text" class="notranslate"><code>cortex search &lt;query&gt; [flags]
</code></pre></div>
<p dir="auto">Searches observations with multi-modal retrieval.</p>
<p dir="auto"><strong>Arguments</strong></p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Argument</th>
<th>Required</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>&lt;query&gt;</code></td>
<td>yes</td>
<td>Query text. Multiple non-flag tokens are joined with spaces.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Flags</strong></p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--mode[=]MODE</code></td>
<td><code>auto</code></td>
<td>—</td>
<td>Retrieval mode: <code>auto</code>, <code>direct</code>, <code>semantic</code>, <code>multi_hop</code>. <code>multi_hop</code> enables graph expansion; <code>direct</code> disables it.</td>
</tr>
<tr>
<td><code>--graph-expand</code></td>
<td>off</td>
<td>—</td>
<td>Force graph expansion on.</td>
</tr>
<tr>
<td><code>--type TYPE</code></td>
<td><em>(empty)</em></td>
<td>—</td>
<td>Filter by observation type.</td>
</tr>
<tr>
<td><code>--project PROJECT</code></td>
<td><em>(empty)</em></td>
<td>—</td>
<td>Filter by project.</td>
</tr>
<tr>
<td><code>--scope SCOPE</code></td>
<td><em>(empty)</em></td>
<td>—</td>
<td>Filter by scope.</td>
</tr>
<tr>
<td><code>--limit N</code></td>
<td><code>10</code></td>
<td>—</td>
<td>Maximum results. Must be an integer; invalid values exit <code>1</code>.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success (including zero matches, which prints
<code>No memories found for: "&lt;query&gt;"</code>); <code>1</code> for a missing/blank query, invalid
<code>--limit</code>, or store error. <strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex search &quot;release process&quot;
cortex search &quot;graph ranking&quot; --mode=multi_hop --limit 5
cortex search &quot;auth&quot; --type decision --project cortex --scope project"><pre>cortex search <span class="pl-s"><span class="pl-pds">"</span>release process<span class="pl-pds">"</span></span>
cortex search <span class="pl-s"><span class="pl-pds">"</span>graph ranking<span class="pl-pds">"</span></span> --mode=multi_hop --limit 5
cortex search <span class="pl-s"><span class="pl-pds">"</span>auth<span class="pl-pds">"</span></span> --type decision --project cortex --scope project</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#38-context">context</a>, <a href="/lleontor705/cortex/blob/v2.4.11/docs/CONFIGURATION.md">CONFIGURATION.md</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.7 <code>save</code></h3><a id="user-content-37-save" class="anchor" aria-label="Permalink: 3.7 save" href="#37-save"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex save &lt;title&gt; &lt;content&gt; [flags]"><pre lang="text" class="notranslate"><code>cortex save &lt;title&gt; &lt;content&gt; [flags]
</code></pre></div>
<p dir="auto">Saves a local observation after the privacy preflight.</p>
<p dir="auto"><strong>Arguments</strong></p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Argument</th>
<th>Required</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>&lt;title&gt;</code></td>
<td>yes</td>
<td>Observation title. Must be non-blank.</td>
</tr>
<tr>
<td><code>&lt;content&gt;</code></td>
<td>yes</td>
<td>Observation body. Must be non-blank.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Flags</strong></p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--type TYPE</code></td>
<td><code>manual</code></td>
<td>—</td>
<td>Observation type.</td>
</tr>
<tr>
<td><code>--project PROJECT</code></td>
<td><em>(empty)</em></td>
<td>—</td>
<td>Project name.</td>
</tr>
<tr>
<td><code>--scope SCOPE</code></td>
<td><code>project</code></td>
<td>—</td>
<td>Observation scope.</td>
</tr>
<tr>
<td><code>--topic TOPIC_KEY</code></td>
<td><em>(empty)</em></td>
<td>—</td>
<td>Stable topic key for dedupe/upsert.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">The session ID defaults to <code>manual-save</code> (or <code>manual-save-&lt;project&gt;</code> when a
project is given).</p>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success; <code>1</code> on validation/privacy rejection or store error.
<strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex save &quot;Release checklist&quot; &quot;Tag, build, publish, announce&quot;
cortex save &quot;Auth model&quot; &quot;Static bearer only&quot; --type decision --topic architecture/auth-model --project cortex"><pre>cortex save <span class="pl-s"><span class="pl-pds">"</span>Release checklist<span class="pl-pds">"</span></span> <span class="pl-s"><span class="pl-pds">"</span>Tag, build, publish, announce<span class="pl-pds">"</span></span>
cortex save <span class="pl-s"><span class="pl-pds">"</span>Auth model<span class="pl-pds">"</span></span> <span class="pl-s"><span class="pl-pds">"</span>Static bearer only<span class="pl-pds">"</span></span> --type decision --topic architecture/auth-model --project cortex</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#313-import">import</a>, privacy preflight <a href="#23-privacy-preflight">§2.3</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.8 <code>context</code></h3><a id="user-content-38-context" class="anchor" aria-label="Permalink: 3.8 context" href="#38-context"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex context [project] [flags]"><pre lang="text" class="notranslate"><code>cortex context [project] [flags]
</code></pre></div>
<p dir="auto">Shows recent session context, or renders a context pack when a format is selected.</p>
<p dir="auto"><strong>Arguments</strong></p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Argument</th>
<th>Required</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>[project]</code></td>
<td>no</td>
<td>Project filter. The first non-flag token that is not a flag value.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Flags</strong></p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--scope SCOPE</code></td>
<td><em>(empty)</em></td>
<td>—</td>
<td>Filter by scope.</td>
</tr>
<tr>
<td><code>--format FORMAT</code></td>
<td><em>(empty)</em></td>
<td>—</td>
<td>Render a context pack in the given format (for example <code>markdown</code>, <code>json</code>). Also accepts <code>--format=FORMAT</code>.</td>
</tr>
<tr>
<td><code>--pack</code></td>
<td>off</td>
<td>—</td>
<td>Shorthand: select the <code>markdown</code> pack format.</td>
</tr>
<tr>
<td><code>--budget=N</code></td>
<td><code>0</code></td>
<td>—</td>
<td>Include the repository map with an N-token budget (enables repo-map only when <code>&gt; 0</code>).</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">Without <code>--format</code>/<code>--pack</code>, prints up to 5 recent sessions and up to 20 recent
observations.</p>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success (including no prior memories); <code>1</code> on render or store
error. <strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex context
cortex context cortex --scope project
cortex context cortex --pack --budget=4096"><pre>cortex context
cortex context cortex --scope project
cortex context cortex --pack --budget=4096</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#36-search">search</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.9 <code>stats</code></h3><a id="user-content-39-stats" class="anchor" aria-label="Permalink: 3.9 stats" href="#39-stats"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex stats"><pre lang="text" class="notranslate"><code>cortex stats
</code></pre></div>
<p dir="auto">Prints sessions, observations, and project totals. Arguments are ignored.</p>
<p dir="auto"><strong>Flags:</strong> none. <strong>Exit codes:</strong> <code>0</code> success, <code>1</code> store error.
<strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Example</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex stats
# Cortex Memory Stats
#   Sessions:     4
#   Observations: 128
#   Projects:     cortex"><pre>cortex stats
<span class="pl-c"><span class="pl-c">#</span> Cortex Memory Stats</span>
<span class="pl-c"><span class="pl-c">#</span>   Sessions:     4</span>
<span class="pl-c"><span class="pl-c">#</span>   Observations: 128</span>
<span class="pl-c"><span class="pl-c">#</span>   Projects:     cortex</span></pre></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.10 <code>timeline</code></h3><a id="user-content-310-timeline" class="anchor" aria-label="Permalink: 3.10 timeline" href="#310-timeline"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex timeline &lt;observation_id&gt; [--before N] [--after N]"><pre lang="text" class="notranslate"><code>cortex timeline &lt;observation_id&gt; [--before N] [--after N]
</code></pre></div>
<p dir="auto">Prints observations adjacent in time around the target, with the target
highlighted.</p>
<p dir="auto"><strong>Arguments</strong></p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Argument</th>
<th>Required</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>&lt;observation_id&gt;</code></td>
<td>yes</td>
<td>Integer observation ID.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Flags</strong></p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--before N</code></td>
<td><code>3</code></td>
<td>—</td>
<td>Older neighbors to show. Must be an integer.</td>
</tr>
<tr>
<td><code>--after N</code></td>
<td><code>3</code></td>
<td>—</td>
<td>Newer neighbors to show. Must be an integer.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success; <code>1</code> for missing/invalid ID, invalid counts, or store
error. <strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex timeline 42
cortex timeline 42 --before 5 --after 10"><pre>cortex timeline 42
cortex timeline 42 --before 5 --after 10</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#311-revisions">revisions</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.11 <code>revisions</code></h3><a id="user-content-311-revisions" class="anchor" aria-label="Permalink: 3.11 revisions" href="#311-revisions"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex revisions &lt;observation_id&gt; [--limit N]"><pre lang="text" class="notranslate"><code>cortex revisions &lt;observation_id&gt; [--limit N]
</code></pre></div>
<p dir="auto">Prints the temporal revision history for an observation.</p>
<p dir="auto"><strong>Arguments</strong></p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Argument</th>
<th>Required</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>&lt;observation_id&gt;</code></td>
<td>yes</td>
<td>Integer observation ID.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Flags</strong></p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--limit N</code></td>
<td><code>20</code></td>
<td>—</td>
<td>Maximum revisions to print. Non-positive values fall back to <code>20</code>.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success (including <code>No revision history found</code>);
<code>1</code> for missing/invalid ID or store error. <strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex revisions 42
cortex revisions 42 --limit 100"><pre>cortex revisions 42
cortex revisions 42 --limit 100</pre></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.12 <code>setup</code></h3><a id="user-content-312-setup" class="anchor" aria-label="Permalink: 3.12 setup" href="#312-setup"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex setup [agent] [flags]
cortex setup ollama [--base-url=URL] [--model=NAME]"><pre lang="text" class="notranslate"><code>cortex setup [agent] [flags]
cortex setup ollama [--base-url=URL] [--model=NAME]
</code></pre></div>
<p dir="auto">With no agent argument, prints detected agents and quick commands.</p>
<p dir="auto"><strong>Arguments</strong></p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Argument</th>
<th>Required</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>[agent]</code></td>
<td>no</td>
<td>One of <code>opencode</code>, <code>claude-code</code>, <code>gemini-cli</code>, <code>codex</code>, <code>ollama</code>.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Flags</strong></p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--profile[=]P</code> / <code>-p P</code></td>
<td><code>mcp.profile</code> (default <code>agent</code>)</td>
<td><code>CORTEX_MCP_PROFILE</code></td>
<td>Install profile: <code>dev</code> (11 tools), <code>minimal</code> (5 tools), <code>agent</code> (22 tools).</td>
</tr>
<tr>
<td><code>--base-url=URL</code></td>
<td><code>http://localhost:11434</code></td>
<td>—</td>
<td><code>setup ollama</code> only: Ollama base URL.</td>
</tr>
<tr>
<td><code>--model=NAME</code></td>
<td><code>nomic-embed-text</code></td>
<td>—</td>
<td><code>setup ollama</code> only: embedding model to configure.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success (including detection-only mode); <code>1</code> on install or
Ollama configuration failure. <strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex setup
cortex setup claude-code --profile=dev
cortex setup ollama --model=nomic-embed-text"><pre>cortex setup
cortex setup claude-code --profile=dev
cortex setup ollama --model=nomic-embed-text</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#327-status--mode">status</a>, <a href="/lleontor705/cortex/blob/v2.4.11/docs/MCP.md">MCP.md</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.13 <code>import</code></h3><a id="user-content-313-import" class="anchor" aria-label="Permalink: 3.13 import" href="#313-import"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex import --from-json --path FILE"><pre lang="text" class="notranslate"><code>cortex import --from-json --path FILE
</code></pre></div>
<p dir="auto">Imports observations from a JSON array file. The input is capped at <strong>50 MiB</strong>
(<code>50 &lt;&lt; 20</code>); the entire batch is privacy-validated before any write.</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--from-json</code></td>
<td><em>(required first token)</em></td>
<td>—</td>
<td>Select the JSON import source.</td>
</tr>
<tr>
<td><code>--path FILE</code></td>
<td><em>(required)</em></td>
<td>—</td>
<td>Input JSON file path.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">Records whose save fails are skipped with a warning; the command still exits <code>0</code>
and reports <code>Imported &lt;saved&gt; of &lt;total&gt; observations from JSON</code>.</p>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success; <code>1</code> for a missing source/<code>--path</code>, unreadable file,
invalid JSON, privacy rejection, or app-open error. <strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex export --output backup.json
cortex import --from-json --path backup.json"><pre>cortex <span class="pl-k">export</span> --output backup.json
cortex import --from-json --path backup.json</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#314-export">export</a>, privacy preflight <a href="#23-privacy-preflight">§2.3</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.14 <code>export</code></h3><a id="user-content-314-export" class="anchor" aria-label="Permalink: 3.14 export" href="#314-export"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex export [--project P] [--output FILE]
cortex export --to-obsidian --vault PATH [flags]"><pre lang="text" class="notranslate"><code>cortex export [--project P] [--output FILE]
cortex export --to-obsidian --vault PATH [flags]
</code></pre></div>
<p dir="auto">Exports observations to JSON (stdout or a file) or to an Obsidian read-only
projection.</p>
<p dir="auto"><strong>Flags</strong></p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--project P</code></td>
<td><em>(empty)</em></td>
<td>—</td>
<td>Filter by project. Also accepts <code>--project=P</code>.</td>
</tr>
<tr>
<td><code>--output FILE</code></td>
<td><em>(stdout)</em></td>
<td>—</td>
<td>Write JSON to <code>FILE</code> (mode <code>0600</code>). Also accepts <code>--output=FILE</code>.</td>
</tr>
<tr>
<td><code>--to-obsidian</code></td>
<td>off</td>
<td>—</td>
<td>Switch to the Obsidian projection.</td>
</tr>
<tr>
<td><code>--vault PATH</code></td>
<td><em>(required with <code>--to-obsidian</code>)</em></td>
<td>—</td>
<td>Target vault directory.</td>
</tr>
<tr>
<td><code>--include-personal</code></td>
<td>off</td>
<td>—</td>
<td>Include personal-scope observations in the projection.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">The JSON export lists up to 10,000 observations.</p>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success; <code>1</code> for store/write/marshal errors, or
<code>--to-obsidian</code> without <code>--vault</code>. <strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex export --project cortex --output cortex.json
cortex export --to-obsidian --vault ~/vault/synapse --project cortex"><pre>cortex <span class="pl-k">export</span> --project cortex --output cortex.json
cortex <span class="pl-k">export</span> --to-obsidian --vault <span class="pl-k">~</span>/vault/synapse --project cortex</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#313-import">import</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.15 <code>sync</code></h3><a id="user-content-315-sync" class="anchor" aria-label="Permalink: 3.15 sync" href="#315-sync"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex sync [--import | --status | --all] [--project P]
cortex sync --remote"><pre lang="text" class="notranslate"><code>cortex sync [--import | --status | --all] [--project P]
cortex sync --remote
</code></pre></div>
<p dir="auto">Synchronizes observations through file chunks (default: export) or remote
replication.</p>
<p dir="auto"><strong>Flags</strong></p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--import</code></td>
<td>off</td>
<td>—</td>
<td>Import pending chunks instead of exporting.</td>
</tr>
<tr>
<td><code>--status</code></td>
<td>off</td>
<td>—</td>
<td>Print local/remote chunk counts and pending imports.</td>
</tr>
<tr>
<td><code>--all</code></td>
<td>off</td>
<td>—</td>
<td>Export all projects (no project auto-detection).</td>
</tr>
<tr>
<td><code>--project P</code></td>
<td><em>(auto-detected)</em></td>
<td>—</td>
<td>Restrict to a project.</td>
</tr>
<tr>
<td><code>--remote</code></td>
<td>off</td>
<td>—</td>
<td>Replicate against the configured remote endpoint (<code>sync.url</code>).</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">Default (no <code>--import</code>/<code>--status</code>/<code>--remote</code>): exports a chunk for the detected
project. <code>--remote</code> requires <code>sync.url</code>; the bearer is resolved from
<code>sync.token_env</code> (default <code>CORTEX_REMOTE_TOKEN</code>), falling back to <code>http.token</code>.</p>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success; <code>1</code> for missing remote URL, sync errors, or app-open
failure. <strong>Authentication:</strong> remote replication requires a bearer; file transport
requires none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex sync --status
cortex sync --all
cortex sync --remote"><pre>cortex sync --status
cortex sync --all
cortex sync --remote</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="/lleontor705/cortex/blob/v2.4.11/docs/CONFIGURATION.md">CONFIGURATION.md</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.16 <code>merge-projects</code></h3><a id="user-content-316-merge-projects" class="anchor" aria-label="Permalink: 3.16 merge-projects" href="#316-merge-projects"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex merge-projects --from &quot;Name1,Name2&quot; --to canonical-name [--dry-run]"><pre lang="text" class="notranslate"><code>cortex merge-projects --from "Name1,Name2" --to canonical-name [--dry-run]
</code></pre></div>
<p dir="auto">Merges project-name variants into one canonical name.</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--from LIST</code></td>
<td><em>(required)</em></td>
<td>—</td>
<td>Comma-separated source names.</td>
</tr>
<tr>
<td><code>--to NAME</code></td>
<td><em>(required)</em></td>
<td>—</td>
<td>Canonical target name.</td>
</tr>
<tr>
<td><code>--dry-run</code></td>
<td>off</td>
<td>—</td>
<td>Print the planned merge without writing.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success (including dry run); <code>1</code> for missing <code>--from</code>/<code>--to</code>
or merge error. <strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex merge-projects --from &quot;cortex,cortex-ia&quot; --to cortex --dry-run
cortex merge-projects --from &quot;cortex,cortex-ia&quot; --to cortex"><pre>cortex merge-projects --from <span class="pl-s"><span class="pl-pds">"</span>cortex,cortex-ia<span class="pl-pds">"</span></span> --to cortex --dry-run
cortex merge-projects --from <span class="pl-s"><span class="pl-pds">"</span>cortex,cortex-ia<span class="pl-pds">"</span></span> --to cortex</pre></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.17 <code>reindex</code></h3><a id="user-content-317-reindex" class="anchor" aria-label="Permalink: 3.17 reindex" href="#317-reindex"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex reindex [--project P]"><pre lang="text" class="notranslate"><code>cortex reindex [--project P]
</code></pre></div>
<p dir="auto">Regenerates vector embeddings for observations using the configured embedding
provider. Requires a configured embedding provider and a healthy vector store
(build with <code>-tags cortex_vectors</code> for the SQLite BLOB adapter). Processes up to
<strong>5000</strong> observations per run and prints progress every 50.</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--project P</code></td>
<td><em>(all projects)</em></td>
<td>—</td>
<td>Restrict reindexing to one project.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">When the provider is <code>ollama</code> and <code>search.ollama_auto_start</code> is true, the command
starts Ollama and pulls the model if missing.</p>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success (including zero observations); <code>1</code> when no embedding
provider is configured, the vector store is unavailable, or an error occurs.
<strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex reindex
cortex reindex --project cortex"><pre>cortex reindex
cortex reindex --project cortex</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#323-code"><code>code scan</code></a>, <a href="/lleontor705/cortex/blob/v2.4.11/docs/CONFIGURATION.md">CONFIGURATION.md</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.18 <code>doctor</code></h3><a id="user-content-318-doctor" class="anchor" aria-label="Permalink: 3.18 doctor" href="#318-doctor"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex doctor
cortex doctor --server [URL]"><pre lang="text" class="notranslate"><code>cortex doctor
cortex doctor --server [URL]
</code></pre></div>
<p dir="auto">Runs local health checks, or probes a running server when <code>--server</code> is given.</p>
<p dir="auto"><strong>Flags</strong></p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--server [URL]</code></td>
<td>off; URL default <code>http://localhost:7438</code></td>
<td><code>CORTEX_HTTP_TOKEN</code> (for the bearer probe)</td>
<td>Probe a server instead of the local store. If the next token does not start with <code>-</code>, it is used as the base URL.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">Local checks: operating mode, database, FTS5 search, knowledge graph, vector
store, embeddings, orphan ratio, code AST index, Ollama daemon, and a
vendor-key isolation notice. Any failing check counts as an issue and the command
exits <code>1</code>.</p>
<p dir="auto">Server checks: <code>/health</code> (HTTP 200), optional bearer verification against <code>/mcp</code>
when <code>CORTEX_HTTP_TOKEN</code> (or <code>CORTEX_REMOTE_TOKEN</code>) is set, and an embedded web UI
probe. A server-side probe failure is informational and does not change the
exit-code semantics of the informational line.</p>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> all checks passed; <code>1</code> one or more issues.
<strong>Authentication:</strong> none locally; the server probe uses <code>CORTEX_HTTP_TOKEN</code>.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex doctor
cortex doctor --server
cortex doctor --server http://localhost:7438"><pre>cortex doctor
cortex doctor --server
cortex doctor --server http://localhost:7438</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#327-status--mode"><code>status</code></a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.19 <code>gc</code></h3><a id="user-content-319-gc" class="anchor" aria-label="Permalink: 3.19 gc" href="#319-gc"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex gc [--days N]"><pre lang="text" class="notranslate"><code>cortex gc [--days N]
</code></pre></div>
<p dir="auto">Hard-deletes soft-deleted/archived observations older than <code>N</code> days (up to 1000
candidates per run).</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--days N</code></td>
<td><code>90</code></td>
<td>—</td>
<td>Age cutoff in days. Only positive integers are accepted; invalid values are ignored.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success (including <code>Nothing to collect.</code>); <code>1</code> on list or
delete error. <strong>Authentication:</strong> none. <strong>Warning:</strong> this is a destructive
operation.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex gc
cortex gc --days 30"><pre>cortex gc
cortex gc --days 30</pre></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.20 <code>backup</code></h3><a id="user-content-320-backup" class="anchor" aria-label="Permalink: 3.20 backup" href="#320-backup"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex backup [path]"><pre lang="text" class="notranslate"><code>cortex backup [path]
</code></pre></div>
<p dir="auto">Creates an atomic online snapshot of the SQLite database using <code>VACUUM INTO</code>.</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Argument</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>[path]</code></td>
<td><code>cortex-backup-&lt;YYYYMMDD-HHMMSS&gt;.db</code></td>
<td>—</td>
<td>Destination path. An existing target is removed first.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success; <code>1</code> on path resolution, app-open, or backup error.
<strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex backup
cortex backup ~/backups/cortex.db"><pre>cortex backup
cortex backup <span class="pl-k">~</span>/backups/cortex.db</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#328-migrate">migrate</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.21 <code>watch</code></h3><a id="user-content-321-watch" class="anchor" aria-label="Permalink: 3.21 watch" href="#321-watch"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex watch [path] [--project NAME]"><pre lang="text" class="notranslate"><code>cortex watch [path] [--project NAME]
</code></pre></div>
<p dir="auto">Watches a repository and incrementally re-indexes AST symbols on file
create/change/delete until interrupted (Ctrl+C). Prints <code>👀 Cortex File Watcher activo en …</code> on start and <code>🛑 File Watcher detenido.</code> on stop (the watcher's live
progress strings are currently Spanish; this is a known cosmetic quirk).</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Argument / Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>[path]</code></td>
<td><code>.</code></td>
<td>—</td>
<td>Directory to watch (resolved to an absolute path).</td>
</tr>
<tr>
<td><code>--project NAME</code> / <code>--project=NAME</code></td>
<td>auto-detected, else <code>default</code></td>
<td>—</td>
<td>Project name for indexed symbols.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> clean stop; <code>1</code> on directory resolution, app-open, or watcher
error. <strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex watch
cortex watch ./internal --project cortex"><pre>cortex watch
cortex watch ./internal --project cortex</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#322-ingest">ingest</a>, <a href="#323-code"><code>code scan</code></a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.22 <code>ingest</code></h3><a id="user-content-322-ingest" class="anchor" aria-label="Permalink: 3.22 ingest" href="#322-ingest"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex ingest [path] [--project NAME] [--max-files N]"><pre lang="text" class="notranslate"><code>cortex ingest [path] [--project NAME] [--max-files N]
</code></pre></div>
<p dir="auto">Scans a codebase once with the Zero-CGO static AST extractor, persists symbols and
relations, and prints Graphify analytics (files, cohesion, god nodes, import
cycles).</p>
<p dir="auto"><strong>Arguments / Flags</strong></p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Argument / Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>[path]</code></td>
<td><code>.</code></td>
<td>—</td>
<td>Directory to scan.</td>
</tr>
<tr>
<td><code>--project NAME</code> / <code>-p NAME</code></td>
<td>auto-detected, else <code>default</code></td>
<td>—</td>
<td>Project name.</td>
</tr>
<tr>
<td><code>--max-files N</code> / <code>-m N</code></td>
<td><code>500</code></td>
<td>—</td>
<td>Maximum files to scan. Only positive integers are accepted.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success; <code>1</code> on extraction, app-open, or save error.
<strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex ingest
cortex ingest ./internal --project cortex --max-files 200"><pre>cortex ingest
cortex ingest ./internal --project cortex --max-files 200</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#323-code"><code>code scan</code></a>, <a href="#321-watch">watch</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.23 <code>code</code></h3><a id="user-content-323-code" class="anchor" aria-label="Permalink: 3.23 code" href="#323-code"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex code &lt;subcommand&gt; [arguments] [flags]"><pre lang="text" class="notranslate"><code>cortex code &lt;subcommand&gt; [arguments] [flags]
</code></pre></div>
<p dir="auto">Code AST intelligence. <code>cortex code</code>, <code>cortex code help</code>, <code>cortex code --help</code>,
and <code>cortex code -h</code> print the subcommand list and exit <code>0</code>.</p>
<p dir="auto">Subcommands:</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Subcommand</th>
<th>Purpose</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#code-scan"><code>scan</code></a></td>
<td>Scan a repository and index AST symbols (same as <code>ingest</code>).</td>
</tr>
<tr>
<td><a href="#code-symbols"><code>symbols</code></a></td>
<td>List indexed symbols.</td>
</tr>
<tr>
<td><a href="#code-analyze"><code>analyze</code></a></td>
<td>Run Graphify architectural analytics.</td>
</tr>
<tr>
<td><a href="#code-impact"><code>impact</code></a></td>
<td>Calculate the blast radius of a symbol or file.</td>
</tr>
<tr>
<td><a href="#code-diff"><code>diff</code></a></td>
<td>Blast radius of uncommitted Git changes.</td>
</tr>
<tr>
<td><a href="#code-graph"><code>graph</code></a></td>
<td>Export/visualize the dependency graph.</td>
</tr>
<tr>
<td><a href="#code-map"><code>map</code></a></td>
<td>Generate a token-budgeted repo map.</td>
</tr>
<tr>
<td><a href="#code-tests"><code>tests</code></a></td>
<td>Find impacted test files/functions.</td>
</tr>
<tr>
<td><a href="#code-find"><code>find</code></a></td>
<td>Search symbols by substring or regex.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">All subcommands default <code>--project</code> to <code>default</code> unless noted.</p>
<div class="markdown-heading" dir="auto"><h4 tabindex="-1" class="heading-element" dir="auto"><code>code scan</code></h4><a id="user-content-code-scan" class="anchor" aria-label="Permalink: code scan" href="#code-scan"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex code scan [path] [--project=NAME] [--max-files=N]"><pre lang="text" class="notranslate"><code>cortex code scan [path] [--project=NAME] [--max-files=N]
</code></pre></div>
<p dir="auto">Delegates to <a href="#322-ingest"><code>ingest</code></a>; identical flags and defaults
(<code>--max-files</code> default <code>500</code>).</p>
<div class="markdown-heading" dir="auto"><h4 tabindex="-1" class="heading-element" dir="auto"><code>code symbols</code></h4><a id="user-content-code-symbols" class="anchor" aria-label="Permalink: code symbols" href="#code-symbols"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex code symbols [--project=NAME] [--kind=KIND] [--file=PATH]"><pre lang="text" class="notranslate"><code>cortex code symbols [--project=NAME] [--kind=KIND] [--file=PATH]
</code></pre></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--project=NAME</code></td>
<td><code>default</code></td>
<td>—</td>
<td>Project name.</td>
</tr>
<tr>
<td><code>--kind=KIND</code></td>
<td><em>(empty)</em></td>
<td>—</td>
<td>Filter by symbol kind.</td>
</tr>
<tr>
<td><code>--file=PATH</code></td>
<td><em>(empty)</em></td>
<td>—</td>
<td>Filter by file path.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">Lists up to 100 symbols.</p>
<div class="markdown-heading" dir="auto"><h4 tabindex="-1" class="heading-element" dir="auto"><code>code analyze</code></h4><a id="user-content-code-analyze" class="anchor" aria-label="Permalink: code analyze" href="#code-analyze"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex code analyze [--project=NAME]"><pre lang="text" class="notranslate"><code>cortex code analyze [--project=NAME]
</code></pre></div>
<p dir="auto">Prints totals, average cohesion, god nodes, and import cycles.</p>
<div class="markdown-heading" dir="auto"><h4 tabindex="-1" class="heading-element" dir="auto"><code>code impact</code></h4><a id="user-content-code-impact" class="anchor" aria-label="Permalink: code impact" href="#code-impact"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex code impact &lt;target&gt; [--project=NAME] [--hops=N] [--json]"><pre lang="text" class="notranslate"><code>cortex code impact &lt;target&gt; [--project=NAME] [--hops=N] [--json]
</code></pre></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flags/Args</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>&lt;target&gt;</code></td>
<td><em>(required)</em></td>
<td>—</td>
<td>Symbol name, ID, or file path.</td>
</tr>
<tr>
<td><code>--project=NAME</code></td>
<td><code>default</code></td>
<td>—</td>
<td>Project name.</td>
</tr>
<tr>
<td><code>--hops=N</code></td>
<td><code>3</code></td>
<td>—</td>
<td>Traversal depth.</td>
</tr>
<tr>
<td><code>--json</code></td>
<td>off</td>
<td>—</td>
<td>Emit JSON.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><code>blast-radius</code> is an alias for <code>impact</code>.</p>
<div class="markdown-heading" dir="auto"><h4 tabindex="-1" class="heading-element" dir="auto"><code>code diff</code></h4><a id="user-content-code-diff" class="anchor" aria-label="Permalink: code diff" href="#code-diff"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex code diff [--staged] [--project=NAME] [--hops=N] [--json]"><pre lang="text" class="notranslate"><code>cortex code diff [--staged] [--project=NAME] [--hops=N] [--json]
</code></pre></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--staged</code> / <code>--cached</code></td>
<td>off</td>
<td>—</td>
<td>Analyze the Git staging area instead of the working tree.</td>
</tr>
<tr>
<td><code>--project=NAME</code></td>
<td><code>default</code></td>
<td>—</td>
<td>Project name.</td>
</tr>
<tr>
<td><code>--hops=N</code></td>
<td><code>3</code></td>
<td>—</td>
<td>Traversal depth.</td>
</tr>
<tr>
<td><code>--json</code></td>
<td>off</td>
<td>—</td>
<td>Emit JSON.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">Requires <code>git</code> and a Git repository.</p>
<div class="markdown-heading" dir="auto"><h4 tabindex="-1" class="heading-element" dir="auto"><code>code graph</code></h4><a id="user-content-code-graph" class="anchor" aria-label="Permalink: code graph" href="#code-graph"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex code graph [--project=NAME] [--format=mermaid] [--symbol=S] [--hops=N] [--max-nodes=N]"><pre lang="text" class="notranslate"><code>cortex code graph [--project=NAME] [--format=mermaid] [--symbol=S] [--hops=N] [--max-nodes=N]
</code></pre></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--project=NAME</code></td>
<td><code>default</code></td>
<td>—</td>
<td>Project name.</td>
</tr>
<tr>
<td><code>--format=F</code></td>
<td><code>mermaid</code></td>
<td>—</td>
<td>Output format: <code>mermaid</code>, <code>ascii</code> (alias <code>tree</code>), <code>json</code>. Unknown formats exit <code>1</code>.</td>
</tr>
<tr>
<td><code>--symbol=S</code></td>
<td><em>(empty)</em></td>
<td>—</td>
<td>Root symbol to center the graph on.</td>
</tr>
<tr>
<td><code>--hops=N</code></td>
<td><code>2</code></td>
<td>—</td>
<td>Traversal depth when a root symbol is given.</td>
</tr>
<tr>
<td><code>--max-nodes=N</code></td>
<td><code>50</code></td>
<td>—</td>
<td>Maximum nodes.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<div class="markdown-heading" dir="auto"><h4 tabindex="-1" class="heading-element" dir="auto"><code>code map</code></h4><a id="user-content-code-map" class="anchor" aria-label="Permalink: code map" href="#code-map"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex code map [--project=NAME] [--budget=N]"><pre lang="text" class="notranslate"><code>cortex code map [--project=NAME] [--budget=N]
</code></pre></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--project=NAME</code></td>
<td><code>default</code></td>
<td>—</td>
<td>Project name.</td>
</tr>
<tr>
<td><code>--budget=N</code></td>
<td><code>2048</code></td>
<td>—</td>
<td>Token budget.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><code>repo-map</code> is an alias for <code>map</code>.</p>
<div class="markdown-heading" dir="auto"><h4 tabindex="-1" class="heading-element" dir="auto"><code>code tests</code></h4><a id="user-content-code-tests" class="anchor" aria-label="Permalink: code tests" href="#code-tests"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex code tests &lt;target&gt; [--project=NAME] [--hops=N] [--json]"><pre lang="text" class="notranslate"><code>cortex code tests &lt;target&gt; [--project=NAME] [--hops=N] [--json]
</code></pre></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flags/Args</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>&lt;target&gt;</code></td>
<td><em>(required)</em></td>
<td>—</td>
<td>Symbol name, ID, or file path.</td>
</tr>
<tr>
<td><code>--project=NAME</code></td>
<td><code>default</code></td>
<td>—</td>
<td>Project name.</td>
</tr>
<tr>
<td><code>--hops=N</code></td>
<td><code>3</code></td>
<td>—</td>
<td>Traversal depth.</td>
</tr>
<tr>
<td><code>--json</code></td>
<td>off</td>
<td>—</td>
<td>Emit JSON.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><code>test-map</code> and <code>impacted-tests</code> are aliases for <code>tests</code>.</p>
<div class="markdown-heading" dir="auto"><h4 tabindex="-1" class="heading-element" dir="auto"><code>code find</code></h4><a id="user-content-code-find" class="anchor" aria-label="Permalink: code find" href="#code-find"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex code find &lt;query&gt; [--project=NAME] [--kind=K] [--file=PATH] [--limit=N] [--regex] [--json]"><pre lang="text" class="notranslate"><code>cortex code find &lt;query&gt; [--project=NAME] [--kind=K] [--file=PATH] [--limit=N] [--regex] [--json]
</code></pre></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flags/Args</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>&lt;query&gt;</code></td>
<td><em>(required)</em></td>
<td>—</td>
<td>Substring or regex query.</td>
</tr>
<tr>
<td><code>--project=NAME</code></td>
<td><code>default</code></td>
<td>—</td>
<td>Project name.</td>
</tr>
<tr>
<td><code>--kind=K</code></td>
<td><em>(empty)</em></td>
<td>—</td>
<td>Filter by symbol kind.</td>
</tr>
<tr>
<td><code>--file=PATH</code></td>
<td><em>(empty)</em></td>
<td>—</td>
<td>Filter by file path.</td>
</tr>
<tr>
<td><code>--limit=N</code></td>
<td><code>50</code></td>
<td>—</td>
<td>Maximum results.</td>
</tr>
<tr>
<td><code>--regex</code></td>
<td>off</td>
<td>—</td>
<td>Treat the query as a regular expression.</td>
</tr>
<tr>
<td><code>--json</code></td>
<td>off</td>
<td>—</td>
<td>Emit JSON.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><code>search-symbols</code> is an alias for <code>find</code>.</p>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success; <code>1</code> for missing required targets/queries, unknown
formats, unknown subcommands, or store errors. <strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex code scan . --project cortex
cortex code symbols --project cortex --kind func
cortex code impact CalculateBlastRadius --project cortex --hops=2
cortex code diff --staged --json
cortex code graph --project cortex --format=ascii --max-nodes=30
cortex code tests CalculateBlastRadius
cortex code find &quot;RepoMap&quot; --project cortex --regex"><pre>cortex code scan <span class="pl-c1">.</span> --project cortex
cortex code symbols --project cortex --kind func
cortex code impact CalculateBlastRadius --project cortex --hops=2
cortex code diff --staged --json
cortex code graph --project cortex --format=ascii --max-nodes=30
cortex code tests CalculateBlastRadius
cortex code find <span class="pl-s"><span class="pl-pds">"</span>RepoMap<span class="pl-pds">"</span></span> --project cortex --regex</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#322-ingest">ingest</a>, <a href="#321-watch">watch</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.24 <code>config</code></h3><a id="user-content-324-config" class="anchor" aria-label="Permalink: 3.24 config" href="#324-config"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex config &lt;subcommand&gt; [arguments] [flags]"><pre lang="text" class="notranslate"><code>cortex config &lt;subcommand&gt; [arguments] [flags]
</code></pre></div>
<p dir="auto">Manages configuration without editing files by hand.</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Subcommand</th>
<th>Purpose</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>get &lt;key&gt; [--file=PATH]</code></td>
<td>Print one value.</td>
</tr>
<tr>
<td><code>set &lt;key&gt; &lt;value&gt; [--file=PATH] [--format=FMT]</code></td>
<td>Set a value and persist.</td>
</tr>
<tr>
<td><code>show</code> / <code>print</code></td>
<td>Print the active config (<code>--format</code> <code>yaml</code> default or <code>json</code>; secrets masked).</td>
</tr>
<tr>
<td><code>validate</code></td>
<td>Validate a config file.</td>
</tr>
<tr>
<td><code>init</code></td>
<td>Write a minimal config file.</td>
</tr>
<tr>
<td><code>path</code></td>
<td>Print the resolved config file path.</td>
</tr>
<tr>
<td><code>wizard</code> / <code>interactive</code></td>
<td>Launch the configuration wizard.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Applies to</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--file PATH</code> / <code>-f</code> / <code>--config</code></td>
<td><code>get</code>, <code>set</code>, <code>show</code>, <code>validate</code></td>
<td><em>(discovered)</em></td>
<td>—</td>
<td>Explicit config file. Also accepts <code>--file=PATH</code> / <code>--config=PATH</code>.</td>
</tr>
<tr>
<td><code>--format FMT</code></td>
<td><code>show</code>, <code>init</code>, <code>set</code></td>
<td><code>yaml</code></td>
<td>—</td>
<td><code>yaml</code> or <code>json</code> for <code>show</code>; <code>yaml</code>/<code>json</code>/<code>toml</code> extension for <code>set</code>/<code>init</code>.</td>
</tr>
<tr>
<td><code>--force</code> / <code>-f</code></td>
<td><code>init</code></td>
<td>off</td>
<td>—</td>
<td>Overwrite an existing file.</td>
</tr>
<tr>
<td><code>-o PATH</code> / <code>--output PATH</code></td>
<td><code>init</code></td>
<td><em>(default config dir)</em></td>
<td>—</td>
<td>Output path.</td>
</tr>
<tr>
<td><code>--cli</code></td>
<td><code>wizard</code></td>
<td>off</td>
<td>—</td>
<td>Force the CLI wizard.</td>
</tr>
<tr>
<td><code>--tui</code></td>
<td><code>wizard</code></td>
<td>off</td>
<td>—</td>
<td>Force the TUI wizard.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">When <code>wizard</code> is run with neither flag, it launches the TUI wizard if stdout is a
terminal; otherwise it falls back to the CLI summary.</p>
<p dir="auto">Settable keys (via <code>get</code>/<code>set</code>): <code>ai.provider</code> (alias <code>llm.provider</code>), <code>ai.model</code>,
<code>ai.base_url</code>, <code>database.path</code>, <code>database.in_memory</code>, <code>http.enabled</code>,
<code>http.port</code>, <code>http.host</code>, <code>http.token</code>, <code>logging.level</code>, <code>logging.format</code>,
<code>search.embedding_provider</code> (alias <code>embedding.provider</code>),
<code>search.embedding_model</code>, <code>search.embedding_base_url</code>, <code>search.vector</code>,
<code>search.fts5</code>, <code>search.ollama_auto_start</code>, <code>mcp.enabled</code>, <code>mcp.profile</code>,
<code>mcp.remote.enabled</code>, <code>mcp.remote.url</code>, <code>mcp.remote.token_env</code>, <code>sync.enabled</code>,
<code>sync.url</code>, <code>sync.token_env</code>, <code>sync.interval</code>, <code>memory.auto_archive_days</code>,
<code>memory.importance_decay_half_life</code>, <code>memory.min_archive_score</code>, <code>vector.provider</code>.</p>
<p dir="auto"><code>config show</code> masks <code>http.token</code>, <code>vector.qdrant.api_key</code>,
<code>server.secrets.signing_key</code>, and <code>server.secrets.oidc_client_secret</code>.</p>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success; <code>1</code> for a missing/unknown subcommand or key,
invalid value, or load/save error. <strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex config path
cortex config get http.port
cortex config set http.port 8080
cortex config set mcp.profile minimal
cortex config show --format=json
cortex config validate --file ./cortex.yaml
cortex config init --format=toml --force
cortex config wizard --cli"><pre>cortex config path
cortex config get http.port
cortex config <span class="pl-c1">set</span> http.port 8080
cortex config <span class="pl-c1">set</span> mcp.profile minimal
cortex config show --format=json
cortex config validate --file ./cortex.yaml
cortex config init --format=toml --force
cortex config wizard --cli</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="/lleontor705/cortex/blob/v2.4.11/docs/CONFIGURATION.md">CONFIGURATION.md</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.25 <code>auth</code></h3><a id="user-content-325-auth" class="anchor" aria-label="Permalink: 3.25 auth" href="#325-auth"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex auth &lt;login|status|logout&gt; [options]"><pre lang="text" class="notranslate"><code>cortex auth &lt;login|status|logout&gt; [options]
</code></pre></div>
<p dir="auto">Manages the local authentication token stored in <code>http.token</code>.</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Subcommand</th>
<th>Flags</th>
<th>Behavior</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>login</code></td>
<td><code>--token TOKEN</code> / <code>-t</code> / <code>--token=TOKEN</code></td>
<td>Persists the token to the loaded config. Requires a non-empty token.</td>
</tr>
<tr>
<td><code>status</code> / <code>whoami</code></td>
<td>none</td>
<td>Prints mode, masked token, principal, and role.</td>
</tr>
<tr>
<td><code>logout</code></td>
<td>none</td>
<td>Clears <code>http.token</code> and saves.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success; <code>1</code> for a missing subcommand, a missing login token,
or a load/save error. <strong>Authentication:</strong> none (this command manages the
credential itself).</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex auth login --token=&lt;bearer&gt;
cortex auth status
cortex auth logout"><pre>cortex auth login --token=<span class="pl-k">&lt;</span>bearer<span class="pl-k">&gt;</span>
cortex auth status
cortex auth <span class="pl-c1">logout</span></pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#5-authentication-matrix">§5 Authentication matrix</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.26 <code>web</code></h3><a id="user-content-326-web" class="anchor" aria-label="Permalink: 3.26 web" href="#326-web"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex web key show [--key-file PATH]
cortex web key regenerate [--key-file PATH]"><pre lang="text" class="notranslate"><code>cortex web key show [--key-file PATH]
cortex web key regenerate [--key-file PATH]
</code></pre></div>
<p dir="auto">Manages the embedded web access key (independent of <code>http.token</code>).</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--key-file PATH</code> / <code>-k</code> / <code>--key-file=PATH</code></td>
<td><code>&lt;config dir&gt;/web.key</code></td>
<td>—</td>
<td>Key file location.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<ul dir="auto">
<li><code>show</code> reports whether a key exists, its file path, and its prefix. It never
prints the plaintext.</li>
<li><code>regenerate</code> rotates the key atomically and prints the new plaintext exactly
once; the previous key is invalidated.</li>
</ul>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success; <code>1</code> for a missing subcommand, an unexpected
argument, or a key store error. <strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex web key show
cortex web key regenerate"><pre>cortex web key show
cortex web key regenerate</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#34-serve">serve</a>, <a href="#17-mode-server"><code>--mode server</code></a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.27 <code>status</code> / <code>mode</code></h3><a id="user-content-327-status--mode" class="anchor" aria-label="Permalink: 3.27 status / mode" href="#327-status--mode"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex status [--json]
cortex mode [--json]"><pre lang="text" class="notranslate"><code>cortex status [--json]
cortex mode [--json]
</code></pre></div>
<p dir="auto">Prints the operational mode, database path, sync status, embeddings, and config
path. <code>mode</code> is an alias for <code>status</code>.</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--json</code></td>
<td>off</td>
<td>—</td>
<td>Emit a JSON object instead of the human-readable block.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">The JSON shape is:</p>
<div class="highlight highlight-source-json notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="{
  &quot;mode&quot;: &quot;local&quot;,
  &quot;description&quot;: &quot;Local (Zero-CGO SQLite Standalone Memory)&quot;,
  &quot;database&quot;: { &quot;path&quot;: &quot;…&quot;, &quot;in_memory&quot;: false },
  &quot;sync&quot;: { &quot;enabled&quot;: false, &quot;url&quot;: &quot;&quot; },
  &quot;embeddings&quot;: &quot;disabled / not configured&quot;,
  &quot;config_path&quot;: &quot;…&quot;
}"><pre>{
  <span class="pl-ent">"mode"</span>: <span class="pl-s"><span class="pl-pds">"</span>local<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"description"</span>: <span class="pl-s"><span class="pl-pds">"</span>Local (Zero-CGO SQLite Standalone Memory)<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"database"</span>: { <span class="pl-ent">"path"</span>: <span class="pl-s"><span class="pl-pds">"</span>…<span class="pl-pds">"</span></span>, <span class="pl-ent">"in_memory"</span>: <span class="pl-c1">false</span> },
  <span class="pl-ent">"sync"</span>: { <span class="pl-ent">"enabled"</span>: <span class="pl-c1">false</span>, <span class="pl-ent">"url"</span>: <span class="pl-s"><span class="pl-pds">"</span><span class="pl-pds">"</span></span> },
  <span class="pl-ent">"embeddings"</span>: <span class="pl-s"><span class="pl-pds">"</span>disabled / not configured<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"config_path"</span>: <span class="pl-s"><span class="pl-pds">"</span>…<span class="pl-pds">"</span></span>
}</pre></div>
<p dir="auto">The effective mode is resolved from <code>CORTEX_MODE</code>, then <code>server.storage.dsn</code>, then
<code>sync.enabled</code> + <code>sync.url</code>, then <code>local</code>.</p>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success. <strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex status
cortex status --json
cortex mode --json"><pre>cortex status
cortex status --json
cortex mode --json</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#318-doctor">doctor</a>, <a href="#12-the-mode-triad">§1.2 mode triad</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.28 <code>migrate</code></h3><a id="user-content-328-migrate" class="anchor" aria-label="Permalink: 3.28 migrate" href="#328-migrate"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex migrate &lt;up|down|status&gt; [--target VERSION]"><pre lang="text" class="notranslate"><code>cortex migrate &lt;up|down|status&gt; [--target VERSION]
</code></pre></div>
<p dir="auto">Manages database migrations.</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Subcommand</th>
<th>Behavior</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>up</code></td>
<td>Apply all pending migrations.</td>
</tr>
<tr>
<td><code>down [--target N]</code></td>
<td>Roll back to version <code>N</code> (default <code>0</code>).</td>
</tr>
<tr>
<td><code>status</code></td>
<td>Print each migration's version, name, and applied timestamp.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--target N</code></td>
<td><code>0</code></td>
<td>—</td>
<td>Target version for <code>down</code>.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">The local v2 baseline is forward-only. <code>migrate down</code> is not a supported normal
operation and existing v2 databases must not be downgraded automatically.</p>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success; <code>1</code> for a missing/unknown subcommand, an invalid
target, or a migration error. <strong>Authentication:</strong> none.</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex migrate status
cortex migrate up"><pre>cortex migrate status
cortex migrate up</pre></div>
<p dir="auto"><strong>See also:</strong> <a href="#320-backup">backup</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">3.29 <code>update</code></h3><a id="user-content-329-update" class="anchor" aria-label="Permalink: 3.29 update" href="#329-update"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><strong>Synopsis</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cortex update [--check]"><pre lang="text" class="notranslate"><code>cortex update [--check]
</code></pre></div>
<p dir="auto">Updates Cortex to the latest release, or checks for one.</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Default</th>
<th>Environment override</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--check</code> / <code>-c</code></td>
<td>off</td>
<td>—</td>
<td>Report the latest release without installing.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">When a newer release exists, <code>--check</code> prints the version, release notes, and
release page. Without <code>--check</code>, a self-update is attempted.</p>
<p dir="auto"><strong>Exit codes:</strong> <code>0</code> success (including up-to-date); <code>1</code> when the update fails.
<strong>Authentication:</strong> none (uses the public release channel).</p>
<p dir="auto"><strong>Examples</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="cortex update --check
cortex update"><pre>cortex update --check
cortex update</pre></div>
<hr>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4. Environment-variable index</h2><a id="user-content-4-environment-variable-index" class="anchor" aria-label="Permalink: 4. Environment-variable index" href="#4-environment-variable-index"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">Cortex resolves configuration from the config file first, then from environment
variables. Every configuration key is automatically addressable as
<code>CORTEX_</code> + the upper-cased key with <code>.</code> replaced by <code>_</code> (viper
<code>AutomaticEnv</code> with the <code>CORTEX</code> prefix). For example <code>http.port</code> becomes
<code>CORTEX_HTTP_PORT</code>. The variables below are listed alphabetically; the
"Default" column is the effective default when neither a config file nor the
variable is set.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">4.1 Core and identity</h3><a id="user-content-41-core-and-identity" class="anchor" aria-label="Permalink: 4.1 Core and identity" href="#41-core-and-identity"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Variable</th>
<th>Config key</th>
<th>Default</th>
<th>Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>CORTEX_MODE</code></td>
<td>—</td>
<td><em>(empty → <code>local</code>)</em></td>
<td>Selects the mode triad: <code>local</code>, <code>hybrid</code>, <code>server</code>.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_NAME</code></td>
<td><code>server.name</code></td>
<td><code>cortex</code></td>
<td>Server name.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_VERSION</code></td>
<td><code>server.version</code></td>
<td><code>2.0.0</code></td>
<td>Server version label.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_TENANT_ID</code></td>
<td><code>server.tenant_id</code></td>
<td><em>(empty)</em></td>
<td>Tenant UUID bound to the synthetic principal. Required in server mode.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_WORKSPACE_ID</code></td>
<td><code>server.workspace_id</code></td>
<td><em>(empty)</em></td>
<td>Default workspace UUID. Required in server mode.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_PRINCIPAL_SUBJECT</code></td>
<td><code>server.principal_subject</code></td>
<td><em>(empty)</em></td>
<td>Subject UUID of the synthetic constant principal. Required in server mode.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_ROLES</code></td>
<td><code>server.roles</code></td>
<td><code>[]</code></td>
<td>Comma-separated roles for the configured principal.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_SCOPES</code></td>
<td><code>server.scopes</code></td>
<td><code>[]</code></td>
<td>Comma-separated authorized scopes.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_PROJECT_IDS</code></td>
<td><code>server.project_ids</code></td>
<td><code>[]</code></td>
<td>Comma-separated project IDs.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_CLASSIFICATION_CLEARANCE</code></td>
<td><code>server.classification_clearance</code></td>
<td><code>[]</code></td>
<td>Comma-separated classification clearance labels.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_GRANT_DIGEST</code></td>
<td><code>server.grant_digest</code></td>
<td><code>""</code></td>
<td>Deprecated; calculated dynamically by PostgreSQL.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_GRANT_VERSION</code></td>
<td><code>server.grant_version</code></td>
<td><code>0</code></td>
<td>Deprecated; provisioned dynamically by PostgreSQL.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_SECRETS_SIGNING_KEY</code></td>
<td><code>server.secrets.signing_key</code></td>
<td><code>""</code></td>
<td>Server signing secret. Masked by <code>config show</code>.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_SECRETS_OIDC_CLIENT_SECRET</code></td>
<td><code>server.secrets.oidc_client_secret</code></td>
<td><code>""</code></td>
<td>OIDC client secret. Masked by <code>config show</code>.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">4.2 Server storage and startup</h3><a id="user-content-42-server-storage-and-startup" class="anchor" aria-label="Permalink: 4.2 Server storage and startup" href="#42-server-storage-and-startup"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Variable</th>
<th>Config key</th>
<th>Default</th>
<th>Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>CORTEX_SERVER_STORAGE_DRIVER</code></td>
<td><code>server.storage.driver</code></td>
<td><code>postgres</code></td>
<td>Persistence driver (<code>postgres</code> server / <code>sqlite</code> local).</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_STORAGE_DSN</code></td>
<td><code>server.storage.dsn</code></td>
<td><em>(empty)</em></td>
<td>Non-privileged runtime PostgreSQL DSN.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_STORAGE_MIGRATION_DSN</code></td>
<td><code>server.storage.migration_dsn</code></td>
<td><em>(empty)</em></td>
<td>Privileged migration DSN. Runtime and migration roles must differ.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_STORAGE_MAX_CONNS</code></td>
<td><code>server.storage.max_conns</code></td>
<td><code>10</code></td>
<td>Maximum pool connections.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_PROVIDER_EMBEDDING</code></td>
<td><code>server.provider.embedding</code></td>
<td><code>none</code></td>
<td>Server embedding provider selection.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_PROVIDER_VECTOR</code></td>
<td><code>server.provider.vector</code></td>
<td><code>none</code></td>
<td>Server vector provider selection.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_RAILWAY_INTERNAL_EMBEDDING_HOST</code></td>
<td><code>server.railway_internal_embedding_host</code></td>
<td><code>""</code></td>
<td>Railway private hostname allowed for HTTP embeddings.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_BOOTSTRAP_DEVELOPMENT</code></td>
<td><code>server.bootstrap_development</code></td>
<td><code>false</code> (opt-in; production-unsafe)</td>
<td>Development-only mode that reuses the runtime DSN for migrations when a dedicated migration role is not separated. The compose files ship it as the default source for containers; never enable it in a shared deployment.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_AUTO_BOOTSTRAP</code></td>
<td><em>(compose/entrypoint only)</em></td>
<td><code>true</code> in compose</td>
<td>Enables the container entrypoint's automatic bootstrap path.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_PRINT_BOOTSTRAP</code></td>
<td><em>(entrypoint only)</em></td>
<td><code>false</code> (opt-in; production-unsafe)</td>
<td>Gates echoing the bootstrap bearer into container logs. Leave unset in production; the bearer is otherwise written only to the state file.</td>
</tr>
<tr>
<td><code>CORTEX_BOOTSTRAP_STATE_FILE</code></td>
<td><em>(entrypoint only)</em></td>
<td><code>/home/cortex/.cortex/server-bootstrap.env</code></td>
<td>Persisted bootstrap state location in the container.</td>
</tr>
<tr>
<td><code>CORTEX_SERVER_MULTI_TENANT</code></td>
<td><em>(retired key)</em></td>
<td><code>false</code></td>
<td>Removed configuration key. Loading it is tolerated but it is ignored and dropped on the next save.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">4.3 HTTP, logging, and MCP</h3><a id="user-content-43-http-logging-and-mcp" class="anchor" aria-label="Permalink: 4.3 HTTP, logging, and MCP" href="#43-http-logging-and-mcp"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Variable</th>
<th>Config key</th>
<th>Default</th>
<th>Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>CORTEX_HTTP_ENABLED</code></td>
<td><code>http.enabled</code></td>
<td><code>true</code></td>
<td>Enables <code>/api/*</code> and <code>/mcp</code>.</td>
</tr>
<tr>
<td><code>CORTEX_HTTP_HOST</code></td>
<td><code>http.host</code></td>
<td><code>localhost</code></td>
<td>Listen interface (<code>0.0.0.0</code> for containers).</td>
</tr>
<tr>
<td><code>CORTEX_HTTP_PORT</code></td>
<td><code>http.port</code></td>
<td><code>7438</code></td>
<td>Listen port. <code>CORTEX_PORT</code> is intentionally not honored.</td>
</tr>
<tr>
<td><code>CORTEX_HTTP_TOKEN</code></td>
<td><code>http.token</code></td>
<td><code>""</code></td>
<td>Static bearer for local HTTP/MCP and the server request plane. Required for non-loopback binds.</td>
</tr>
<tr>
<td><code>CORTEX_HTTP_ALLOWED_ORIGINS</code></td>
<td><code>http.allowed_origins</code></td>
<td><code>[]</code></td>
<td>Comma-separated CORS origins.</td>
</tr>
<tr>
<td><code>CORTEX_LOGGING_LEVEL</code></td>
<td><code>logging.level</code></td>
<td><code>info</code></td>
<td><code>debug</code>, <code>info</code>, <code>warn</code>, <code>error</code>.</td>
</tr>
<tr>
<td><code>CORTEX_LOGGING_FORMAT</code></td>
<td><code>logging.format</code></td>
<td><code>json</code></td>
<td><code>json</code>, <code>text</code>, <code>plain</code>.</td>
</tr>
<tr>
<td><code>CORTEX_MCP_ENABLED</code></td>
<td><code>mcp.enabled</code></td>
<td><code>true</code></td>
<td>Enables local MCP.</td>
</tr>
<tr>
<td><code>CORTEX_MCP_PROFILE</code></td>
<td><code>mcp.profile</code></td>
<td><code>agent</code></td>
<td><code>agent</code>, <code>dev</code>, <code>minimal</code>.</td>
</tr>
<tr>
<td><code>CORTEX_MCP_REMOTE_ENABLED</code></td>
<td><code>mcp.remote.enabled</code></td>
<td><code>false</code></td>
<td>Proxy a remote MCP server.</td>
</tr>
<tr>
<td><code>CORTEX_MCP_REMOTE_URL</code></td>
<td><code>mcp.remote.url</code></td>
<td><code>""</code></td>
<td>Remote MCP destination.</td>
</tr>
<tr>
<td><code>CORTEX_MCP_REMOTE_TOKEN_ENV</code></td>
<td><code>mcp.remote.token_env</code></td>
<td><code>CORTEX_REMOTE_TOKEN</code></td>
<td>Name of the variable holding the remote bearer.</td>
</tr>
<tr>
<td><code>CORTEX_MCP_REMOTE_TIMEOUT</code></td>
<td><code>mcp.remote.timeout</code></td>
<td><code>30s</code></td>
<td>Remote MCP timeout.</td>
</tr>
<tr>
<td><code>CORTEX_REMOTE_TOKEN</code></td>
<td><em>(token env target)</em></td>
<td><em>(empty)</em></td>
<td>Default holder for remote MCP/sync bearer tokens.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">4.4 Database and storage</h3><a id="user-content-44-database-and-storage" class="anchor" aria-label="Permalink: 4.4 Database and storage" href="#44-database-and-storage"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Variable</th>
<th>Config key</th>
<th>Default</th>
<th>Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>CORTEX_DATABASE_PATH</code></td>
<td><code>database.path</code></td>
<td><code>~/.cortex/cortex.db</code></td>
<td>SQLite database path.</td>
</tr>
<tr>
<td><code>CORTEX_DATABASE_IN_MEMORY</code></td>
<td><code>database.in_memory</code></td>
<td><code>false</code></td>
<td>Use an in-memory database.</td>
</tr>
<tr>
<td><code>CORTEX_DATABASE_PRAGMA_JOURNAL_MODE</code></td>
<td><code>database.pragma.journal_mode</code></td>
<td><code>WAL</code></td>
<td>SQLite journal mode.</td>
</tr>
<tr>
<td><code>CORTEX_DATABASE_PRAGMA_SYNCHRONOUS</code></td>
<td><code>database.pragma.synchronous</code></td>
<td><code>NORMAL</code></td>
<td>SQLite synchronous mode.</td>
</tr>
<tr>
<td><code>CORTEX_DATABASE_PRAGMA_CACHE_SIZE</code></td>
<td><code>database.pragma.cache_size</code></td>
<td><code>-64000</code></td>
<td>SQLite cache size (KiB).</td>
</tr>
<tr>
<td><code>CORTEX_DATABASE_PRAGMA_FOREIGN_KEYS</code></td>
<td><code>database.pragma.foreign_keys</code></td>
<td><code>true</code></td>
<td>Enforce foreign keys.</td>
</tr>
<tr>
<td><code>CORTEX_DATABASE_PRAGMA_TEMP_STORE</code></td>
<td><code>database.pragma.temp_store</code></td>
<td><code>MEMORY</code></td>
<td>Temp store location.</td>
</tr>
<tr>
<td><code>CORTEX_DATABASE_PRAGMA_MMAP_SIZE</code></td>
<td><code>database.pragma.mmap_size</code></td>
<td><code>268435456</code></td>
<td>mmap size.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">4.5 Search, embeddings, and LLM</h3><a id="user-content-45-search-embeddings-and-llm" class="anchor" aria-label="Permalink: 4.5 Search, embeddings, and LLM" href="#45-search-embeddings-and-llm"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Variable</th>
<th>Config key</th>
<th>Default</th>
<th>Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>CORTEX_SEARCH_DEFAULT_LIMIT</code></td>
<td><code>search.default_limit</code></td>
<td><code>20</code></td>
<td>Default result limit for store queries.</td>
</tr>
<tr>
<td><code>CORTEX_SEARCH_MAX_LIMIT</code></td>
<td><code>search.max_limit</code></td>
<td><code>100</code></td>
<td>Maximum result limit.</td>
</tr>
<tr>
<td><code>CORTEX_SEARCH_FTS5</code></td>
<td><code>search.fts5</code></td>
<td><code>true</code></td>
<td>Enable FTS5.</td>
</tr>
<tr>
<td><code>CORTEX_SEARCH_VECTOR</code></td>
<td><code>search.vector</code></td>
<td><code>false</code></td>
<td>Enable dense vector retrieval.</td>
</tr>
<tr>
<td><code>CORTEX_SEARCH_FUSION_K</code></td>
<td><code>search.fusion_k</code></td>
<td><code>60</code></td>
<td>RRF fusion constant.</td>
</tr>
<tr>
<td><code>CORTEX_SEARCH_OLLAMA_AUTO_START</code></td>
<td><code>search.ollama_auto_start</code></td>
<td><code>false</code></td>
<td>Auto-start Ollama when it is the embedding provider.</td>
</tr>
<tr>
<td><code>CORTEX_SEARCH_EMBEDDING_PROVIDER</code></td>
<td><code>search.embedding_provider</code></td>
<td><em>(empty)</em></td>
<td>Embedding provider (auto-mapped alias).</td>
</tr>
<tr>
<td><code>CORTEX_SEARCH_EMBEDDING_MODEL</code></td>
<td><code>search.embedding_model</code></td>
<td><em>(empty)</em></td>
<td>Embedding model (auto-mapped alias).</td>
</tr>
<tr>
<td><code>CORTEX_SEARCH_EMBEDDING_BASE_URL</code></td>
<td><code>search.embedding_base_url</code></td>
<td><em>(empty)</em></td>
<td>Embedding base URL (auto-mapped alias).</td>
</tr>
<tr>
<td><code>CORTEX_EMBEDDING_PROVIDER</code></td>
<td><code>search.embedding_provider</code></td>
<td><code>none</code></td>
<td>Embedding provider: <code>none</code>, <code>openai</code>, <code>ollama</code>, <code>openai-compatible</code>. Unknown values fail closed at load time.</td>
</tr>
<tr>
<td><code>CORTEX_EMBEDDING_MODEL</code></td>
<td><code>search.embedding_model</code></td>
<td><code>text-embedding-3-small</code></td>
<td>Embedding model identifier.</td>
</tr>
<tr>
<td><code>CORTEX_EMBEDDING_BASE_URL</code></td>
<td><code>search.embedding_base_url</code></td>
<td><code>http://localhost:11434</code> (Ollama)</td>
<td>Embedding base URL.</td>
</tr>
<tr>
<td><code>CORTEX_EMBEDDING_API_KEY</code></td>
<td><em>(credential)</em></td>
<td><em>(empty)</em></td>
<td>Embedding credential. Required for hosted embedding providers.</td>
</tr>
<tr>
<td><code>CORTEX_LLM_PROVIDER</code></td>
<td><code>ai.provider</code></td>
<td><em>(empty)</em></td>
<td>LLM provider.</td>
</tr>
<tr>
<td><code>CORTEX_LLM_MODEL</code></td>
<td><code>ai.model</code></td>
<td><em>(empty)</em></td>
<td>LLM model.</td>
</tr>
<tr>
<td><code>CORTEX_LLM_BASE_URL</code></td>
<td><code>ai.base_url</code></td>
<td><em>(empty)</em></td>
<td>LLM base URL.</td>
</tr>
<tr>
<td><code>CORTEX_LLM_API_KEY</code></td>
<td><em>(credential)</em></td>
<td><em>(empty)</em></td>
<td>LLM credential. Vendor variables such as <code>OPENAI_API_KEY</code>/<code>ANTHROPIC_API_KEY</code> are deliberately ignored.</td>
</tr>
<tr>
<td><code>CORTEX_LLM_ALLOWED_HOSTS</code></td>
<td><em>(server LLM)</em></td>
<td><em>(empty)</em></td>
<td>Comma-separated allowed LLM hosts.</td>
</tr>
<tr>
<td><code>CORTEX_LLM_ALLOWED_PORTS</code></td>
<td><em>(server LLM)</em></td>
<td><em>(empty)</em></td>
<td>Comma-separated allowed LLM ports.</td>
</tr>
<tr>
<td><code>CORTEX_LLM_ALLOW_LOOPBACK</code></td>
<td><em>(server LLM)</em></td>
<td><code>false</code></td>
<td>Allow loopback LLM destinations.</td>
</tr>
<tr>
<td><code>CORTEX_LLM_ALLOW_LOOPBACK_HTTP</code></td>
<td><em>(server LLM)</em></td>
<td><code>false</code></td>
<td>Allow plain HTTP loopback destinations.</td>
</tr>
<tr>
<td><code>CORTEX_LLM_MAX_CONCURRENT</code></td>
<td><em>(server LLM)</em></td>
<td><em>(provider default)</em></td>
<td>Maximum concurrent LLM requests.</td>
</tr>
<tr>
<td><code>CORTEX_LLM_MAX_REDIRECTS</code></td>
<td><em>(server LLM)</em></td>
<td><em>(provider default)</em></td>
<td>Maximum redirects.</td>
</tr>
<tr>
<td><code>CORTEX_LLM_MAX_RESPONSE_BODY_BYTES</code></td>
<td><em>(server LLM)</em></td>
<td><em>(provider default)</em></td>
<td>Maximum response body size.</td>
</tr>
<tr>
<td><code>CORTEX_LLM_MAX_ERROR_BODY_BYTES</code></td>
<td><em>(server LLM)</em></td>
<td><em>(provider default)</em></td>
<td>Maximum error body size.</td>
</tr>
<tr>
<td><code>CORTEX_LLM_TIMEOUT</code></td>
<td><em>(server LLM)</em></td>
<td><em>(provider default)</em></td>
<td>LLM request timeout (duration).</td>
</tr>
<tr>
<td><code>CORTEX_LLM_CA_FILE</code></td>
<td><em>(server LLM)</em></td>
<td><em>(empty)</em></td>
<td>PEM CA bundle for the LLM TLS handshake.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">4.6 Memory, lifecycle, and vectors</h3><a id="user-content-46-memory-lifecycle-and-vectors" class="anchor" aria-label="Permalink: 4.6 Memory, lifecycle, and vectors" href="#46-memory-lifecycle-and-vectors"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Variable</th>
<th>Config key</th>
<th>Default</th>
<th>Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>CORTEX_MEMORY_MAX_OBSERVATION_LENGTH</code></td>
<td><code>memory.max_observation_length</code></td>
<td><code>50000</code></td>
<td>Maximum observation length.</td>
</tr>
<tr>
<td><code>CORTEX_MEMORY_DEDUPE_WINDOW</code></td>
<td><code>memory.dedupe_window</code></td>
<td><code>15m</code></td>
<td>Dedupe window.</td>
</tr>
<tr>
<td><code>CORTEX_MEMORY_AUTO_ARCHIVE_DAYS</code></td>
<td><code>memory.auto_archive_days</code></td>
<td><code>90</code></td>
<td>Auto-archive age.</td>
</tr>
<tr>
<td><code>CORTEX_MEMORY_IMPORTANCE_DECAY_HALF_LIFE</code></td>
<td><code>memory.importance_decay_half_life</code></td>
<td><code>30</code></td>
<td>Importance decay half-life (days).</td>
</tr>
<tr>
<td><code>CORTEX_MEMORY_MIN_ARCHIVE_SCORE</code></td>
<td><code>memory.min_archive_score</code></td>
<td><code>0.1</code></td>
<td>Minimum score to retain.</td>
</tr>
<tr>
<td><code>CORTEX_LIFECYCLE_ENABLE_AUTO_ARCHIVE</code></td>
<td><code>lifecycle.enable_auto_archive</code></td>
<td><code>true</code></td>
<td>Enable the auto-archive loop.</td>
</tr>
<tr>
<td><code>CORTEX_LIFECYCLE_ARCHIVE_CHECK_INTERVAL</code></td>
<td><code>lifecycle.archive_check_interval</code></td>
<td><code>1h</code></td>
<td>Archive check interval.</td>
</tr>
<tr>
<td><code>CORTEX_VECTOR_PROVIDER</code></td>
<td><code>vector.provider</code></td>
<td><em>(empty → <code>sqlite_blob</code>)</em></td>
<td>Vector backend: unset local BLOB, <code>qdrant</code>, or <code>pgvector</code>.</td>
</tr>
<tr>
<td><code>CORTEX_VECTOR_PGVECTOR_DIMENSION</code></td>
<td><em>(server pgvector)</em></td>
<td>resolved from model</td>
<td>pgvector dimension override.</td>
</tr>
<tr>
<td><code>CORTEX_VECTOR_QDRANT_HOST</code></td>
<td><code>vector.qdrant.host</code></td>
<td><code>localhost</code></td>
<td>Qdrant host (auto-mapped; adapter is server-only).</td>
</tr>
<tr>
<td><code>CORTEX_VECTOR_QDRANT_PORT</code></td>
<td><code>vector.qdrant.port</code></td>
<td><code>6334</code></td>
<td>Qdrant port (auto-mapped).</td>
</tr>
<tr>
<td><code>CORTEX_VECTOR_QDRANT_COLLECTION</code></td>
<td><code>vector.qdrant.collection</code></td>
<td><code>cortex</code></td>
<td>Qdrant collection (auto-mapped).</td>
</tr>
<tr>
<td><code>CORTEX_VECTOR_QDRANT_API_KEY</code></td>
<td><code>vector.qdrant.api_key</code></td>
<td><code>""</code></td>
<td>Qdrant API key (masked by <code>config show</code>).</td>
</tr>
<tr>
<td><code>CORTEX_VECTOR_PGVECTOR_SCHEMA</code></td>
<td><code>vector.pgvector.schema</code></td>
<td><code>cortex_vector</code></td>
<td>pgvector schema.</td>
</tr>
<tr>
<td><code>CORTEX_VECTOR_PGVECTOR_TABLE</code></td>
<td><code>vector.pgvector.table</code></td>
<td><code>embeddings</code></td>
<td>pgvector table.</td>
</tr>
<tr>
<td><code>CORTEX_VECTOR_PGVECTOR_DSN</code></td>
<td><code>vector.pgvector.dsn</code></td>
<td><em>(empty)</em></td>
<td>pgvector DSN (server-only).</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">4.7 Sync</h3><a id="user-content-47-sync" class="anchor" aria-label="Permalink: 4.7 Sync" href="#47-sync"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Variable</th>
<th>Config key</th>
<th>Default</th>
<th>Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>CORTEX_SYNC_ENABLED</code></td>
<td><code>sync.enabled</code></td>
<td><code>false</code></td>
<td>Enable synchronization.</td>
</tr>
<tr>
<td><code>CORTEX_SYNC_URL</code></td>
<td><code>sync.url</code></td>
<td><code>""</code></td>
<td>Remote sync endpoint.</td>
</tr>
<tr>
<td><code>CORTEX_SYNC_TOKEN_ENV</code></td>
<td><code>sync.token_env</code></td>
<td><code>CORTEX_REMOTE_TOKEN</code></td>
<td>Name of the variable holding the sync bearer.</td>
</tr>
<tr>
<td><code>CORTEX_SYNC_INTERVAL</code></td>
<td><code>sync.interval</code></td>
<td><code>30s</code></td>
<td>Sync interval.</td>
</tr>
<tr>
<td><code>CORTEX_SYNC_TIMEOUT</code></td>
<td><code>sync.timeout</code></td>
<td><code>30s</code></td>
<td>Sync timeout.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">4.8 Ignored, legacy, and test-only variables</h3><a id="user-content-48-ignored-legacy-and-test-only-variables" class="anchor" aria-label="Permalink: 4.8 Ignored, legacy, and test-only variables" href="#48-ignored-legacy-and-test-only-variables"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Variable</th>
<th>Status</th>
<th>Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>CORTEX_AI_API_KEY</code></td>
<td><strong>Ignored</strong></td>
<td>Not accepted; use <code>CORTEX_LLM_API_KEY</code> or <code>CORTEX_EMBEDDING_API_KEY</code>.</td>
</tr>
<tr>
<td><code>CORTEX_SEARCH_EMBEDDING_API_KEY</code></td>
<td><strong>Ignored (legacy)</strong></td>
<td>Not accepted; use <code>CORTEX_EMBEDDING_API_KEY</code>.</td>
</tr>
<tr>
<td><code>CORTEX_TEST_POSTGRES_DSN</code></td>
<td>Test-only</td>
<td>Integration test runtime DSN (fails when missing, never skips).</td>
</tr>
<tr>
<td><code>CORTEX_TEST_POSTGRES_MIGRATION_DSN</code></td>
<td>Test-only</td>
<td>Integration test migration DSN.</td>
</tr>
<tr>
<td><code>CORTEX_TEST_POSTGRES_AUTHZ_ADMIN_DSN</code></td>
<td>Test-only</td>
<td>Integration test authz-admin DSN.</td>
</tr>
<tr>
<td><code>CORTEX_QDRANT_HOST</code> / <code>CORTEX_QDRANT_PORT</code></td>
<td>Test-only</td>
<td>Qdrant adapter integration test target.</td>
</tr>
<tr>
<td><code>CORTEX_PGVECTOR_DSN</code></td>
<td>Test-only</td>
<td>pgvector adapter integration test target.</td>
</tr>
<tr>
<td><code>CORTEX_SPIKE_PG_ADMIN_DSN</code> / <code>CORTEX_SPIKE_PGBOUNCER_DSN</code></td>
<td>Test-only</td>
<td>Governance spike DSNs.</td>
</tr>
<tr>
<td><code>CORTEX_RESOURCE_HELPER_MARKER</code></td>
<td>Test-only</td>
<td>Benchmark resource helper marker.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<hr>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">5. Authentication matrix</h2><a id="user-content-5-authentication-matrix" class="anchor" aria-label="Permalink: 5. Authentication matrix" href="#5-authentication-matrix"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">Cortex has four credential planes. The table states which credential applies per
command and per transport.</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Command / transport</th>
<th>Local SQLite</th>
<th>Local HTTP (<code>serve</code>)</th>
<th>Server (<code>--mode server</code>)</th>
<th>MCP</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>search</code>, <code>save</code>, <code>context</code>, <code>stats</code>, <code>timeline</code>, <code>revisions</code>, <code>export</code>, <code>import</code>, <code>merge-projects</code>, <code>gc</code>, <code>backup</code>, <code>reindex</code>, <code>ingest</code>, <code>code</code>, <code>watch</code>, <code>tui</code>, <code>doctor</code> (local), <code>status</code>, <code>migrate</code>, <code>config</code>, <code>setup</code></td>
<td><strong>No auth</strong> (zero-auth local)</td>
<td>n/a</td>
<td>n/a</td>
<td>n/a</td>
</tr>
<tr>
<td><code>serve</code></td>
<td>—</td>
<td><code>/health</code> unauthenticated; <code>/api/*</code> and mounted MCP require <code>Authorization: Bearer &lt;http.token&gt;</code> when <code>http.token</code> is set. Without a token, only loopback binds are allowed.</td>
<td>—</td>
<td>—</td>
</tr>
<tr>
<td><code>--mode server</code></td>
<td>—</td>
<td>—</td>
<td><code>/health</code> unauthenticated; every <code>/api/*</code> and <code>/mcp</code> request requires the configured static bearer (<code>http.token</code> / <code>CORTEX_HTTP_TOKEN</code>) before the synthetic constant principal is bound.</td>
<td>Static bearer</td>
</tr>
<tr>
<td><code>mcp</code> (local stdio)</td>
<td><strong>No auth</strong> (process-scoped)</td>
<td>—</td>
<td>—</td>
<td>stdio; no credential</td>
</tr>
<tr>
<td><code>mcp</code> (remote proxy, <code>mcp.remote.enabled</code>)</td>
<td>—</td>
<td>—</td>
<td>—</td>
<td>Bearer read from <code>mcp.remote.token_env</code> (default <code>CORTEX_REMOTE_TOKEN</code>)</td>
</tr>
<tr>
<td><code>sync --remote</code></td>
<td>—</td>
<td>—</td>
<td>—</td>
<td>Bearer from <code>sync.token_env</code> (default <code>CORTEX_REMOTE_TOKEN</code>), falling back to <code>http.token</code></td>
</tr>
<tr>
<td><code>web key</code> (embedded web UI)</td>
<td>Web access key at <code>&lt;config dir&gt;/web.key</code> (independent of <code>http.token</code>)</td>
<td>same</td>
<td>same</td>
<td>—</td>
</tr>
<tr>
<td><code>auth login</code> / <code>status</code> / <code>logout</code></td>
<td>Manages <code>http.token</code> itself; no auth to run</td>
<td>—</td>
<td>—</td>
<td>—</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">Notes:</p>
<ul dir="auto">
<li><strong>Local zero-auth mode.</strong> Local SQLite commands open the store directly and
never require a credential.</li>
<li><strong>Local <code>http.token</code>.</strong> When set, local HTTP and mounted MCP require the bearer.
A non-loopback <code>http.host</code> without <code>http.token</code> is refused at <code>serve</code> startup.</li>
<li><strong>Server static bearer.</strong> Single credential, verified on every authenticated
request; tenant/workspace scope is configuration, not client input.</li>
<li><strong>Embedded web.</strong> The web access key is a distinct namespace; rotating it never
changes <code>http.token</code>.</li>
<li><strong>MCP profiles.</strong> <code>agent</code>, <code>dev</code>, and <code>minimal</code> are the live catalogs. Profile
selection does not change authentication.</li>
</ul>
<hr>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">6. Deprecated and retired surface</h2><a id="user-content-6-deprecated-and-retired-surface" class="anchor" aria-label="Permalink: 6. Deprecated and retired surface" href="#6-deprecated-and-retired-surface"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">This appendix records retired or deprecated surface so migrating users find an
explicit notice and a supported replacement.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">6.1 Retired MCP toolsets: <code>admin</code> and <code>temporal</code></h3><a id="user-content-61-retired-mcp-toolsets-admin-and-temporal" class="anchor" aria-label="Permalink: 6.1 Retired MCP toolsets: admin and temporal" href="#61-retired-mcp-toolsets-admin-and-temporal"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">The <code>admin</code> (destructive deletion, project merging, compaction) and <code>temporal</code>
(execution duration, memory telemetry, manual RFC3339 timestamps) toolsets are
retired from standard agent discovery and must not be advertised by any live
command section.</p>
<ul dir="auto">
<li><strong>Replacement:</strong> administrative operations use the CLI (<code>cortex gc</code>,
<code>cortex merge-projects</code>, <code>cortex doctor</code>), the TUI, and the web dashboard;
telemetry and health use <code>/health</code>; temporal evolution is handled automatically
through <code>topic_key</code> upserts and <code>cortex_revision_history</code>.</li>
<li>The live <code>mcp</code> catalog is exactly <code>agent</code>, <code>dev</code>, and <code>minimal</code>.</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">6.2 Retired container image: <code>cortex-web</code></h3><a id="user-content-62-retired-container-image-cortex-web" class="anchor" aria-label="Permalink: 6.2 Retired container image: cortex-web" href="#62-retired-container-image-cortex-web"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">The standalone <code>cortex-web</code> container image is retired.</p>
<ul dir="auto">
<li><strong>Replacement:</strong> the embedded web UI is mounted directly by <code>cortex serve</code>
(local) and <code>cortex --mode server</code> (server), and its access key is managed with
<a href="#326-web"><code>cortex web key</code></a>.</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">6.3 Retired tool namespace: <code>mem_*</code> and Engram-era framing</h3><a id="user-content-63-retired-tool-namespace-mem_-and-engram-era-framing" class="anchor" aria-label="Permalink: 6.3 Retired tool namespace: mem_* and Engram-era framing" href="#63-retired-tool-namespace-mem_-and-engram-era-framing"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">The <code>mem_*</code> tool namespace and Engram-era compatibility framing are retired.</p>
<ul dir="auto">
<li><strong>Replacement:</strong> the supported namespace is <code>cortex_*</code>. Local catalog IDs and
the Engram-era surface are not interchangeable; see <a href="/lleontor705/cortex/blob/v2.4.11/docs/MCP.md">MCP.md</a>.</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">6.4 Retired configuration key: <code>multi_tenant</code></h3><a id="user-content-64-retired-configuration-key-multi_tenant" class="anchor" aria-label="Permalink: 6.4 Retired configuration key: multi_tenant" href="#64-retired-configuration-key-multi_tenant"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">The <code>server.multi_tenant</code> configuration key is removed. The self-hosted server is
single-tenant: tenant and workspace are configuration constants.</p>
<ul dir="auto">
<li><strong>Replacement:</strong> <code>server.tenant_id</code> and <code>server.workspace_id</code>. A file that
still carries <code>multi_tenant</code> loads without error (the key is unknown and dropped
on the next save), but it has no effect.</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">6.5 Retired v1 root migrations</h3><a id="user-content-65-retired-v1-root-migrations" class="anchor" aria-label="Permalink: 6.5 Retired v1 root migrations" href="#65-retired-v1-root-migrations"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">The root <code>migrations/001-014</code> files are retired v1 history and do not drive
startup.</p>
<ul dir="auto">
<li><strong>Replacement:</strong> the embedded, forward-only <code>migrations/v2/001_init.sql</code>
baseline (SQLite) and <code>migrations/v2/100_server.sql</code> (PostgreSQL). Existing v1
or foreign databases are refused without mutation; there is no automatic v1
upgrade. Use <a href="#320-backup"><code>cortex backup</code></a> before any migration.</li>
</ul>
</article></div><div class="d-none"></div></section></div></div></div> </div> <!-- --> </div></div></div></div></div></div><div class="ScrollMarksContainer-module__scrollMarksContainer__Eu7uU" id="find-result-marks-container"></div><div class="d-none"></div><div class="d-none"></div></div> <!-- --> <!-- --> </div>
</react-app>




  </div>

</turbo-frame>

    </main>
  </div>

  </div>

          <footer class="footer f6 color-fg-muted color-border-subtle tmp-pt-7 tmp-pb-6 p-responsive" role="contentinfo"  >
  <h2 class='sr-only'>Footer</h2>

  


  <div class="d-flex flex-justify-center flex-items-center flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap">
    <div class="d-flex flex-items-center flex-shrink-0 mx-2">
      <a aria-label="GitHub Homepage" class="footer-octicon mr-2" href="https://github.com">
        <svg aria-hidden="true" data-component="Octicon" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github">
    <path d="M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943"></path>
</svg>
</a>
      <span>
        &copy; 2026 GitHub,&nbsp;Inc.
      </span>
    </div>

    <nav aria-label="Footer">
      <h3 class="sr-only" id="sr-footer-heading">Footer navigation</h3>

      <ul class="list-style-none d-flex flex-justify-center flex-wrap mb-2 mb-lg-0" aria-labelledby="sr-footer-heading">


          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Terms&quot;,&quot;label&quot;:&quot;text:terms&quot;}" href="https://docs.github.com/site-policy/github-terms/github-terms-of-service" data-view-component="true" class="Link--secondary Link">Terms</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to privacy&quot;,&quot;label&quot;:&quot;text:privacy&quot;}" href="https://docs.github.com/site-policy/privacy-policies/github-privacy-statement" data-view-component="true" class="Link--secondary Link">Privacy</a>
          </li>


            <li class="mx-2">
              <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to security&quot;,&quot;label&quot;:&quot;text:security&quot;}" href="https://github.com/security" data-view-component="true" class="Link--secondary Link">Security</a>
            </li>

            <li class="mx-2">
              <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to status&quot;,&quot;label&quot;:&quot;text:status&quot;}" href="https://www.githubstatus.com/" data-view-component="true" class="Link--secondary Link">Status</a>
            </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to community&quot;,&quot;label&quot;:&quot;text:community&quot;}" href="https://github.community/" data-view-component="true" class="Link--secondary Link">Community</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to docs&quot;,&quot;label&quot;:&quot;text:docs&quot;}" href="https://docs.github.com/" data-view-component="true" class="Link--secondary Link">Docs</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to contact&quot;,&quot;label&quot;:&quot;text:contact&quot;}" href="https://support.github.com?tags=dotcom-footer" data-view-component="true" class="Link--secondary Link">Contact</a>
          </li>

          
<li class="mx-2" >
  <cookie-consent-link>
    <button
      type="button"
      class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent"
      data-action="click:cookie-consent-link#showConsentManagement"
      data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;cookies&quot;,&quot;context&quot;:&quot;subfooter&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;cookies_link_subfooter_footer&quot;}"
    >
      Manage cookies
    </button>
  </cookie-consent-link>
</li>

  <li class="mx-2">
    <cookie-consent-link>
      <button
        type="button"
        class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent text-left"
        data-action="click:cookie-consent-link#showConsentManagement"
        data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;dont_share_info&quot;,&quot;context&quot;:&quot;subfooter&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;dont_share_info_link_subfooter_footer&quot;}"
      >
        Do not share my personal information
      </button>
    </cookie-consent-link>
  </li>

      </ul>
    </nav>
  </div>
</footer>



    <ghcc-consent id="ghcc" class="position-fixed bottom-0 left-0" style="z-index: 999999"
      data-locale="en"
      data-initial-cookie-consent-allowed=""
      data-cookie-consent-required="true"
    ></ghcc-consent>




  <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden>
    <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
    <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
    </button>
    You can’t perform that action at this time.
  </div>

    <template id="site-details-dialog">
  <details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open>
    <summary role="button" aria-label="Close dialog"></summary>
    <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal">
      <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog>
        <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
      </button>
      <div class="octocat-spinner tmp-my-6 js-details-dialog-spinner"></div>
    </details-dialog>
  </details>
</template>

    <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;">
  <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;">
  </div>
</div>

    <template id="snippet-clipboard-copy-button">
  <div class="zeroclipboard-container position-absolute right-0 top-0">
    <clipboard-copy aria-label="Copy code to clipboard" class="ClipboardButton btn js-clipboard-copy m-2 p-0" data-copy-feedback="Copied!" data-tooltip-direction="w">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2 tmp-m-2">
    <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>
</svg>
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2 tmp-m-2">
    <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path>
</svg>
    </clipboard-copy>
  </div>
</template>
<template id="snippet-clipboard-copy-button-unpositioned">
  <div class="zeroclipboard-container">
    <clipboard-copy aria-label="Copy code to clipboard" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon">
    <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>
</svg>
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none">
    <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path>
</svg>
    </clipboard-copy>
  </div>
</template>




    </div>
    <div id="js-global-screen-reader-notice" class="sr-only mt-n1" aria-live="polite" aria-atomic="true" ></div>
    <div id="js-global-screen-reader-notice-assertive" class="sr-only mt-n1" aria-live="assertive" aria-atomic="true"></div>
  </body>
</html>

