A modern, responsive web client for ChenPilot - a crypto wallet management system with AI agent capabilities. Built with Next.js, TypeScript, and Tailwind CSS.
- Node.js 18+
- pnpm (recommended) or npm
- ChenPilot Experimental Backend (see AGENT_INTEGRATION.md)
-
Clone the repository
git clone <repository-url> cd chenpilot-client
-
Install dependencies
pnpm install
-
Set up environment variables
cp .env.example .env.local
Update the environment variables in
.env.local:NEXT_PUBLIC_API_BASE_URL=http://localhost:2333 NEXT_PUBLIC_GOOGLE_CLIENT_ID=your_google_client_id NEXT_PUBLIC_APP_NAME=ChenPilot NEXT_PUBLIC_APP_VERSION=1.0.0
-
Start the experimental backend (required for full functionality)
cd ../chenpilot-experimental npm install npm run dev -
Start the development server
cd ../chenpilot-client pnpm dev -
Test the integration
node test-integration.js
-
Open your browser Navigate to http://localhost:3000
pnpm dev- Start development serverpnpm build- Build for productionpnpm start- Start production serverpnpm lint- Run ESLintpnpm test- Run tests (when implemented)
This project uses GitHub Actions for continuous integration and deployment to Vercel.
Before the CI/CD pipeline can run, configure the following secrets in your GitHub repository:
- Navigate to Settings → Secrets and variables → Actions
- Add the following repository secrets:
| Secret Name | Description | How to Obtain |
|---|---|---|
VERCEL_TOKEN |
Vercel API token | Go to Vercel Account Settings → Create new token |
VERCEL_ORG_ID |
Vercel organization ID | Run vercel link in your project, then check .vercel/project.json |
VERCEL_PROJECT_ID |
Vercel project ID | Run vercel link in your project, then check .vercel/project.json |
On Pull Requests:
- Runs CI checks (install, lint, build)
- Creates a Vercel preview deployment
- Comments the preview URL on the PR
- Blocks merge if any check fails
On Push to Main:
- Runs CI checks (install, lint, build)
- Deploys to Vercel production
- Updates deployment summary
All deployments require passing:
- ✅ Dependency installation (
pnpm install --frozen-lockfile) - ✅ Linting (
pnpm lint) - ✅ Build (
pnpm build) - ✅ Tests (
pnpm test- when implemented)
This project uses Husky to enforce code quality before commits.
Husky hooks are automatically installed when you run:
pnpm installThe prepare script in package.json handles the installation.
Before each commit, the following checks run automatically:
- Linting: ESLint runs on all staged
.js,.jsx,.ts,.tsxfiles - Auto-fix: ESLint will attempt to fix issues automatically
- Commit blocking: If linting fails, the commit is blocked
Hooks not running?
# Reinstall hooks
pnpm exec husky install
# Check hook permissions
chmod +x .husky/pre-commitSkip hooks (emergency only):
git commit --no-verify -m "your message"
⚠️ Note: Skipping hooks should be rare. The CI pipeline will still enforce all checks.
Ensure all required environment variables are set in your deployment platform.
- 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.
For support and questions:
- Create an issue in the repository
- Check the documentation
- Contact the development team
Built with love by the ChenPilot Team