A native macOS IRC client built with Swift and SwiftUI, inspired by the classic mIRC for Windows.
- Native macOS app - Built with SwiftUI for a modern, native experience
- SSL/TLS support - Secure connections on port 6697
- Multiple channels - Join and manage multiple channels simultaneously
- Private messaging - Double-click a user to open a DM
- User list - See who's in each channel with op (@) and voice (+) status
- Topic display - Channel topics shown at the top
- Unread indicators - Badge shows unread message count per channel
- Nick and mode tracking - Real-time updates when users change nicks or get op/voice
- macOS 13.0 or later
- Xcode 15.0 or later
-
Clone the repository:
git clone https://github.com/yourusername/mARC.git cd mARC -
Open the project in Xcode:
open mARC.xcodeproj
-
Build and run (⌘R)
- Enter the server hostname (e.g.,
irc.libera.chat) - Enter the port (
6667for plain,6697for SSL) - Toggle SSL if using a secure connection
- Enter your desired nickname
- Click Connect
| Command | Description |
|---|---|
/join #channel |
Join a channel |
/j #channel |
Join a channel (shortcut) |
/part |
Leave current channel |
/part #channel |
Leave specified channel |
/quit [message] |
Disconnect from server |
/msg nick message |
Send private message |
/me action |
Send action message |
/nick newnick |
Change your nickname |
/topic |
View channel topic |
/topic new topic |
Set channel topic (requires op) |
/mode +o nick |
Give op status (requires op) |
/mode +v nick |
Give voice status (requires op) |
/kick nick [reason] |
Kick user from channel (requires op) |
/raw command |
Send raw IRC command |
- Enter - Send message
- Click channel - Switch to channel
- Double-click user - Open private message
mARC/
├── mARCApp.swift # App entry point
├── ContentView.swift # Main UI
├── IRCClient.swift # IRC protocol & networking
├── IRCMessage.swift # Message model & parser
├── Channel.swift # Channel model
├── MessageView.swift # Message display component
└── UserListView.swift # User list component
Some popular networks to try:
| Network | Server | SSL Port |
|---|---|---|
| Libera.Chat | irc.libera.chat | 6697 |
| OFTC | irc.oftc.net | 6697 |
| EFNet | irc.efnet.org | 6697 |
| IRCnet | open.ircnet.net | 6697 |
- Nick highlighting/mentions
- Auto-reconnect
By default, IRC servers expose your IP address or hostname to other users. To protect your privacy:
- Use a VPN - Easiest solution
- Register your nick - Some networks (like Libera.Chat) provide hostname cloaking for registered users
- Use SASL - Authenticate before joining channels (coming soon)
Contributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by mIRC, the classic Windows IRC client
- Built with SwiftUI and Apple's Network framework