{"slug":"visual-policy-editor","title":"Visual policy editor","tags":["tailscale","access-control"],"agent_summary":"Last validated: Mar 13, 2026","trigger_phrases":[],"runnable":false,"markdown":"\r\n# Visual policy editor\r\n\r\nLast validated: Mar 13, 2026\r\n\r\nThe visual policy editor is an alternative way to edit the [human JSON (HuJSON)](https://nigeltao.github.io/blog/2021/json-with-commas-comments.html) syntax of the tailnet policy file with an interactive graphical user interface. You can switch between the visual editor and the JSON editor anytime. Changes you make using the visual editor sync with the JSON editor when you save them.\r\n\r\nYou can use the visual policy editor for the following tailnet policy file features:\r\n\r\n- Access control policies ( [grants](https://tailscale.com/docs/features/access-control/grants))\r\n- [Tailscale SSH](https://tailscale.com/docs/features/tailscale-ssh) access rules\r\n- [Tests](https://tailscale.com/docs/reference/syntax/policy-file#tests) and [SSH Tests](https://tailscale.com/docs/reference/syntax/policy-file#ssh-tests)\r\n- [Groups](https://tailscale.com/docs/reference/syntax/policy-file#groups)\r\n- [Tags](https://tailscale.com/docs/features/tags)\r\n- [IP sets](https://tailscale.com/docs/features/tailnet-policy-file/ip-sets)\r\n- [Hosts](https://tailscale.com/docs/reference/syntax/policy-file#hosts)\r\n- [Node attributes](https://tailscale.com/docs/reference/syntax/policy-file#node-attributes)\r\n- [Device posture](https://tailscale.com/docs/features/device-posture#postures)\r\n- [Auto approvers](https://tailscale.com/docs/reference/syntax/policy-file#auto-approvers)\r\n\r\nTo make changes to the [network policy options](https://tailscale.com/docs/reference/syntax/policy-file#network-options) of the tailnet policy (such as `derpMap`, `disableIPv4`, `OneCGNATRoute`, and `randomizeClientPort`) you must use the JSON editor.\r\n\r\nThe visual editor translates your configuration choices into the underlying HuJSON policy file format. You can switch between the visual editor and the JSON editor at any time to work with policies in the format that best suits your needs. The bidirectional synchronization ensures that changes in either editor immediately reflect in the other. For a comprehensive understanding of the underlying policy syntax, refer to [Tailscale's policy syntax documentation](https://tailscale.com/docs/reference/syntax/policy-file).\r\n\r\nGo to the [Access controls](https://login.tailscale.com/admin/acls) page of the Tailscale admin console to access the visual editor. The editor displays with the **Visual editor** tab selected by default.\r\n\r\n## [Editor modes](https://tailscale.com/docs/features/visual-editor\\#editor-modes)\r\n\r\nThe visual policy editor supports three distinct operating modes that serve different workflow preferences and requirements. Each mode maintains full compatibility with the underlying [policy file format](https://tailscale.com/docs/reference/syntax/policy-file) while offering different interaction patterns.\r\n\r\n- **Visual editor** lets you manage policies interactively through a graphical user interface. All changes sync immediately with the underlying JSON representation. This mode works best when you need to make targeted changes to specific rules or when you're learning the policy syntax.\r\n- **JSON editor** gives you direct access to the HuJSON policy file with syntax highlighting. This mode suits users who prefer working directly with code or need to make bulk changes. The JSON editor provides full control over policy structure and lets you use advanced features that might not yet have visual interfaces. The JSON editor also includes a **Convert to grants** button that automatically converts your `acls` section to equivalent [grants](https://tailscale.com/docs/features/access-control/grants). Refer to [Migrate from ACLs to grants](https://tailscale.com/docs/reference/migrate-acls-grants) for more information.\r\n- **GitOps** mode is when you [manage your tailnet policy file through GitOps](https://tailscale.com/docs/gitops). In this mode, you can search, filter, and preview potential changes but cannot save modifications. Your version control system remains the single source of truth for policy changes. This mode ensures that all policy modifications go through your established review and approval processes.\r\n\r\nTo prevent users from editing policies on the admin console when using GitOps, you must lock the editor. To do this, go to [Policy file management](https://login.tailscale.com/admin/settings/policy-file-management) \\> **Lock editor**, then enable **Prevent edits in the admin console**.\r\n\r\n## [General access rules](https://tailscale.com/docs/features/visual-editor\\#general-access-rules)\r\n\r\nGeneral access rules let you manage access between devices in your tailnet using [grants syntax](https://tailscale.com/docs/features/access-control/grants).\r\n\r\n[Manage general access rules using the visual editor](https://tailscale.com/docs/reference/visual-editor#general-access-rules).\r\n\r\n## [Tailscale SSH](https://tailscale.com/docs/features/visual-editor\\#tailscale-ssh)\r\n\r\n[Tailscale SSH rules](https://tailscale.com/docs/features/tailscale-ssh) let you control SSH access to devices in your tailnet without managing SSH keys.\r\n\r\n[Manage Tailscale SSH rules using the visual editor](https://tailscale.com/docs/reference/visual-editor#tailscale-ssh).\r\n\r\n## [Groups](https://tailscale.com/docs/features/visual-editor\\#groups)\r\n\r\n[Groups](https://tailscale.com/docs/reference/targets-and-selectors) let you organize users into logical groups for access control management. There are three types of groups: user-defined groups, synced groups from your identity provider, and built-in autogroups.\r\n\r\n[Manage groups using the visual editor](https://tailscale.com/docs/reference/visual-editor#groups).\r\n\r\n## [Tags](https://tailscale.com/docs/features/visual-editor\\#tags)\r\n\r\n[Tags](https://tailscale.com/docs/features/tags) provide a way to authenticate and organize non-user devices like servers into functional groups for use in access control policies.\r\n\r\n[Manage tags using the visual editor](https://tailscale.com/docs/reference/visual-editor#tags).\r\n\r\n## [IP sets](https://tailscale.com/docs/features/visual-editor\\#ip-sets)\r\n\r\n[IP sets](https://tailscale.com/docs/features/tailnet-policy-file/ip-sets) let you create collections of IP addresses, hosts, and subnets to use in access control policies.\r\n\r\n[Manage IP sets using the visual editor](https://tailscale.com/docs/reference/visual-editor#ip-sets).\r\n\r\n## [Hosts](https://tailscale.com/docs/features/visual-editor\\#hosts)\r\n\r\n[Hosts](https://tailscale.com/docs/reference/syntax/policy-file#hosts) are a way to create friendly names for IP addresses and CIDR ranges to improve policy readability by replacing numeric addresses with meaningful identifiers.\r\n\r\n[Manage hosts using the visual editor](https://tailscale.com/docs/reference/visual-editor#hosts).\r\n\r\n## [Node attributes](https://tailscale.com/docs/features/visual-editor\\#node-attributes)\r\n\r\n[Node attributes](https://tailscale.com/docs/reference/syntax/policy-file#nodeattrs) let you apply settings and attributes to device to do things like control feature availability and device behavior across your tailnet.\r\n\r\n[Manage node attributes using the visual editor](https://tailscale.com/docs/reference/visual-editor#node-attributes).\r\n\r\n## [Device posture](https://tailscale.com/docs/features/visual-editor\\#device-posture)\r\n\r\n[Device posture](https://tailscale.com/docs/features/device-posture) rules let you specify the requirements a device must meet before it can access sensitive resources.\r\n\r\n[Manage device posture rules using the visual editor](https://tailscale.com/docs/reference/visual-editor#device-posture).\r\n\r\n## [Auto approvers](https://tailscale.com/docs/features/visual-editor\\#auto-approvers)\r\n\r\n[Auto approvers](https://tailscale.com/docs/reference/syntax/policy-file#autoapprovers) let you create policies to pre-approve specific operations for devices, such as advertising subnet routes or exit nodes, without manual intervention.\r\n\r\n[Manage auto approvers using the visual editor](https://tailscale.com/docs/reference/visual-editor#auto-approvers).\r\n\r\n## [Tests](https://tailscale.com/docs/features/visual-editor\\#tests)\r\n\r\n[Tests](https://tailscale.com/docs/reference/syntax/policy-file#tests) validate that access control changes meet expected behavior before saving.\r\n\r\n[Manage tests using the visual editor](https://tailscale.com/docs/reference/visual-editor#tests).\r\n\r\n## [Data synchronization](https://tailscale.com/docs/features/visual-editor\\#data-synchronization)\r\n\r\nChanges in the visual editor immediately sync to the JSON editor after you save them. This bidirectional synchronization ensures consistency regardless of which editor you use.\r\n\r\nGitOps mode prevents modifications to maintain version control as the source of truth. In this mode, use the visual editor to preview and validate changes before committing them to your repository. The read-only mode indicates when GitOps manages your configuration. For GitOps implementation examples, refer to the documentation for [GitHub Actions](https://tailscale.com/docs/integrations/github/gitops), [GitLab CI](https://tailscale.com/docs/integrations/gitlab/gitops), and [Bitbucket](https://tailscale.com/docs/integrations/bitbucket/gitops).\r\n\r\nWhen you use the visual editor, it automatically converts ACL syntax to grants syntax on the backend. Grants syntax supports all the same capabilities as ACL syntax with additional features like [route filtering](https://tailscale.com/docs/features/access-control/grants/grants-via) and [app capabilities](https://tailscale.com/docs/features/access-control/grants/grants-app-capabilities). Refer to [grants versus ACLs](https://tailscale.com/docs/reference/grants-vs-acls) for more information.\r\n\r\n### [Finding and filtering](https://tailscale.com/docs/features/visual-editor\\#finding-and-filtering)\r\n\r\nAll major sections include search fields that filter content in real time. Search works across every visible column in a section. You can find configurations using any identifying information without switching search modes.\r\n\r\nThe dropdown list arrow in search fields provides additional filtering options:\r\n\r\n- Filter by user, group, device, or tag.\r\n- Search by port or IP address.\r\n- Apply multiple filters simultaneously.\r\n\r\nReal-time filtering helps manage large policy files efficiently. Type any part of a configuration to display only matching items. This approach eliminates manual scrolling through hundreds of entries.\r\n\r\n### [Configuration validation](https://tailscale.com/docs/features/visual-editor\\#configuration-validation)\r\n\r\nThe visual editor validates your input as you work. This approach lets you work through complex configurations without interruption. Required fields appear without optional labels because they represent the baseline requirement.\r\n\r\nField-specific validation errors appear near the relevant fields, while validation errors that aren't field-specific appear at the top of the page. Examples of these include failed general tests and failed SSH tests.\r\n\r\n### [JSON output previews](https://tailscale.com/docs/features/visual-editor\\#json-output-previews)\r\n\r\nMost configurations include JSON preview panels showing the HuJSON syntax your selections generate. These previews update immediately as you modify fields. The preview helps you understand how visual selections translate to policy file syntax.\r\n\r\nThe JSON preview serves several purposes:\r\n\r\n- Explore policy file syntax without leaving the visual editor.\r\n- Verify that configurations produce expected output.\r\n- Copy snippets for documentation or team discussions.\r\n- Debug complex configurations by examining generated code.\r\n- Share exact configurations with team members.\r\n\r\nThe copy button lets you copy the policy JSON to your clipboard for use in version control, documentation, or team collaboration. This feature connects visual and code-based configuration workflows.\r\n\r\nJSON previews are available even when the policy file is locked because it's managed through GitOps. You can still view and copy generated HuJSON snippets for reference.\r\n\r\n## [Feedback](https://tailscale.com/docs/features/visual-editor\\#feedback)\r\n\r\nThe visual editor continues to evolve with regular feature additions. Your feedback helps prioritize improvements and identify issues.\r\n\r\nSelect **Give feedback** from the top of the [Visual editor](https://login.tailscale.com/admin/acls/visual) page to submit suggestions, report bugs, or request features. The product team reviews all submissions and uses them to guide development priorities.\r\n\r\nInclude specific use cases and workflows in your feedback. The more context you provide, the better the team can understand and address your needs. Screenshots and detailed descriptions help communicate complex issues or feature requests.\r\n\r\n![Project Logo](https://cdn.brandfetch.io/tailscale.com/fallback/lettermark/theme/dark/h/256/w/256/icon?c=1bfwsmEH20zzEfSNTed)\r\n\r\nAsk AI\r\n\r\nreCAPTCHA\r\n\r\nRecaptcha requires verification.\r\n\r\nprotected by **reCAPTCHA**\r\n","html":"<h1>Visual policy editor</h1>\n<p>Last validated: Mar 13, 2026</p>\n<p>The visual policy editor is an alternative way to edit the <a href=\"https://nigeltao.github.io/blog/2021/json-with-commas-comments.html\">human JSON (HuJSON)</a> syntax of the tailnet policy file with an interactive graphical user interface. You can switch between the visual editor and the JSON editor anytime. Changes you make using the visual editor sync with the JSON editor when you save them.</p>\n<p>You can use the visual policy editor for the following tailnet policy file features:</p>\n<ul>\n<li>Access control policies ( <a href=\"https://tailscale.com/docs/features/access-control/grants\">grants</a>)</li>\n<li><a href=\"https://tailscale.com/docs/features/tailscale-ssh\">Tailscale SSH</a> access rules</li>\n<li><a href=\"https://tailscale.com/docs/reference/syntax/policy-file#tests\">Tests</a> and <a href=\"https://tailscale.com/docs/reference/syntax/policy-file#ssh-tests\">SSH Tests</a></li>\n<li><a href=\"https://tailscale.com/docs/reference/syntax/policy-file#groups\">Groups</a></li>\n<li><a href=\"https://tailscale.com/docs/features/tags\">Tags</a></li>\n<li><a href=\"https://tailscale.com/docs/features/tailnet-policy-file/ip-sets\">IP sets</a></li>\n<li><a href=\"https://tailscale.com/docs/reference/syntax/policy-file#hosts\">Hosts</a></li>\n<li><a href=\"https://tailscale.com/docs/reference/syntax/policy-file#node-attributes\">Node attributes</a></li>\n<li><a href=\"https://tailscale.com/docs/features/device-posture#postures\">Device posture</a></li>\n<li><a href=\"https://tailscale.com/docs/reference/syntax/policy-file#auto-approvers\">Auto approvers</a></li>\n</ul>\n<p>To make changes to the <a href=\"https://tailscale.com/docs/reference/syntax/policy-file#network-options\">network policy options</a> of the tailnet policy (such as <code>derpMap</code>, <code>disableIPv4</code>, <code>OneCGNATRoute</code>, and <code>randomizeClientPort</code>) you must use the JSON editor.</p>\n<p>The visual editor translates your configuration choices into the underlying HuJSON policy file format. You can switch between the visual editor and the JSON editor at any time to work with policies in the format that best suits your needs. The bidirectional synchronization ensures that changes in either editor immediately reflect in the other. For a comprehensive understanding of the underlying policy syntax, refer to <a href=\"https://tailscale.com/docs/reference/syntax/policy-file\">Tailscale's policy syntax documentation</a>.</p>\n<p>Go to the <a href=\"https://login.tailscale.com/admin/acls\">Access controls</a> page of the Tailscale admin console to access the visual editor. The editor displays with the <strong>Visual editor</strong> tab selected by default.</p>\n<h2><a href=\"https://tailscale.com/docs/features/visual-editor#editor-modes\">Editor modes</a></h2>\n<p>The visual policy editor supports three distinct operating modes that serve different workflow preferences and requirements. Each mode maintains full compatibility with the underlying <a href=\"https://tailscale.com/docs/reference/syntax/policy-file\">policy file format</a> while offering different interaction patterns.</p>\n<ul>\n<li><strong>Visual editor</strong> lets you manage policies interactively through a graphical user interface. All changes sync immediately with the underlying JSON representation. This mode works best when you need to make targeted changes to specific rules or when you're learning the policy syntax.</li>\n<li><strong>JSON editor</strong> gives you direct access to the HuJSON policy file with syntax highlighting. This mode suits users who prefer working directly with code or need to make bulk changes. The JSON editor provides full control over policy structure and lets you use advanced features that might not yet have visual interfaces. The JSON editor also includes a <strong>Convert to grants</strong> button that automatically converts your <code>acls</code> section to equivalent <a href=\"https://tailscale.com/docs/features/access-control/grants\">grants</a>. Refer to <a href=\"https://tailscale.com/docs/reference/migrate-acls-grants\">Migrate from ACLs to grants</a> for more information.</li>\n<li><strong>GitOps</strong> mode is when you <a href=\"https://tailscale.com/docs/gitops\">manage your tailnet policy file through GitOps</a>. In this mode, you can search, filter, and preview potential changes but cannot save modifications. Your version control system remains the single source of truth for policy changes. This mode ensures that all policy modifications go through your established review and approval processes.</li>\n</ul>\n<p>To prevent users from editing policies on the admin console when using GitOps, you must lock the editor. To do this, go to <a href=\"https://login.tailscale.com/admin/settings/policy-file-management\">Policy file management</a> > <strong>Lock editor</strong>, then enable <strong>Prevent edits in the admin console</strong>.</p>\n<h2><a href=\"https://tailscale.com/docs/features/visual-editor#general-access-rules\">General access rules</a></h2>\n<p>General access rules let you manage access between devices in your tailnet using <a href=\"https://tailscale.com/docs/features/access-control/grants\">grants syntax</a>.</p>\n<p><a href=\"https://tailscale.com/docs/reference/visual-editor#general-access-rules\">Manage general access rules using the visual editor</a>.</p>\n<h2><a href=\"https://tailscale.com/docs/features/visual-editor#tailscale-ssh\">Tailscale SSH</a></h2>\n<p><a href=\"https://tailscale.com/docs/features/tailscale-ssh\">Tailscale SSH rules</a> let you control SSH access to devices in your tailnet without managing SSH keys.</p>\n<p><a href=\"https://tailscale.com/docs/reference/visual-editor#tailscale-ssh\">Manage Tailscale SSH rules using the visual editor</a>.</p>\n<h2><a href=\"https://tailscale.com/docs/features/visual-editor#groups\">Groups</a></h2>\n<p><a href=\"https://tailscale.com/docs/reference/targets-and-selectors\">Groups</a> let you organize users into logical groups for access control management. There are three types of groups: user-defined groups, synced groups from your identity provider, and built-in autogroups.</p>\n<p><a href=\"https://tailscale.com/docs/reference/visual-editor#groups\">Manage groups using the visual editor</a>.</p>\n<h2><a href=\"https://tailscale.com/docs/features/visual-editor#tags\">Tags</a></h2>\n<p><a href=\"https://tailscale.com/docs/features/tags\">Tags</a> provide a way to authenticate and organize non-user devices like servers into functional groups for use in access control policies.</p>\n<p><a href=\"https://tailscale.com/docs/reference/visual-editor#tags\">Manage tags using the visual editor</a>.</p>\n<h2><a href=\"https://tailscale.com/docs/features/visual-editor#ip-sets\">IP sets</a></h2>\n<p><a href=\"https://tailscale.com/docs/features/tailnet-policy-file/ip-sets\">IP sets</a> let you create collections of IP addresses, hosts, and subnets to use in access control policies.</p>\n<p><a href=\"https://tailscale.com/docs/reference/visual-editor#ip-sets\">Manage IP sets using the visual editor</a>.</p>\n<h2><a href=\"https://tailscale.com/docs/features/visual-editor#hosts\">Hosts</a></h2>\n<p><a href=\"https://tailscale.com/docs/reference/syntax/policy-file#hosts\">Hosts</a> are a way to create friendly names for IP addresses and CIDR ranges to improve policy readability by replacing numeric addresses with meaningful identifiers.</p>\n<p><a href=\"https://tailscale.com/docs/reference/visual-editor#hosts\">Manage hosts using the visual editor</a>.</p>\n<h2><a href=\"https://tailscale.com/docs/features/visual-editor#node-attributes\">Node attributes</a></h2>\n<p><a href=\"https://tailscale.com/docs/reference/syntax/policy-file#nodeattrs\">Node attributes</a> let you apply settings and attributes to device to do things like control feature availability and device behavior across your tailnet.</p>\n<p><a href=\"https://tailscale.com/docs/reference/visual-editor#node-attributes\">Manage node attributes using the visual editor</a>.</p>\n<h2><a href=\"https://tailscale.com/docs/features/visual-editor#device-posture\">Device posture</a></h2>\n<p><a href=\"https://tailscale.com/docs/features/device-posture\">Device posture</a> rules let you specify the requirements a device must meet before it can access sensitive resources.</p>\n<p><a href=\"https://tailscale.com/docs/reference/visual-editor#device-posture\">Manage device posture rules using the visual editor</a>.</p>\n<h2><a href=\"https://tailscale.com/docs/features/visual-editor#auto-approvers\">Auto approvers</a></h2>\n<p><a href=\"https://tailscale.com/docs/reference/syntax/policy-file#autoapprovers\">Auto approvers</a> let you create policies to pre-approve specific operations for devices, such as advertising subnet routes or exit nodes, without manual intervention.</p>\n<p><a href=\"https://tailscale.com/docs/reference/visual-editor#auto-approvers\">Manage auto approvers using the visual editor</a>.</p>\n<h2><a href=\"https://tailscale.com/docs/features/visual-editor#tests\">Tests</a></h2>\n<p><a href=\"https://tailscale.com/docs/reference/syntax/policy-file#tests\">Tests</a> validate that access control changes meet expected behavior before saving.</p>\n<p><a href=\"https://tailscale.com/docs/reference/visual-editor#tests\">Manage tests using the visual editor</a>.</p>\n<h2><a href=\"https://tailscale.com/docs/features/visual-editor#data-synchronization\">Data synchronization</a></h2>\n<p>Changes in the visual editor immediately sync to the JSON editor after you save them. This bidirectional synchronization ensures consistency regardless of which editor you use.</p>\n<p>GitOps mode prevents modifications to maintain version control as the source of truth. In this mode, use the visual editor to preview and validate changes before committing them to your repository. The read-only mode indicates when GitOps manages your configuration. For GitOps implementation examples, refer to the documentation for <a href=\"https://tailscale.com/docs/integrations/github/gitops\">GitHub Actions</a>, <a href=\"https://tailscale.com/docs/integrations/gitlab/gitops\">GitLab CI</a>, and <a href=\"https://tailscale.com/docs/integrations/bitbucket/gitops\">Bitbucket</a>.</p>\n<p>When you use the visual editor, it automatically converts ACL syntax to grants syntax on the backend. Grants syntax supports all the same capabilities as ACL syntax with additional features like <a href=\"https://tailscale.com/docs/features/access-control/grants/grants-via\">route filtering</a> and <a href=\"https://tailscale.com/docs/features/access-control/grants/grants-app-capabilities\">app capabilities</a>. Refer to <a href=\"https://tailscale.com/docs/reference/grants-vs-acls\">grants versus ACLs</a> for more information.</p>\n<h3><a href=\"https://tailscale.com/docs/features/visual-editor#finding-and-filtering\">Finding and filtering</a></h3>\n<p>All major sections include search fields that filter content in real time. Search works across every visible column in a section. You can find configurations using any identifying information without switching search modes.</p>\n<p>The dropdown list arrow in search fields provides additional filtering options:</p>\n<ul>\n<li>Filter by user, group, device, or tag.</li>\n<li>Search by port or IP address.</li>\n<li>Apply multiple filters simultaneously.</li>\n</ul>\n<p>Real-time filtering helps manage large policy files efficiently. Type any part of a configuration to display only matching items. This approach eliminates manual scrolling through hundreds of entries.</p>\n<h3><a href=\"https://tailscale.com/docs/features/visual-editor#configuration-validation\">Configuration validation</a></h3>\n<p>The visual editor validates your input as you work. This approach lets you work through complex configurations without interruption. Required fields appear without optional labels because they represent the baseline requirement.</p>\n<p>Field-specific validation errors appear near the relevant fields, while validation errors that aren't field-specific appear at the top of the page. Examples of these include failed general tests and failed SSH tests.</p>\n<h3><a href=\"https://tailscale.com/docs/features/visual-editor#json-output-previews\">JSON output previews</a></h3>\n<p>Most configurations include JSON preview panels showing the HuJSON syntax your selections generate. These previews update immediately as you modify fields. The preview helps you understand how visual selections translate to policy file syntax.</p>\n<p>The JSON preview serves several purposes:</p>\n<ul>\n<li>Explore policy file syntax without leaving the visual editor.</li>\n<li>Verify that configurations produce expected output.</li>\n<li>Copy snippets for documentation or team discussions.</li>\n<li>Debug complex configurations by examining generated code.</li>\n<li>Share exact configurations with team members.</li>\n</ul>\n<p>The copy button lets you copy the policy JSON to your clipboard for use in version control, documentation, or team collaboration. This feature connects visual and code-based configuration workflows.</p>\n<p>JSON previews are available even when the policy file is locked because it's managed through GitOps. You can still view and copy generated HuJSON snippets for reference.</p>\n<h2><a href=\"https://tailscale.com/docs/features/visual-editor#feedback\">Feedback</a></h2>\n<p>The visual editor continues to evolve with regular feature additions. Your feedback helps prioritize improvements and identify issues.</p>\n<p>Select <strong>Give feedback</strong> from the top of the <a href=\"https://login.tailscale.com/admin/acls/visual\">Visual editor</a> page to submit suggestions, report bugs, or request features. The product team reviews all submissions and uses them to guide development priorities.</p>\n<p>Include specific use cases and workflows in your feedback. The more context you provide, the better the team can understand and address your needs. Screenshots and detailed descriptions help communicate complex issues or feature requests.</p>\n<p><img src=\"https://cdn.brandfetch.io/tailscale.com/fallback/lettermark/theme/dark/h/256/w/256/icon?c=1bfwsmEH20zzEfSNTed\" alt=\"Project Logo\"></p>\n<p>Ask AI</p>\n<p>reCAPTCHA</p>\n<p>Recaptcha requires verification.</p>\n<p>protected by <strong>reCAPTCHA</strong></p>\n"}