| name | cloud-agents-cli |
| description | TypeScript CLI and skill suite for building agents on Google Cloud with Drive, Gmail, Calendar, Sheets, Docs, Chat, and Admin integration |
| triggers | ["how do I use cloud-agents-cli","set up google cloud agents cli","install agents-cli for google workspace","configure cloud-agents-cli with typescript","use cloud-agents-cli skills","integrate google drive with agents-cli","cloud-agents-cli configuration and setup"] |
cloud-agents-cli
Skill by ara.so — Devtools Skills collection.
What is cloud-agents-cli?
cloud-agents-cli is a TypeScript-first CLI and skill suite for building AI agents that interact with Google Cloud services including Drive, Gmail, Calendar, Sheets, Docs, Chat, and Admin APIs. It provides installable knowledge packs (skills) for coding assistants, typed library exports, and a zero-Python runtime architecture.
Key Features
- TypeScript throughout: Strict-mode CLI, library, and tests
- Seven agent skills: Installable knowledge packs for Google Cloud services
- Zero Python runtime: Pure Node.js 20+ implementation
- Typed library exports: Import configuration, logging, and utilities
- Skills framework: Markdown-based skill packages for AI agents
Installation
Prerequisites
- Node.js 20 or higher
- npm or compatible package manager
From Source
git clone https://github.com/pifferologo/cloud-agents-cli.git
cd cloud-agents-cli
npm install
npm run validate
node dist/cli/main.js --version
Global Installation (Development)
npm link
agents-cli info
agents-cli skills list
As a Dependency
npm install cloud-agents-cli
Skills Only Installation
npx skills add google/agents-cli
CLI Commands
Information & Setup
agents-cli info
agents-cli --version
agents-cli --help
Skills Management
agents-cli skills list
npx skills add google/agents-cli
Configuration
Environment Variables
Create a .env file in your project root:
AGENTS_CLI_LOG_LEVEL=info
AGENTS_CLI_SKILLS_DIR=/path/to/custom/skills
Loading Configuration in Code
import { loadAppConfig } from "cloud-agents-cli";
const config = loadAppConfig();
console.log(config.logLevel);
Library Usage
Basic Import (Default Export)
import { loadAppConfig } from "cloud-agents-cli";
const config = loadAppConfig();
console.log(`Log level: ${config.logLevel}`);
Barrel Exports (Specific Modules)
import { loadAppConfig } from "cloud-agents-cli/config";
import { createLogger } from "cloud-agents-cli/logger";
const config = loadAppConfig();
const logger = createLogger(config.logLevel);
logger.info("Application started");
logger.debug("Debug information");
logger.error("Error occurred");
Configuration Module
import { loadAppConfig } from "cloud-agents-cli/config";
const config = loadAppConfig();
console.log(config.logLevel);
console.log(config.skillsDir);
Logger Module
import { createLogger } from "cloud-agents-cli/logger";
const logger = createLogger("debug");
logger.debug("Debugging details");
logger.info("Informational message");
logger.warn("Warning message");
logger.error("Error message");
Common Patterns
CLI Application Setup
import { loadAppConfig, createLogger } from "cloud-agents-cli";
async function main() {
const config = loadAppConfig();
const logger = createLogger(config.logLevel);
logger.info("Starting application...");
try {
logger.info("Application running");
} catch (error) {
logger.error(`Application error: ${error}`);
process.exit(1);
}
}
main();
Custom Skills Directory
import { loadAppConfig } from "cloud-agents-cli/config";
import * as path from "path";
const config = loadAppConfig();
const skillsPath = config.skillsDir
? path.resolve(config.skillsDir)
: path.join(__dirname, "../skills");
console.log(`Loading skills from: ${skillsPath}`);
Environment-Based Configuration
import { loadAppConfig } from "cloud-agents-cli/config";
const config = loadAppConfig();
const isDevelopment = config.logLevel === "debug";
const isProduction = config.logLevel === "error" || config.logLevel === "warn";
if (isDevelopment) {
console.log("Running in development mode");
}
Development Workflow
Build Commands
npm run validate
npm run test
npm run build:app
npm run build:docs
npm run typecheck
npm run lint
Project Structure
agents-cli/
├── src/
│ ├── cli/ # CLI entry (commander)
│ ├── config/ # Environment configuration
│ ├── docs/ # MkDocs site scripts
│ ├── logger.ts # Logger implementation
│ └── index.ts # Library exports
├── tests/ # Vitest unit tests
├── skills/ # Agent skill markdown packages
├── docs/ # MkDocs site content
├── dist/ # Compiled output (gitignored)
├── package.json
├── tsconfig.base.json # Shared TS baseline
├── tsconfig.json # App + tests typecheck
├── tsconfig.build.json # Production build
└── tsconfig.docs.json # Docs script compilation
Running Tests
npm run test
npm run test -- --watch
npm run test -- --coverage
Local Development
npm install
npm link
agents-cli info
agents-cli skills list
node dist/cli/main.js info
TypeScript Configuration
Importing Types
import type { Config } from "cloud-agents-cli/config";
import type { Logger } from "cloud-agents-cli/logger";
function setupApp(config: Config, logger: Logger) {
logger.info(`Config loaded with log level: ${config.logLevel}`);
}
Strict Mode Compliance
The project uses strict TypeScript settings. When extending:
import { loadAppConfig } from "cloud-agents-cli";
const config = loadAppConfig();
if (config.skillsDir) {
console.log(`Custom skills dir: ${config.skillsDir}`);
}
Troubleshooting
agents-cli Command Not Found
Solution 1: Build and link
npm run build
npm link
Solution 2: Run directly
node dist/cli/main.js info
Solution 3: Use npx
npx agents-cli info
Skills Directory Empty
Ensure you cloned the full repository:
git clone https://github.com/pifferologo/cloud-agents-cli.git
cd cloud-agents-cli
ls -la skills/
TypeScript Compilation Errors
rm -rf dist/
npm run build:app
npm run typecheck
Environment Variables Not Loading
Verify .env file exists in project root:
cat .env
Load dotenv in your application:
import "dotenv/config";
import { loadAppConfig } from "cloud-agents-cli";
const config = loadAppConfig();
Module Resolution Issues
Ensure package.json has correct exports:
{
"exports": {
".": "./dist/index.js",
"./config": "./dist/config/index.js",
"./logger": "./dist/logger.js"
}
}
Build Output Missing
npm run build:app
ls -la dist/
Integration Examples
Express Server Integration
import express from "express";
import { loadAppConfig, createLogger } from "cloud-agents-cli";
const app = express();
const config = loadAppConfig();
const logger = createLogger(config.logLevel);
app.get("/health", (req, res) => {
logger.info("Health check requested");
res.json({ status: "ok", logLevel: config.logLevel });
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
logger.info(`Server listening on port ${PORT}`);
});
Custom CLI Tool
import { Command } from "commander";
import { loadAppConfig, createLogger } from "cloud-agents-cli";
const program = new Command();
const config = loadAppConfig();
const logger = createLogger(config.logLevel);
program
.name("my-tool")
.description("Custom tool using cloud-agents-cli")
.version("1.0.0");
program
.command("process")
.description("Process data")
.action(() => {
logger.info("Processing started");
});
program.parse();
Best Practices
- Always load config at startup: Call
loadAppConfig() early in your application lifecycle
- Use structured logging: Create logger instances with appropriate log levels
- Type everything: Leverage TypeScript's strict mode for compile-time safety
- Environment-based configuration: Use
.env for local development, environment variables for production
- Validate before deploy: Run
npm run validate before committing changes
- Use barrel exports: Import from specific modules (
cloud-agents-cli/config) for better tree-shaking
Resources