A modern, responsive web client for ChenPilot - a crypto wallet management system with AI agent capabilities. Built with Next.js, TypeScript, and Tailwind CSS.
💡 Troubleshooting: Having issues setting up locally? Check out our Troubleshooting Guide for solutions to common environment, port, socket, and git hook problems.
- 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-commitFor more detailed failure modes, see Troubleshooting Guide.
Skip 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.
For guidelines on contributing code, submitting Architectural Decision Records (ADRs), and code styles, see CONTRIBUTING.md.
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 Troubleshooting Guide and documentation
- Contact the development team
Built with love by the ChenPilot Team