loopshouse 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +161 -0
- package/SKILL.md +158 -0
- package/dist/loops.js +59836 -0
- package/package.json +31 -0
package/README.md
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# loopshouse
|
|
2
|
+
|
|
3
|
+
CLI and MCP server for [Loops House](https://loops.house) — manage hackathon projects, brainstorm with AI, and submit from your terminal or AI agent.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Run directly (no install)
|
|
9
|
+
npx loopshouse auth login
|
|
10
|
+
|
|
11
|
+
# Or install globally
|
|
12
|
+
npm i -g loopshouse
|
|
13
|
+
loops auth login
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Authentication
|
|
17
|
+
|
|
18
|
+
The CLI uses browser-based OAuth (Google or GitHub) via Supabase PKCE. Tokens are stored at `~/.loops/credentials.json` and auto-refresh on use.
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Log in (opens browser)
|
|
22
|
+
loops auth login
|
|
23
|
+
loops auth login --provider github
|
|
24
|
+
|
|
25
|
+
# Check status
|
|
26
|
+
loops auth status
|
|
27
|
+
|
|
28
|
+
# Log out
|
|
29
|
+
loops auth logout
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Commands
|
|
33
|
+
|
|
34
|
+
### Projects
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# List your projects
|
|
38
|
+
loops project list
|
|
39
|
+
|
|
40
|
+
# Create a project
|
|
41
|
+
loops project create --name "My DeFi App" --description "On-chain analytics tool"
|
|
42
|
+
|
|
43
|
+
# Create with full details
|
|
44
|
+
loops project create \
|
|
45
|
+
--name "My App" \
|
|
46
|
+
--description "Description" \
|
|
47
|
+
--githubUrl https://github.com/user/repo \
|
|
48
|
+
--techStack "React,Solidity,IPFS" \
|
|
49
|
+
--category DeFi
|
|
50
|
+
|
|
51
|
+
# Update a project
|
|
52
|
+
loops project update --id <project-id> --name "New Name" --techStack "React,Rust"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Hackathons
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# List hackathons accepting submissions
|
|
59
|
+
loops hackathon list
|
|
60
|
+
|
|
61
|
+
# List all hackathons (including past)
|
|
62
|
+
loops hackathon list --all
|
|
63
|
+
|
|
64
|
+
# AI-powered ideation for a hackathon
|
|
65
|
+
loops hackathon ideate -h <hackathon-id> -m "I want to build something with AI and blockchain"
|
|
66
|
+
|
|
67
|
+
# Ideate with your project context
|
|
68
|
+
loops hackathon ideate -h <hackathon-id> -p <project-id> -m "How does my project fit?"
|
|
69
|
+
|
|
70
|
+
# Submit to a hackathon
|
|
71
|
+
loops hackathon submit -h <hackathon-id> -p <project-id>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## MCP Server (AI Agent Integration)
|
|
75
|
+
|
|
76
|
+
Use the Loops CLI as an MCP tool server in Claude Code, Cursor, Windsurf, or any MCP-compatible agent.
|
|
77
|
+
|
|
78
|
+
### Claude Code
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# Auto-configure
|
|
82
|
+
loops mcp add
|
|
83
|
+
|
|
84
|
+
# Or manually — add to .mcp.json in your project root:
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"mcpServers": {
|
|
90
|
+
"loops": {
|
|
91
|
+
"command": "npx",
|
|
92
|
+
"args": ["loopshouse", "--mcp"]
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Cursor / Windsurf
|
|
99
|
+
|
|
100
|
+
Add to your MCP settings:
|
|
101
|
+
|
|
102
|
+
```json
|
|
103
|
+
{
|
|
104
|
+
"mcpServers": {
|
|
105
|
+
"loops": {
|
|
106
|
+
"command": "npx",
|
|
107
|
+
"args": ["loopshouse", "--mcp"]
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Available MCP Tools
|
|
114
|
+
|
|
115
|
+
| Tool | Description |
|
|
116
|
+
|------|-------------|
|
|
117
|
+
| `auth_login` | Authenticate via browser OAuth |
|
|
118
|
+
| `auth_status` | Check authentication status |
|
|
119
|
+
| `auth_logout` | Clear stored credentials |
|
|
120
|
+
| `project_list` | List your projects |
|
|
121
|
+
| `project_create` | Create a new project |
|
|
122
|
+
| `project_update` | Update project details |
|
|
123
|
+
| `hackathon_list` | Browse open hackathons |
|
|
124
|
+
| `hackathon_ideate` | AI brainstorming for a hackathon |
|
|
125
|
+
| `hackathon_submit` | Submit a project to a hackathon |
|
|
126
|
+
|
|
127
|
+
### Example Agent Usage
|
|
128
|
+
|
|
129
|
+
Once configured, your AI agent can:
|
|
130
|
+
|
|
131
|
+
> "List my Loops House projects"
|
|
132
|
+
> "Submit my project to the Shanghai hackathon"
|
|
133
|
+
> "Help me brainstorm ideas for the upcoming hackathon"
|
|
134
|
+
|
|
135
|
+
The agent calls the MCP tools automatically — no manual CLI commands needed.
|
|
136
|
+
|
|
137
|
+
## Environment Variables
|
|
138
|
+
|
|
139
|
+
| Variable | Default | Description |
|
|
140
|
+
|----------|---------|-------------|
|
|
141
|
+
| `LOOPS_PLATFORM_URL` | `https://loops.house` | Override the platform API URL (for local dev) |
|
|
142
|
+
|
|
143
|
+
## Development
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
# Clone and install
|
|
147
|
+
cd skill && bun install
|
|
148
|
+
|
|
149
|
+
# Run in dev mode
|
|
150
|
+
bun run dev -- auth status
|
|
151
|
+
|
|
152
|
+
# Build for npm
|
|
153
|
+
bun run build
|
|
154
|
+
|
|
155
|
+
# Test compiled output
|
|
156
|
+
node dist/loops.js --help
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## License
|
|
160
|
+
|
|
161
|
+
MIT
|
package/SKILL.md
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: loops-cli
|
|
3
|
+
description: Loops House CLI for managing hackathon projects, browsing hackathons, AI-powered ideation, and submission — from the terminal or as an AI agent tool. Use when building projects for hackathons, submitting to hackathons, ideating project ideas, or managing Loops House projects programmatically. Triggers on "loops", "hackathon", "submit project", "ideate", "Loops House".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Loops House CLI
|
|
7
|
+
|
|
8
|
+
Manage the full hackathon builder lifecycle from terminal or AI agent.
|
|
9
|
+
|
|
10
|
+
## Prerequisites
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# No install needed — use npx:
|
|
14
|
+
npx loopshouse auth login
|
|
15
|
+
|
|
16
|
+
# Or install globally:
|
|
17
|
+
npm i -g loopshouse
|
|
18
|
+
loops auth login
|
|
19
|
+
|
|
20
|
+
# For local dev, override the platform URL:
|
|
21
|
+
export LOOPS_PLATFORM_URL="http://localhost:3000"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Authentication
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
loops auth login # Browser OAuth (Google/GitHub) → saves to ~/.loops/credentials.json
|
|
28
|
+
loops auth status # Check current session
|
|
29
|
+
loops auth logout # Clear stored credentials
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
All commands below require authentication.
|
|
33
|
+
|
|
34
|
+
## Core Workflow
|
|
35
|
+
|
|
36
|
+
### 1. Browse open hackathons
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
loops hackathon list # Shows building + upcoming hackathons only
|
|
40
|
+
loops hackathon list --all # Include judging/completed/finalized
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Output includes: id, name, theme, phase, problem_statements, dates.
|
|
44
|
+
|
|
45
|
+
### 2. Create or update a project
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# Create (minimal)
|
|
49
|
+
loops project create --name "My DApp" --description "On-chain analytics"
|
|
50
|
+
|
|
51
|
+
# Create (full)
|
|
52
|
+
loops project create \
|
|
53
|
+
--name "My DApp" \
|
|
54
|
+
--description "On-chain analytics dashboard" \
|
|
55
|
+
--tagline "Real-time DeFi insights" \
|
|
56
|
+
--category "DeFi" \
|
|
57
|
+
--githubUrl https://github.com/user/repo \
|
|
58
|
+
--youtubeUrl https://youtube.com/watch?v=demo \
|
|
59
|
+
--websiteUrl https://mydapp.xyz \
|
|
60
|
+
--logoUrl https://mydapp.xyz/logo.png \
|
|
61
|
+
--techStack "React,Solidity,The Graph,IPFS" \
|
|
62
|
+
--keyFeatures "On-chain analytics,Real-time alerts,Portfolio tracking" \
|
|
63
|
+
--screenshotUrls "https://i.imgur.com/a.png,https://i.imgur.com/b.png" \
|
|
64
|
+
--additionalLinks '[{"label":"Docs","url":"https://docs.mydapp.xyz"}]' \
|
|
65
|
+
--socialLinks '[{"label":"Twitter","url":"https://twitter.com/mydapp"}]'
|
|
66
|
+
|
|
67
|
+
# Update
|
|
68
|
+
loops project update --id <project-id> --description "Updated desc" --techStack "React,Rust,WASM"
|
|
69
|
+
|
|
70
|
+
# List your projects
|
|
71
|
+
loops project list
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Create/Update fields:**
|
|
75
|
+
|
|
76
|
+
| Flag | Description | Format |
|
|
77
|
+
|------|-------------|--------|
|
|
78
|
+
| `--name` | Project name | string |
|
|
79
|
+
| `--description` | Full description | string |
|
|
80
|
+
| `--tagline` | Short tagline | string |
|
|
81
|
+
| `--category` | Category (DeFi, NFT, DAO, etc.) | string |
|
|
82
|
+
| `--githubUrl` | GitHub repo URL | URL |
|
|
83
|
+
| `--youtubeUrl` | YouTube demo URL | URL |
|
|
84
|
+
| `--websiteUrl` | Project website | URL |
|
|
85
|
+
| `--logoUrl` | Logo image URL | URL |
|
|
86
|
+
| `--techStack` | Tech stack | comma-separated |
|
|
87
|
+
| `--keyFeatures` | Key features | comma-separated |
|
|
88
|
+
| `--screenshotUrls` | Screenshot URLs | comma-separated |
|
|
89
|
+
| `--additionalLinks` | Extra links | JSON `[{label,url}]` |
|
|
90
|
+
| `--socialLinks` | Social links | JSON `[{label,url}]` |
|
|
91
|
+
| `--teamId` | Team ID (create only) | UUID |
|
|
92
|
+
| `--hackathonId` | Hackathon ID (create only) | UUID |
|
|
93
|
+
|
|
94
|
+
### 3. Ideate with AI mentor
|
|
95
|
+
|
|
96
|
+
Brainstorm project ideas for a specific hackathon. The AI mentor knows the hackathon's problem statements, theme, and sponsor tracks. Pass `--projectId` to include your project details for contextual feedback on alignment and progress.
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
# General ideation
|
|
100
|
+
loops hackathon ideate \
|
|
101
|
+
--hackathonId <hackathon-id> \
|
|
102
|
+
--message "I want to build something with AI and blockchain"
|
|
103
|
+
|
|
104
|
+
# Ideation with project context (recommended)
|
|
105
|
+
loops hackathon ideate \
|
|
106
|
+
--hackathonId <hackathon-id> \
|
|
107
|
+
--projectId <project-id> \
|
|
108
|
+
--message "How does my project align with this hackathon?"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
For multi-turn conversations, pass prior history as JSON:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
loops hackathon ideate \
|
|
115
|
+
--hackathonId <id> \
|
|
116
|
+
--projectId <project-id> \
|
|
117
|
+
--message "What about a decentralized identity solution?" \
|
|
118
|
+
--history '[{"role":"user","content":"I want to build with AI"},{"role":"assistant","content":"Great! Consider..."}]'
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 4. Submit to hackathon
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
loops hackathon submit \
|
|
125
|
+
--hackathonId <hackathon-id> \
|
|
126
|
+
--projectId <project-id>
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Phase-gated: only works during the `building` phase (between start_date and submission_deadline). Team ID is auto-resolved from the project.
|
|
130
|
+
|
|
131
|
+
## MCP Mode
|
|
132
|
+
|
|
133
|
+
Register as an MCP server for AI agent integration:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
loops mcp add
|
|
137
|
+
loops --mcp # Start as MCP stdio server
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Aliases
|
|
141
|
+
|
|
142
|
+
| Long flag | Short |
|
|
143
|
+
|-----------|-------|
|
|
144
|
+
| `--name` | `-n` |
|
|
145
|
+
| `--description` | `-d` |
|
|
146
|
+
| `--githubUrl` | `-g` |
|
|
147
|
+
| `--hackathonId` | `-h` |
|
|
148
|
+
| `--projectId` | `-p` |
|
|
149
|
+
| `--message` | `-m` |
|
|
150
|
+
| `--teamId` | `-t` |
|
|
151
|
+
| `--id` (update) | `-i` |
|
|
152
|
+
|
|
153
|
+
## Architecture
|
|
154
|
+
|
|
155
|
+
- **Auth**: Supabase PKCE OAuth flow, tokens stored at `~/.loops/credentials.json`, auto-refreshed on use
|
|
156
|
+
- **Data commands** (list, create, update, submit): Direct Supabase client queries with user RLS context
|
|
157
|
+
- **AI commands** (ideate): Call platform API route (`/api/builder-agents/project-ideator`) with Bearer token auth, optionally including project snapshot for contextual feedback
|
|
158
|
+
- **Framework**: Built with [incur](https://github.com/nichochar/incur) — typed CLI + MCP + skill generation
|