Feature
Temporary voice channels and TTS
Members join one channel and get their own voice room they can lock, hide, rename and hand over. Text-to-speech reads chat aloud for people without a mic.
Join to create
A member joins the hub channel; Hana creates their own room and deletes it when empty.
Owner controls
/vc lock, /vc hide, /vc limit, /vc permit, /vc reject and /vc name.
Handover
/vc transfer gives the room to someone else; /vc claim takes it over if the owner left.
Text-to-speech
/tts join reads the channel's chat aloud. Each member picks a voice with /tts myvoice.
Announcer
/tts announcer-join says who joined and left voice.
Speakerphone
/phone call opens a line to another server running Hana.
Set it up
- Create a voice channel called ➕ Create a room and a category for the rooms.
- Run
/vc setupwith that channel and category. - For TTS, join voice and run
/tts join. Server defaults are in/tts config.
Related guides
Questions
What happens when the owner leaves?
The room stays while others are in it. Anyone inside can run /vc claim to become the owner.
Can I stop TTS reading one person?
Admins can use /tts blacklist. Members can opt out in /tts myvoice.
Commands
Staff commands are marked with the permission they need. Full reference.
Temp voice & TTS
/vc setup
Administrator Set up the 'Join to Create' system.
join_channelThe exact voice channel users join to trigger creation.categoryThe category where new channels will be created.sync_permissionsoptional Sync new channels with category permissions? (Recommended)
/vc disable
Administrator Disable the voice system for this server.
/vc lock
Lock your channel (only allowed users can join).
/vc unlock
Unlock your channel (everyone can join).
/vc hide
Hide your channel from non-permitted users (also locks the channel).
/vc unhide
Unhide your locked channel (keeps it locked).
/vc name
Rename your channel.
new_nameThe new name for the channel.
/vc limit
Restrict maximum user limit.
limitNumber of users (0 for unlimited, max 99).
/vc permit
Allow multiple users or roles to join your locked channel.
targetFirst user or role to permit.target2optional Second user or role to permit (optional).target3optional Third user or role to permit (optional).target4optional Fourth user or role to permit (optional).target5optional Fifth user or role to permit (optional).
/vc reject
Kick and block multiple users from joining.
userFirst user to reject.user2optional Second user to reject (optional).user3optional Third user to reject (optional).user4optional Fourth user to reject (optional).user5optional Fifth user to reject (optional).
/vc claim
Claim ownership of the channel if the owner left.
/vc transfer
Hand your channel to someone else.
/vc info
View the channel's current settings.
/tts config
Manage Server Configure Auto-Join, TTS, and Announcer defaults.
/tts join
Enable TTS Chat Reading.
/tts announcer-join
Enable Voice Announcer.
/tts disconnect
Disconnect completely and clear voice session.
/tts myvoice
Select your voice, speed, pitch, or privacy opt-outs.
/tts say
Say something manually through Text-to-Speech in the active voice channel. Supports stackable audio and voice flags as well as smart Fish Audio tone tags.
textThe message to speak in voice. Supports stackable flags, Markdown triggers, action asterisks, and inline tone tags.
65 flags
--fish / --fish <id>Fish Audio AI: Switch to Fish Audio default AI voice or pass a 32-character community voice model ID (Hana Plus ⭐).--hanaVoice persona: Hana's private Fish Audio voice persona (enforces clean plain-text speech without reading emojis or markdown syntax).--voice <name>Voice selector: Match any voice by name or language code (e.g. --voice brian, --voice ava).--british / --ukVoice accent: British English accent (Ryan).--american / --usVoice accent: US English accent (Christopher).--aussie / --auVoice accent: Australian English accent (William).--irish / --ieVoice accent: Irish English accent (Connor).--japanese / --animeVoice accent: Japanese voice (Keita).--french / --frVoice accent: French voice (Henri).--german / --deVoice accent: German voice (Killian).--spanish / --esVoice accent: Spanish voice (Alvaro).--italian / --itVoice accent: Italian voice (Diego).--russian / --ruVoice accent: Russian voice (Dmitry).--korean / --koVoice accent: Korean voice (InJoon).--chinese / --cnVoice accent: Mandarin Chinese voice (Yunxi).--hindi / --hiVoice accent: Hindi voice (Madhur).--portuguese / --brVoice accent: Brazilian Portuguese voice (Antonio).--female / --girlGender override: Dynamically switch to a female voice in the current language.--male / --boyGender override: Dynamically switch to a male voice in the current language.--highPitch modifier: Elevated, bright pitch (+35Hz).--deepPitch modifier: Deep, resonant low pitch (-35Hz).--chipmunk / --heliumPitch modifier: Squeaky helium voice with accelerated tempo (+45Hz, +25% speed).--demon / --devilPitch & FX modifier: Low pitch (-45Hz) demonic speech with chorus and dark reverb.--monster / --giantPitch & FX modifier: Sub-bass rumble monster voice (-50Hz, -15% rate, low-end boost).--witch / --goblinPitch & FX modifier: High cackling screech (+40Hz) with trembling vibrato.--pitch <value>Custom pitch: Set exact pitch shift in Hz (e.g. --pitch +20Hz, --pitch -15Hz).--fast / --quickSpeed modifier: Accelerated speech pacing (+30% rate, 1.15x playback speed).--superfast / --sonicSpeed modifier: Ultra-fast speech delivery (+50% rate, 1.35x playback speed).--slowSpeed modifier: Slow, deliberate speech pacing (-20% rate, 0.85x playback speed).--turtle / --slothSpeed modifier: Ultra-slow crawl pacing (-35% rate, 0.75x playback speed).--slowmo / --matrixSpeed & FX modifier: Deep cinematic slow-motion playback (-20Hz pitch, 0.65x speed).--speed <value>Custom speed: Set exact speech rate or multiplier (e.g. --speed +30%, --speed 1.5).--echo / --caveAcoustic DSP filter: Subterranean multi-tap cave echo.--reverb / --cathedralAcoustic DSP filter: Cathedral hall reverberation and ambient delay.--stadiumAcoustic DSP filter: Massive arena announcement echo.--roomAcoustic DSP filter: Intimate small room acoustic reflection.--underwater / --muffledAcoustic DSP filter: Submerged low-pass acoustic dampening (450Hz).--radio / --walkie-talkieAcoustic DSP filter: Military walkie-talkie bandpass comms (1000-3000Hz).--phone / --telephoneAcoustic DSP filter: Narrowband vintage telephone receiver audio.--megaphone / --bullhornAcoustic DSP filter: Tinny acoustic projection horn with mid-frequency boost.--astronaut / --spaceAcoustic DSP filter: Apollo lunar astronaut space radio comms.--vintage / --oldradioAcoustic DSP filter: 1920s gramophone radio audio filter.--robot / --cyborgAudio FX filter: Resonant metallic robotic vocoder ring modulator (35Hz).--alien / --martianAudio FX filter: Cosmic alien flanger warble with pitch wobble.--8bit / --retro / --arcadeAudio FX filter: Crunchy 8-bit NES and arcade chiptune downsampler (11kHz u8).--haunted / --ghostAudio FX filter: Eerie ghostly echo and spectral delay.--vibrate / --cryingAudio FX filter: Trembling, nervous, emotional voice flutter.--tremolo / --stutterAudio FX filter: Rapid stuttering gating effect.--drunk / --woozyAudio FX filter: Slurring, wavering pitch wobble and unsteady tempo.--dizzy / --spinningAudio FX filter: Rapid circular 3D panning.--choir / --clonesAudio FX filter: Multi-voice doubling clone chorus.--8d / --panAudio FX filter: Smooth spatial auto-panning (headphones recommended).--reverse / --backwardsAudio FX filter: Speaks backwards by reversing audio playback.--anon / --anonymousUtility flag: Omits the author's username announcement (speaks message directly).--no-prefixUtility flag: Disables action and reply prefixing.--spell / --spelloutUtility flag: Spells out text letter-by-letter (e.g. H - A - N - A).--repeat <2-3>Utility flag: Repeats the spoken message multiple times (up to 3x).-# <text>Smart Fish Audio syntax: Discord subtext / footnote lines automatically map to [whispering] tone without pronouncing 'dash' or 'hash'.# / ## / ### <text>Smart Fish Audio syntax: Discord heading lines automatically map to [yelling] or [angry] tone without pronouncing 'hash'.***<text>***Smart Fish Audio syntax: Bold italic markdown dynamically applies the [emphasis] emotional tone tag.*<text>* / _<text>_Smart Fish Audio syntax: Standard italic markdown dynamically applies the [soft] emotional tone tag.*sighs* / *laughs* / *chuckles* / *clears throat*Smart Fish Audio syntax: Conversational action asterisks map to real acoustic sound effects ([sighing], [laughing], [chuckling], [clear throat], [sobbing], [panting], [groaning]).... / ....Smart Fish Audio syntax: Ellipsis pauses automatically generate realistic breathing and timing tags ([pause] and [long pause]).[angry] / [sad] / [embarrassed] / [excited] / [breathy]Fish Audio emotional tones: Direct bracket control tags to modulate voice feeling and expressiveness.[laughing] / [chuckling] / [crying loudly] / [crowd laughing]Fish Audio audio effects: Direct bracket tags for human vocalizations and environmental room reactions.
/tts skip
Skip the current message.
/tts stop
Stop current audio.
/tts flags
View the interactive guide of all available TTS sound effects, Fish Audio expressions, voice personas, and modifier flags.
/tts status
Current TTS session status.
/tts usage
Your Fish Audio voice usage (Hana Plus).
/tts blacklist
Admin Toggle TTS blacklist for a specific user in this server.
targetTarget member.
/tts analytics
Admin TTS usage on this server.
Speakerphone
/phone channel
Administrator Set the dedicated text channel for speakerphone incoming/outgoing calls.
channelThe text channel to route incoming/outgoing calls.
/phone call
Search for and open a live speakerphone call with another active server!
/phone call-contact
Direct-dial a mutually saved server contact.
contactSelect the contact server to dial.
/phone contacts
Administrator Add, view, or remove mutual server contacts.
actionAction to perform (Request/Add Contact, Remove Contact, List Contacts).target_server_idoptional The Discord ID of the target server.
/phone hangup
Disconnect the current active speakerphone call immediately.
/phone toggle
Administrator Toggle incoming and outgoing global phone calls on this server.
enabledSet to False to block other servers from calling or receiving calls from this server.
Try it on your server.
Free, set up in a few minutes, and easy to remove if it isn't for you.