Website • Dashboard • Invite Bot • Vote • Documentation • Support Server
SkyHelper is a comprehensive Discord bot designed specifically for the Sky: Children of the Light community. It provides essential tools and information to enhance your Sky experience, from tracking daily events to managing spirit guides and seasonal content.
- Event Tracking: Stay updated with daily quests, seasonal events, and special occasions
- Spirit Information: Comprehensive database of all spirits, their locations, and cosmetics
- Shards Calendar: Never miss a shard event with automated reminders
- Multi-language Support: Available in multiple languages thanks to our amazing community
- Real-time Updates: Get instant notifications for game events and updates
- Interactive Commands: Rich embeds and user-friendly slash commands
- Planner: Plan and track your sky progress.
- and much more...
This monorepo contains all components of the SkyHelper ecosystem:
skyhelper/
├── packages/
│ ├── skyhelper/ # Main Discord bot application
│ ├── jobs/ # Scheduled tasks and reminders
│ ├── utils/ # Shared utility functions
│ └── constants/ # Game data, localizations, and constants
├── apps/
│ └── docs/ # Documentation website
| └── website/ # Website and dashboard for the skyhelper bot
├── docker-compose.yml # Production deployment
└── Configuration files
- Node.js 18+ and pnpm 9.4.0+
- MongoDB database (local or cloud)
- Discord Bot Token (Discord Developer Portal)
-
Clone the repository
git clone https://github.com/imnaiyar/SkyHelper.git cd SkyHelper -
Install dependencies
pnpm install --frozen-lockfile
-
Build the project
pnpm build
-
Configure environment
cp packages/skyhelper/.env.example packages/skyhelper/.env cp packages/jobs/.env.example packages/jobs/.env # Edit both files with your Discord token, MongoDB URI, API key, webhook URLs, etc. -
Run the workspace
pnpm dev
# Bot only
pnpm bot:dev
# Jobs only
pnpm jobs:dev
# Production bot
pnpm botFrom the package directories, you can also run them directly:
cd packages/skyhelper && pnpm dev
cd packages/jobs && pnpm devpnpm build
pnpm test
pnpm lintFor production deployment, use Docker Compose:
# Deploy both bot and jobs
docker compose up -d --build
# Deploy only the bot
docker compose up -d --build skyhelper
# Deploy only scheduled jobs
docker compose up -d --build jobsThe compose file passes the runtime environment through from your shell, so set the same variables you use locally before starting the services.
Compose file can also pick up env variables through .env file so you can have that at package root (or you can specify the file path with --env-file cli flag like docker compose --env-file ./path/to/.env up -d --build) with all the variables required by docker-compose.yml depending on services you use
- packages/skyhelper is the main Discord bot and API process.
- packages/jobs is the separate scheduler process for reminders and live updates.
If you only need the bot without scheduled tasks, you can skip packages/jobs. If you rely on reminders or live updates, run both services together.
# Install dependencies (required first time)
pnpm install --frozen-lockfile
# Start development servers
pnpm dev # All services
pnpm bot:dev # Bot only
pnpm jobs:dev # Jobs only
# Building and testing
pnpm build # Build all packages
pnpm test # Run test suite
pnpm lint # Code lintingThis project maintains high code quality through:
- TypeScript for type safety
- ESLint for code consistency
- Prettier for formatting
- Jest for testing
- Husky for git hooks
- Conventional Commits for clear commit messages
We welcome contributions from the Sky community! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feat/amazing-feature - Install dependencies:
pnpm install --frozen-lockfile - Build the project:
pnpm build - Make your changes
- Test your changes:
pnpm test - Lint your code:
pnpm lint - Commit using conventional commits:
git commit -m "feat: add amazing feature" - Push to your branch:
git push origin feat/amazing-feature - Create a Pull Request
We follow Conventional Commits:
feat: add new spirit information command
fix: resolve memory leak in event handlers
docs: update installation instructions
refactor: optimize database queries
This project is licensed under the ISC License - see the LICENSE file for details.
Planner uses data from Sky Planner by Silverfeelin and is inspired by it.
Special thanks to the dedicated community members who help provide accurate shard predictions:
- Zhii (zhiiran4275)
- Christian (christiankingfu)
- Hucker (hucker_)
- Plutoy (plutoy)
- Kion (kion_anzu)
- LN (ln.cookie)
- Gale (galerowfylery)
- Stoat (.stoat.)
Thanks to the content creators and guide makers who provide valuable resources:
-
Clement (clement8978)
-
Mimi (mimi4117)
-
Sam (sam6917)
-
Zed (zedlocked_)
-
Art (lovecry)
-
io - Daily quest guides
-
And all others who do the awesome job of creating guides
Many of SkyHelper's guide features are powered by the incredible infographics and guides created by these community contributors.
Made with ❤️ for the Sky: Children of the Light community