🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@blockxai/camp-codegen

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@blockxai/camp-codegen

Camp Codegen CLI & SDK — interactive AI → compile → deploy with colorful wizard, magical logs, and searchable preset library

npmnpm
Version
2.0.2
Version published
Weekly downloads
4
-66.67%
Maintainers
1
Weekly downloads
 
Created
Source

@blockxai/camp-codegen

Camp Codegen CLI & SDK — interactive AI → compile → deploy with a colorful wizard, magical narrative logs, and a searchable preset library. Designed for beginners: great defaults, live logs, and auto-saved outputs.

  • Default API: https://evi-v3-production.up.railway.app
  • Default network: basecamp

Install

npm i @blockxai/camp-codegen

Node 18+ is required (native fetch).

Environment

  • No API key required

  • Optional overrides:

    • API_BASE_URL (or ACAD_BASE_URL)
    • NETWORK (default: basecamp)
    • MAX_ITERS (default: 11)
    • NO_ANIMATION=1 (disable intro animation; colors still apply)
  • Magical Logger (narrative logs → webhook):

    • MAGICAL_LOGS=1 (default on; set 0 to disable)
    • MAGICAL_WEBHOOK_URL=https://your-bridge.example.com/magical (optional)
    • MAGICAL_STREAM=1 (stream each event) or 0 (send one final summary)

CLI (two simple commands)

After install, you get two commands: camp and acad.

# 1) Generate from prompt and deploy
camp deploy:prompt --prompt "ERC20 with 1,000,000 supply" [--filename AIGenerated.sol] [--maxIters 11] [--arg value]*

# 2) Deploy from a local Solidity file
camp deploy:file --file ./MyToken.sol [--contractName MyToken] [--filename MyToken.sol] [--maxIters 11]

Just run camp with no arguments to launch a colorful, guided wizard. It asks what you want to do today, offers popular templates and a searchable preset library, collects minimal inputs, and streams logs live while saving everything locally.

camp          # opens the interactive wizard
camp wizard   # alias
camp interactive
  • Run directories are named after your prompt (or filename), no timestamps:
    • ai_pipeline_runs/<prompt-slug>/pipeline/ for prompt-based runs
    • ai_pipeline_runs/<file-slug>/file/ for file-based runs
    • If a folder already exists, a simple -2, -3, … suffix is added.
    • Example: ai_pipeline_runs/erc721-with-minting-and-baseuri/pipeline/

What you’ll see and where things are saved:

  • Colorful, live logs streamed while the job runs (plus “magical” narrative logs)
  • All outputs under ./ai_pipeline_runs/<name>/:
    • pipeline/ or file/
    • job.id, final.status.json
    • logs.ndjson
    • artifacts/ with sources/, abis/, scripts/

Examples:

# Generate and deploy from a prompt
camp deploy:prompt --prompt "ERC721 with minting and baseURI"

# Deploy from a local Solidity file
camp deploy:file --file ./contracts/MyNFT.sol --contractName MyNFT

Programmatic (optional)

The SDK exports AcadClient if you want to call the API directly.

import { AcadClient } from "@blockxai/camp-codegen";

const client = new AcadClient();
const jobId = await client.start_pipeline("ERC20 token", "basecamp", 11, "Token.sol", [1000000]);
const job = await client.wait_for_completion(jobId, { intervalSec: 2, timeoutSec: 2700 });

Build (for contributors)

# inside camp-codegen-js/
npm install
npm run build

Outputs ESM to dist/.

In the wizard, pick “🔎 Browse preset library (search)” to choose from built-in and user-provided presets.

  • User presets can be added via any of:
    • presets.user.json (array of { title, prompt })
    • presets.user.txt (one preset per paragraph; first token before : is the title)
    • src/presets.user.json

Examples:

// presets.user.json
[
  { "title": "MessageBoard", "prompt": "MessageBoard: EMPTY CONSTRUCTOR. post(string message). Events: MessagePosted. No constructor args." },
  { "title": "SimpleBank", "prompt": "SimpleBank: EMPTY CONSTRUCTOR. deposit() payable. withdraw(uint256 amount). Events: Deposited, Withdrawn." }
]
MessageBoard: EMPTY CONSTRUCTOR. post(string message). Events: MessagePosted. No constructor args.

SimpleBank: EMPTY CONSTRUCTOR. deposit() payable. withdraw(uint256 amount). Events: Deposited, Withdrawn.

Search is fuzzy across title, description, and prompt text. If your prompts version lacks autocomplete, it falls back to a simple select list.

Magical logs (GTM/CS friendly)

We emit a narrative alongside raw SSE logs to keep non-technical teammates engaged. Categories: generation, compilation, errors, deployment, celebration, bonus.

Configure via env vars:

  • MAGICAL_LOGS — enable/disable (default 1)
  • MAGICAL_WEBHOOK_URL — optional webhook to receive events
  • MAGICAL_STREAM1 to stream events, or 0 to receive one magical_log_summary

Payload fields include runLabel, jobId, network, prompt, filename, contractName, category, msg, and optional meta.

Tip: route the webhook to a tiny middleware (e.g., Cloudflare Worker, Vercel, Express) that transforms into Apollo.io Notes/Activities for GTM/CS visibility.

Colors and banners

  • Intro banner: animated rainbow gradient (respects NO_ANIMATION=1)
  • Log theme: orange & white after banner
  • Deploy congrats banner: static, clean orange-only (no animation) with deployed address

Notes

  • No API key required to try it out
  • Default network is basecamp
  • Works best on a TTY; NO_ANIMATION=1 is recommended for CI logs

Keywords

camp

FAQs

Package last updated on 24 Sep 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts