
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
The `@evoo/core` package provides the foundational architecture for creating and managing plugins within the Evoo CLI ecosystem. It offers a robust set of tools and conventions to ensure that plugins are powerful, scalable, and easy to maintain.
The @evoo/core package provides the foundational architecture for creating and managing plugins within the Evoo CLI ecosystem. It offers a robust set of tools and conventions to ensure that plugins are powerful, scalable, and easy to maintain.
The design of @evoo/core is guided by a few core principles:
Developing a plugin for the Evoo CLI involves leveraging the tools and structures provided by @evoo/core. This section will walk you through the key concepts and practical steps to build your own plugin.
Plugin interface, which defines the contract for how plugins interact with the core system.onStart, onComplete, and onDone, to execute code at specific points in the CLI's execution flow.To get started with plugin development, it is highly recommended to check out the placeholder plugin, which serves as a simple and well-documented example.
Effective logging is crucial for debugging and providing feedback to users. The @evoo/core package includes a logger utility that you can import and use in your plugins.
Example:
import { logger, type Plugin } from "@evoo/core";
const myPlugin: Plugin<...> = {
jobs: {
myJob: async (job) => {
logger.info("Starting my custom job...");
// ... job logic ...
if (error) {
logger.error("An error occurred!");
} else {
logger.success("Job completed successfully.");
}
},
},
};
For interactive plugins, you can use the built-in prompts utility to ask for user input.
Example:
import { prompts, type Plugin } from "@evoo/core";
const myPlugin: Plugin<...> = {
jobs: {
myJob: async (job) => {
const shouldProceed = await prompts.confirm({
message: "Do you want to continue with this action?",
initialValue: true,
});
if (shouldProceed) {
// ... proceed with logic ...
}
},
},
};
If your plugin needs to execute shell commands, you can use the execWithSpinner utility, which provides a consistent and user-friendly way to run commands with visual feedback.
Example:
import { execWithSpinner, type Plugin } from "@evoo/core";
const myPlugin: Plugin<...> = {
jobs: {
myJob: async (job) => {
await execWithSpinner("npm install", {
startMessage: "Installing dependencies...",
successMessage: "Dependencies installed successfully!",
stdout: "inherit",
});
},
},
};
FAQs
The `@evoo/core` package provides the foundational architecture for creating and managing plugins within the Evoo CLI ecosystem. It offers a robust set of tools and conventions to ensure that plugins are powerful, scalable, and easy to maintain.
We found that @evoo/core demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.