Support · Tickets triaged, replies drafted, the recurring ones found. · a tool
A shared support mailbox your whole team answers from
The open-source project freescout, by freescout-help-desk
“FreeScout — Free self-hosted omnichannel AI-powered helpdesk & shared mailbox” — the project's own words, on GitHub
What it does
You get a shared support inbox that runs on your own server. Every email to your support address lands as a conversation your team can see, assign, answer and close from one screen, with private notes the customer never sees, auto-replies, and a warning when two people open the same thread at once. It connects to any mailbox over IMAP and SMTP, or straight to Google Workspace and Microsoft 365, and it can log phone calls as conversations too. Because it is a plain PHP and database app on a machine you control, your whole customer history stays yours.
Replaces
a hosted help-desk subscription
For
A founder whose support runs out of a shared email login and who wants a proper queue, assignment and history without handing customer conversations to a hosted vendor.
Not for
Not for someone with no server or hosting account to put it on: this is a PHP and MySQL web app that needs Nginx or Apache, a database and a cron job, not a desktop app you download and open.
Setup
45 min · Claude Code, Kimi, Gemini CLI or Codex · a Linux server or shared hosting account, a web server (Nginx or Apache), PHP 7.4 or 8.2 and newer (not 8.1), MySQL, MariaDB or PostgreSQL, a dedicated support mailbox with IMAP and SMTP access
Get it running
Paste this into the AI that runs on your computer. It does the install, checks it works, and tells you what to type first. If anything fails, paste the error back to it.
Paste into Claude Code
Install freescout (https://github.com/freescout-help-desk/freescout) on this computer and get it working for me. I am not a developer; explain each step in one line as you go and never skip one. You are Claude Code, running on my machine.
1. Check what this machine already has (git, Python or Node as the project needs, Docker if the README says so). Tell me anything missing and install it, asking me before anything that needs my password.
2. Clone https://github.com/freescout-help-desk/freescout into ~/tools/freescout and follow the README's install exactly.
3. Configure it. If it needs an API key or a login, stop and ask me for it; never guess one and never store it anywhere except where the README says.
Tool-specific notes: Use PHP 8.2 or newer, or 7.4, never 8.1: the install guide says 8.1 has parsing bugs that break it. Install the mysql, mbstring, xml, imap, zip, gd, curl and intl extensions alongside it.
Point the web server's root at the repo's public/ folder, not the repo root, and make the web-server user (www-data) own every file with sudo chown -R www-data:www-data on the install directory. "failed to open stream" permission errors are the most common failure and this is the fix.
Do not create a .env file by hand; open https://your-domain/install and let the web installer check extensions, connect the database and create the admin user.
Add the cron line for the www-data user, * * * * * php /path/to/artisan schedule:run, without a --no-interaction flag, or no email will ever be fetched. Then smoke-test with php /path/to/artisan freescout:check-requirements and show me the output.
Browser push notifications only work over HTTPS, so set up a certificate before calling it done.
Stop and ask me for the support mailbox's IMAP and SMTP details; it must be an address nobody else reads.
4. Run the smallest test the README gives, and show me the output.
5. When it works, tell me what to type first, in one line, for this job: Connect one support mailbox.
If anything fails, show me the exact error and fix it before going on.
Paste into Kimi
Install freescout (https://github.com/freescout-help-desk/freescout) on this computer and get it working for me. I am not a developer; explain each step in one line as you go and never skip one. You are Kimi, running on my machine.
1. Check what this machine already has (git, Python or Node as the project needs, Docker if the README says so). Tell me anything missing and install it, asking me before anything that needs my password.
2. Clone https://github.com/freescout-help-desk/freescout into ~/tools/freescout and follow the README's install exactly.
3. Configure it. If it needs an API key or a login, stop and ask me for it; never guess one and never store it anywhere except where the README says.
Tool-specific notes: Use PHP 8.2 or newer, or 7.4, never 8.1: the install guide says 8.1 has parsing bugs that break it. Install the mysql, mbstring, xml, imap, zip, gd, curl and intl extensions alongside it.
Point the web server's root at the repo's public/ folder, not the repo root, and make the web-server user (www-data) own every file with sudo chown -R www-data:www-data on the install directory. "failed to open stream" permission errors are the most common failure and this is the fix.
Do not create a .env file by hand; open https://your-domain/install and let the web installer check extensions, connect the database and create the admin user.
Add the cron line for the www-data user, * * * * * php /path/to/artisan schedule:run, without a --no-interaction flag, or no email will ever be fetched. Then smoke-test with php /path/to/artisan freescout:check-requirements and show me the output.
Browser push notifications only work over HTTPS, so set up a certificate before calling it done.
Stop and ask me for the support mailbox's IMAP and SMTP details; it must be an address nobody else reads.
4. Run the smallest test the README gives, and show me the output.
5. When it works, tell me what to type first, in one line, for this job: Connect one support mailbox.
If anything fails, show me the exact error and fix it before going on.
Paste into Gemini CLI
Install freescout (https://github.com/freescout-help-desk/freescout) on this computer and get it working for me. I am not a developer; explain each step in one line as you go and never skip one. You are Gemini CLI, running on my machine.
1. Check what this machine already has (git, Python or Node as the project needs, Docker if the README says so). Tell me anything missing and install it, asking me before anything that needs my password.
2. Clone https://github.com/freescout-help-desk/freescout into ~/tools/freescout and follow the README's install exactly.
3. Configure it. If it needs an API key or a login, stop and ask me for it; never guess one and never store it anywhere except where the README says.
Tool-specific notes: Use PHP 8.2 or newer, or 7.4, never 8.1: the install guide says 8.1 has parsing bugs that break it. Install the mysql, mbstring, xml, imap, zip, gd, curl and intl extensions alongside it.
Point the web server's root at the repo's public/ folder, not the repo root, and make the web-server user (www-data) own every file with sudo chown -R www-data:www-data on the install directory. "failed to open stream" permission errors are the most common failure and this is the fix.
Do not create a .env file by hand; open https://your-domain/install and let the web installer check extensions, connect the database and create the admin user.
Add the cron line for the www-data user, * * * * * php /path/to/artisan schedule:run, without a --no-interaction flag, or no email will ever be fetched. Then smoke-test with php /path/to/artisan freescout:check-requirements and show me the output.
Browser push notifications only work over HTTPS, so set up a certificate before calling it done.
Stop and ask me for the support mailbox's IMAP and SMTP details; it must be an address nobody else reads.
4. Run the smallest test the README gives, and show me the output.
5. When it works, tell me what to type first, in one line, for this job: Connect one support mailbox.
If anything fails, show me the exact error and fix it before going on.
Paste into Codex
Install freescout (https://github.com/freescout-help-desk/freescout) on this computer and get it working for me. I am not a developer; explain each step in one line as you go and never skip one. You are Codex, running on my machine.
1. Check what this machine already has (git, Python or Node as the project needs, Docker if the README says so). Tell me anything missing and install it, asking me before anything that needs my password.
2. Clone https://github.com/freescout-help-desk/freescout into ~/tools/freescout and follow the README's install exactly.
3. Configure it. If it needs an API key or a login, stop and ask me for it; never guess one and never store it anywhere except where the README says.
Tool-specific notes: Use PHP 8.2 or newer, or 7.4, never 8.1: the install guide says 8.1 has parsing bugs that break it. Install the mysql, mbstring, xml, imap, zip, gd, curl and intl extensions alongside it.
Point the web server's root at the repo's public/ folder, not the repo root, and make the web-server user (www-data) own every file with sudo chown -R www-data:www-data on the install directory. "failed to open stream" permission errors are the most common failure and this is the fix.
Do not create a .env file by hand; open https://your-domain/install and let the web installer check extensions, connect the database and create the admin user.
Add the cron line for the www-data user, * * * * * php /path/to/artisan schedule:run, without a --no-interaction flag, or no email will ever be fetched. Then smoke-test with php /path/to/artisan freescout:check-requirements and show me the output.
Browser push notifications only work over HTTPS, so set up a certificate before calling it done.
Stop and ask me for the support mailbox's IMAP and SMTP details; it must be an address nobody else reads.
4. Run the smallest test the README gives, and show me the output.
5. When it works, tell me what to type first, in one line, for this job: Connect one support mailbox.
If anything fails, show me the exact error and fix it before going on.
What to point it at first
1
Connect one support mailbox
Create a fresh support address that only FreeScout will read, connect it over IMAP and SMTP, then email it from your own account and watch the message arrive as a conversation you can assign.
2
Answer a real ticket with a note behind it
Take one genuine customer email, leave an internal note on what you decided, reply from inside FreeScout, and check the customer received a normal email from your support address with the thread intact.
3
Find the question you keep answering
After a week, search closed conversations for the three subjects that recur and write one good answer for each, checking the wording against what you actually told customers before your team reuses it.
What it must never do unattended
It drafts. It never replies to a customer.
Anything about money, a refund or a legal word goes to a person.
Never point it at a mailbox a person also reads: it marks every incoming email as read and skips any a person opened first, so a shared personal inbox will silently lose messages.
Never switch on the automatic-update cron job before you have run tools/update.sh by hand once and seen it succeed.
Who made it
freescout-help-desk/freescout on GitHub, under the AGPL-3.0 licence. 4,530 stars, checked 11 September 2026. Last change 4 September 2026. We did not write it; we checked it, and wrote this page so you can use it.