informatiq
v1.3.0
Published
π CLI tool to streamline developer machine setup for InformatiQ projects
Maintainers
Readme
π InformatiQ CLI
A powerful command-line tool to streamline developer onboarding and machine setup for InformatiQ projects.
β¨ Features
- π©Ί System Diagnostics: Verify your development environment setup (includes Docker check)
- π§ Auto-Installation: Automatically install missing dependencies (Node.js, Git, Docker)
- βοΈ Interactive Configuration: Easy setup wizard for credentials and settings
- π Secure Storage: Credentials stored securely in OS keychain
- π¦ NPM Authentication: Automatic configuration for Azure DevOps package registry
- π Project Cloning: Clone InformatiQ repos interactively via GitHub CLI
- π Project Updates: Pull latest changes across all cloned projects in one command
- βΆοΈ Project Runner: Run Node.js projects directly by name
- π Cross-Platform: Works on macOS, Linux, and Windows
- π¨ Beautiful CLI: Colorful, emoji-rich interface for better UX
π¦ Installation
Install globally using npm:
npm install -g informatiqOr use npx to run without installation:
npx informatiq doctorπ Quick Start
1. Configure Your Environment
Run the interactive setup wizard:
informatiq configureYou'll be prompted for:
- Email: Your email address
- PAT: Azure DevOps Personal Access Token
2. Verify Your Setup
Check if everything is configured correctly:
informatiq doctorThis command checks:
- β Node.js installation
- β NPM installation
- β Git installation
- β InformatiQ configuration
- β NPM authentication
3. Clone InformatiQ Projects
informatiq clone projectsThis will:
- Install and authenticate GitHub CLI if needed
- Show a multi-select list of all InformatiQ repositories
- Ask where to store the projects on your machine
- Clone (or update) the selected repositories
4. Start Developing! π
You're all set! Your machine is now configured for InformatiQ development.
π Commands
informatiq doctor
Run system diagnostics to check your development environment.
# Check system without fixing
informatiq doctor
# Check and auto-fix issues
informatiq doctor --fixWhat it checks:
- Node.js version (requires 16+)
- NPM installation
- Git installation
- Docker installation and daemon status
- InformatiQ configuration (PAT, email)
- NPM authentication setup
Auto-fix capabilities (--fix flag):
- π§ Installs Node.js via nvm if missing
- π§ Installs nvm if required
- π§ Installs Git using platform-specific package managers
- π§ Installs Docker (Homebrew on macOS, script on Linux, manual on Windows)
- π§ Starts Docker daemon if installed but not running
See Auto-Installation Guide for more details.
informatiq configure
Interactive setup wizard to configure your environment.
informatiq configure
# Force reconfiguration
informatiq configure --forceWhat it does:
- Prompts for your email address
- Prompts for Azure DevOps Personal Access Token
- Saves credentials securely
- Optionally configures NPM authentication
informatiq config
Manage configuration values.
# Display all configuration
informatiq config
# Get a specific value
informatiq config get pat
informatiq config get email
# Set a specific value
informatiq config set email [email protected]
informatiq config set pat <your-pat>
# List all configuration (same as 'informatiq config')
informatiq config list
# Clear all configuration
informatiq config clear
informatiq config clear --force # Skip confirmationAvailable configuration keys:
pat: Personal Access Tokenemail: Email addressorganization: Azure DevOps organizationprojectId: Azure DevOps project IDprojectsHomePath: Local directory where cloned projects are stored
informatiq clone projects
Interactively clone InformatiQ repositories to your machine.
informatiq clone projectsWhat it does:
- Installs and authenticates GitHub CLI (
gh) if not already set up - Fetches all repositories from the InformatiQ GitHub organization
- Presents a multi-select prompt β choose any number of repos
- Asks for a local directory path (defaults to
~/informatiq-projects) - Clones each selected repo; if a directory already exists, runs
git pullinstead - Saves the home path so other commands can use it
Requirements: GitHub CLI (auto-installed if missing)
informatiq update projects
Pull the latest changes for all projects in your configured home directory.
informatiq update projectsWhat it does:
- Scans the configured projects home directory for git repositories
- Runs
git pullon the current branch of each repo - Reports per-repo status: β updated / β οΈ skipped (detached HEAD) / β failed
- Provides actionable error messages for any failures
informatiq run <project-name>
Start a Node.js project by name.
informatiq run my-projectWhat it does:
- Resolves
<project-name>inside the configured projects home directory - Checks that the directory contains a
package.jsonwith astartscript - Runs
npm startwith fully interactive output - Lists available projects if the specified name is not found
- For non-Node.js projects, informs you that only Node.js is currently supported
π Security
Credential Storage
InformatiQ CLI uses secure storage mechanisms:
- macOS: Keychain Access
- Windows: Credential Vault
- Linux: Secret Service API (libsecret)
If the OS keychain is unavailable, credentials are stored in an encrypted configuration file.
Personal Access Token (PAT)
To generate a PAT:
- Log in to your Azure DevOps account and navigate to your user settings
- Click Personal Access Tokens β New Token
- Set scopes: Packaging (Read)
- Copy the token and use it during configuration
β οΈ Important: Never share your PAT or commit it to version control!
π¦ NPM Authentication
InformatiQ CLI automatically configures your .npmrc file for the Azure DevOps package registry when you run informatiq configure. No manual .npmrc editing is required.
π οΈ Development
Prerequisites
- Node.js 16 or higher
- npm or yarn
Setup
# Clone the repository
git clone https://github.com/likhononair/informatiq-cli.git
cd informatiq-cli
# Install dependencies
npm install
# Build the project
npm run build
# Run locally
npm run dev -- doctorScripts
npm run build: Compile TypeScript to JavaScriptnpm run dev: Run CLI in development modenpm run watch: Watch for changes and rebuildnpm test: Run testsnpm run lint: Lint codenpm run format: Format code with Prettier
Contributing
We use Conventional Commits for commit messages:
# Examples
git commit -m "feat: add new feature"
git commit -m "fix: resolve bug"
git commit -m "docs: update README"Commit types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringperf: Performance improvementstest: Test changesbuild: Build system changesci: CI/CD changeschore: Other changes
License
ISC Β© InformatiQ Team
π€ Support
- π§ Email: [email protected]
- π¬ Slack: #dev-tools
- π Issues: GitHub Issues
π Acknowledgments
Built with love using:
- Commander.js - CLI framework
- Inquirer.js - Interactive prompts
- Chalk - Terminal styling
- Ora - Elegant spinners
- Conf - Configuration management
- Keytar - Secure credential storage
Made with β€οΈ by the InformatiQ Team
