How do I add a new tab to the 3D Viewport? I'm creating a Panel that sits in the 3D Viewport.  Right now when it runs, it is inserted under the Misc tab.  I'd like to create my own tab to place it in.  How do I do that?
class NormalToolPropsPanel(bpy.types.Panel):

    &quot;&quot;&quot;Properties Panel for the Normal Tool on tool shelf&quot;&quot;&quot;
    bl_label = &quot;Normal Tool Properties Panel&quot;
    bl_idname = &quot;OBJECT_PT_normal_tool_props&quot;
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'

    def draw(self, context):
        layout = self.layout

        scene = context.scene
        settings = scene.my_tool
        
        col = layout.column();
        col.prop(settings, &quot;strength&quot;)
        col.prop(settings, &quot;normal_length&quot;)
        col.prop(settings, &quot;selected_only&quot;)
Mr batFINGER always has the good stuff, but this should get you started:
import bpy
from bpy.types import Panel


class TestPanel(Panel):
    bl_space_type = &quot;VIEW_3D&quot;
    bl_region_type = &quot;UI&quot;
    bl_label = &quot;Test Panel&quot;
    bl_category = &quot;Test Panel&quot;

    def draw(self, context):
        pass

class TestPanelSub(TestPanel, Panel):
    bl_parent_id = &quot;TestPanel&quot;
    bl_label = &quot;Test Panel Sub Panel&quot;

    def draw(self, context): 

        layout = self.layout

bpy.utils.register_class(TestPanel)
bpy.utils.register_class(TestPanelSub)