Tag supports integration with the Channel Form tag to allow submitting/editing of tags to new entries or editing existing one. It allows you to call the same Tag widget as available in the CP, and can be styled however you wish, but the default appearance looks similar to the one in the CP.

click to enlarge

Simply place the following template variable within your Channel Form form where you'd like your Tag field(s) to show up:

{field:tag_fieldtype_name}  `

A complete example of a Channel Form form would look like this:

<h1>Create a new Entry</h1>

{exp:channel:form
    channel="articles"
    return="tags/saef/URL_TITLE"
}
    <p>
        <label>Title:</label><br />
        <input type="text" name="title" size="80" style="width: 600px;" />
    </p>
    <p>
        <label>Body:</label><br />
        <textarea name="body" style="width: 600px; height: 50px;" /></textarea>
    </p>
    <p>
    {field:tag_fieldtype_short_name}
    <!-- Tag field will populate here -->
    </p>
    <p>
        <input type="submit" name="submit" value="Update" />
    </p>

{if no_results}
    <p>No Results</p>
{/if}

{/exp:channel:form}