diff --git a/README.md b/README.md
index 3425398f..a3c6d044 100644
--- a/README.md
+++ b/README.md
@@ -2,12 +2,12 @@
**Stop manually setting up your development environment. Define it once, replicate it everywhere.**
-Codify is a command-line tool that brings the power of Infrastructure as Code (IaC) to your local development machine. Manage system settings, install packages, configure tools, and automate your entire setup using a simple, declarative configuration file—just like you manage your infrastructure with Terraform.
+Codify is a command-line tool that brings the power of Infrastructure as Code (IaC) to your local development machine. Manage system settings, install packages, configure tools, and automate your setup using a simple, declarative configuration file. It's like Terraform but for your local machine.
Website •
Web Editor •
- Documentation
+ Documentation
@@ -24,7 +24,6 @@ Every developer has been there:
- **New machine?** Spend hours reinstalling and configuring everything
- **Team onboarding?** Send them a scattered wiki page of manual installation steps
- **Multiple machines?** Keep them in sync manually
-- **What's installed?** No clear record of your development environment
- **Configuration drift?** Your laptop works differently than your colleague's
## The Solution
@@ -47,19 +46,19 @@ With Codify, your entire development environment is defined in a single `codify.
```
Now you can:
-- ✅ **See what changes** before applying them with `codify plan`
-- ✅ **Apply changes** automatically with `codify apply`
-- ✅ **Version control** your environment setup
-- ✅ **Share configurations** with your team
-- ✅ **Replicate setups** across multiple machines in minutes
+- **See what changes** before applying them with `codify plan`
+- **Apply changes** automatically with `codify apply`
+- **Version control** your environment setup
+- **Share configurations** with your team
+- **Replicate setups** across multiple machines in minutes
## Key Features
-### 🎯 **Declarative Configuration**
+### **Declarative Configuration**
Define your entire development environment in a single, readable configuration file. No more shell scripts or scattered installation instructions.
-### 🔍 **Plan Before You Apply**
-Like Terraform, Codify shows you exactly what changes will be made before executing them. No surprises.
+### **Plan Before You Apply**
+Like Terraform, Codify shows you exactly what changes will be made before executing them.
```bash
$ codify plan
@@ -87,8 +86,8 @@ Do you want to apply the above changes?
No
```
-### 📥 **Import Your Current Setup**
-Already have a configured machine? Generate a Codify configuration from your existing setup in seconds:
+### **Import Your Current Setup**
+Already have a configured machine? Generate a Codify configuration from your existing setup:
```bash
$ codify init
@@ -109,29 +108,28 @@ Use to select and to submit.
Use to select all items and to de-select all items.
```
-### 🔌 **Extensible Plugin System**
+### **Extensible Plugin System**
Out-of-the-box support for:
- **Homebrew** (formulae and casks)
- **VS Code** (extensions and settings)
- **npm** global packages
- **macOS** system preferences
- **Git** configuration
-- And [many more](https://docs.codifycli.com/plugins)...
+- And [many more](https://codifycli.com/docs/plugins)...
-Don't see what you need? Create your own plugin in minutes.
+Don't see what you need? [Create your own plugin](https://codifycli.com/docs/plugins).
-### 🌐 **Web-Based Editor**
-Edit your configuration in a beautiful web interface at [dashboard.codifycli.com](https://dashboard.codifycli.com):
-- 🎨 Intuitive UI with auto-completion
-- 🔄 Real-time validation
-- ☁️ Cloud sync across devices
-- 🤝 Share configurations with your team
+### **Web-Based Editor**
+Edit your configuration in a web interface at [dashboard.codifycli.com](https://dashboard.codifycli.com):
+- Intuitive UI with auto-completion
+- Real-time validation
+- Cloud sync across devices
+- Share configurations with your team
-### 🔒 **Safe & Secure**
+### **Safe & Secure**
- Preview all changes before applying
-- Sudo password prompts only when needed
-- Secure mode for extra protection
-- Open source and Apache 2.0 licensed
+- Both the CLI tool and default plugin are open source and Apache 2.0 licensed
+- Requests your password each time elevated privileges (sudo) is required.
## Quick Start
@@ -175,14 +173,6 @@ codify plan
codify apply
```
-### Pro Tip: Use the Web Editor
-
-Visit [dashboard.codifycli.com](https://dashboard.codifycli.com) for a guided, visual way to build your configuration with:
-- Auto-complete for all available packages
-- Real-time validation
-- Cloud storage and sync
-- Shareable configurations
-
## Common Commands
| Command | Description |
@@ -198,26 +188,6 @@ Visit [dashboard.codifycli.com](https://dashboard.codifycli.com) for a guided, v
Run `codify --help` for a complete list of commands and options.
-## Real-World Use Cases
-
-### **Individual Developers**
-- Keep multiple machines (work laptop, personal laptop, desktop) in sync
-- Quickly recover from system reinstalls or upgrades
-- Document your development environment as code
-- Try out new tools without the hassle of installing them
-
-### **Development Teams**
-- Onboard new developers in minutes instead of days
-- Ensure everyone has the same development environment
-- Share team configurations via Git or the [Codify editor](https://dashboard.codifycli.com)
-- Reduce "works on my machine" problems
-
-### **Organizations**
-- Standardize development environments across teams
-- Maintain compliance with required tools and versions
-- Reduce IT support burden for developer setup
-- Break down barriers between teams and departments
-
## Example Configurations
### Full-Stack JavaScript Developer
@@ -298,41 +268,21 @@ Run `codify --help` for a complete list of commands and options.
]
```
-## Why Codify vs. Alternatives?
-
-| Feature | Codify | Homebrew Bundle | Shell Scripts | Manual Setup |
-|----------------------------------|:------:|:---------------:|:-------------:|:------------:|
-| Declarative configuration | ✅ | ✅ | ❌ | ❌ |
-| Plan before apply | ✅ | ❌ | ❌ | ❌ |
-| Import existing setup | ✅ | ❌ | ❌ | ❌ |
-| Multi-format support | ✅ | ❌ | ❌ | ❌ |
-| Web-based editor | ✅ | ❌ | ❌ | ❌ |
-| Cross-tool management | ✅ | ❌ | ⚠️ | ❌ |
-| Extensible plugins | ✅ | ❌ | ⚠️ | ❌ |
-| Cloud sync | ✅ | ❌ | ❌ | ❌ |
-| Update detection | ✅ | ✅ | ❌ | ❌ |
-
## Frequently Asked Questions
**Q: Does Codify work on Linux and Windows?**
A: Codify currently supports macOS and Linux. Windows support works via WSL.
-**Q: Can I use Codify with my existing Homebrew setup?**
-A: Yes! Run `codify init` to import your existing packages into a Codify configuration.
-
-**Q: Is my sudo password stored?**
-A: No. Codify only caches your password in memory during a session and prompts when needed. Use `--secure` mode for extra protection.
-
**Q: How is this different from Ansible/Chef/Puppet?**
A: Those tools are designed for server configuration management. Codify is purpose-built for local development environments with a focus on simplicity and developer experience.
## Community & Support
-- 📚 **Documentation**: [docs.codifycli.com](https://docs.codifycli.com)
-- 🐛 **Issues**: [GitHub Issues](https://github.com/codifycli/codify/issues)
-- 💬 **Default Plugin**: [GitHub Default Plugin](https://github.com/codifycli/default-plugin)
-- 🌐 **Website**: [codifycli.com](https://codifycli.com)
-- ☁️ **Editor**: [dashboard.codifycli.com](https://dashboard.codifycli.com)
+- **Documentation**: [codifycli.com/docs](https://codifycli.com/docs)
+- **Issues**: [GitHub Issues](https://github.com/codifycli/codify/issues)
+- **Default Plugin**: [GitHub Default Plugin](https://github.com/codifycli/default-plugin)
+- **Website**: [codifycli.com](https://codifycli.com)
+- **Editor**: [dashboard.codifycli.com](https://dashboard.codifycli.com)
## Contributing
@@ -351,5 +301,5 @@ This project is licensed under the [Apache 2.0 License](LICENSE).
codifycli.com •
GitHub •
- Docs
+ Docs
diff --git a/package.json b/package.json
index af52629a..62932e7d 100644
--- a/package.json
+++ b/package.json
@@ -142,9 +142,10 @@
"version": "oclif readme && git add README.md",
"start:dev": "./bin/dev.js",
"start:vm": "npm run build && npm run pack:macos && npm run start:vm",
- "deploy": "npm run pkg && npm run notarize && npm run upload"
+ "deploy": "npm run pkg && npm run notarize && npm run upload",
+ "prepublishOnly": "npm run build"
},
- "version": "1.0.0",
+ "version": "1.0.1",
"bugs": "https://github.com/codifycli/codify/issues",
"keywords": [
"oclif",
diff --git a/scripts/install-beta.sh b/scripts/install-beta.sh
index 089527c3..2106318a 100644
--- a/scripts/install-beta.sh
+++ b/scripts/install-beta.sh
@@ -84,6 +84,6 @@ SCRIPT
CYAN='\033[0;36m'
END_ESCAPE='\033[0m'
- printf "${CYAN}\n🎉 %s 🎉\n%s${END_ESCAPE}\n" "Successfully installed Codify. Type codify --help for a list of commands." "Visit the documentation at https://docs.codifycli.com for more info."
+ printf "${CYAN}\n🎉 %s 🎉\n%s${END_ESCAPE}\n" "Successfully installed Codify. Type codify --help for a list of commands." "Visit the documentation at https://codifycli.com/docs for more info."
exit 0;
}
diff --git a/scripts/install.sh b/scripts/install.sh
index 45dd8d0c..df3d3d79 100644
--- a/scripts/install.sh
+++ b/scripts/install.sh
@@ -30,7 +30,7 @@
if [ "\$ARCH" == "x86_64" ]; then
ARCH=x64
elif [[ "\$ARCH" == aarch* ]]; then
- ARCH=arm
+ ARCH=arm64
elif [[ "\$ARCH" == "arm64" ]]; then
ARCH=arm64
else
@@ -56,9 +56,17 @@
fi
echo "Installing CLI from \$URL"
if [ \$(command -v curl) ]; then
- curl "\$URL" | tar "\$TAR_ARGS"
+ if [ "\$OS" = "darwin" ]; then
+ curl "\$URL" | tar "\$TAR_ARGS"
+ else
+ curl "\$URL" | tar "\$TAR_ARGS" --warning=no-unknown-keyword
+ fi
else
- wget -O- "\$URL" | tar "\$TAR_ARGS"
+ if [ "\$OS" = "darwin" ]; then
+ wget -O- "\$URL" | tar "\$TAR_ARGS"
+ else
+ wget -O- "\$URL" | tar "\$TAR_ARGS" --warning=no-unknown-keyword
+ fi
fi
# delete old codify bin if exists
rm -f \$(command -v codify) || true
@@ -76,6 +84,6 @@ SCRIPT
CYAN='\033[0;36m'
END_ESCAPE='\033[0m'
- printf "${CYAN}\n🎉 %s 🎉\n%s${END_ESCAPE}\n" "Successfully installed Codify. Type codify --help for a list of commands." "Visit the documentation at https://docs.codifycli.com for more info."
+ printf "${CYAN}\n🎉 %s 🎉\n%s${END_ESCAPE}\n" "Successfully installed Codify. Type codify --help for a list of commands." "Visit the documentation at https://codifycli.com/docs for more info."
exit 0;
}
diff --git a/src/commands/apply.ts b/src/commands/apply.ts
index e4f25c25..d90bc887 100644
--- a/src/commands/apply.ts
+++ b/src/commands/apply.ts
@@ -16,7 +16,7 @@ any changes.
For scripts: use ${chalk.bold.bgMagenta(' --output json ')} which will skip approval and
apply changes directly.
-For more information, visit: https://docs.codifycli.com/commands/apply
+For more information, visit: https://codifycli.com/docs/commands/apply
`
static flags = {
diff --git a/src/commands/connect.ts b/src/commands/connect.ts
index ba71b88d..f973decd 100644
--- a/src/commands/connect.ts
+++ b/src/commands/connect.ts
@@ -6,7 +6,7 @@ export default class Connect extends BaseCommand {
`Open a connection to the Codify dashboard. This command will host a local server to receive commands (e.g. apply, destroy, etc.)
from the Codify dashboard.
-For more information, visit: https://docs.codifycli.com/commands/connect
+For more information, visit: https://codifycli.com/docs/commands/connect
`
static flags = {}
diff --git a/src/commands/destroy.ts b/src/commands/destroy.ts
index 45528b62..5338e6c8 100644
--- a/src/commands/destroy.ts
+++ b/src/commands/destroy.ts
@@ -18,7 +18,7 @@ with a matching type.
• If a codify.jsonc file doesn't exist, additional information may be asked to identify
the specific resource to destroy.
-For more information, visit: https://docs.codifycli.com/commands/destory`
+For more information, visit: https://codifycli.com/docs/commands/destory`
static examples = [
'<%= config.bin %> <%= command.id %> homebrew nvm',
diff --git a/src/commands/edit.ts b/src/commands/edit.ts
index 81f4ebad..d8e4c6af 100644
--- a/src/commands/edit.ts
+++ b/src/commands/edit.ts
@@ -5,7 +5,7 @@ export default class Edit extends BaseCommand {
static description =
`Short cut for opening your default Codify file in the Codify dashboard.
-For more information, visit: https://docs.codifycli.com/commands/edit
+For more information, visit: https://codifycli.com/docs/commands/edit
`
static flags = {}
diff --git a/src/commands/import.ts b/src/commands/import.ts
index 385125db..e805da0c 100644
--- a/src/commands/import.ts
+++ b/src/commands/import.ts
@@ -30,7 +30,7 @@ The results can be saved in one of three ways:
Codify will attempt to smartly insert new configurations while preserving existing spacing and formatting.
-For more information, visit: https://docs.codifycli.com/commands/import`
+For more information, visit: https://codifycli.com/docs/commands/import`
static override examples = [
'<%= config.bin %> <%= command.id %> homebrew nvm asdf',
diff --git a/src/commands/init.ts b/src/commands/init.ts
index 50f1e6f5..ad494e36 100644
--- a/src/commands/init.ts
+++ b/src/commands/init.ts
@@ -14,7 +14,7 @@ Use this command to automatically generate Codify configs based on
the currently installed system resources. By default, the new file
will be written to ${chalk.bold.bgMagenta(' ~/codify.jsonc ')}.
-For more information, visit: https://docs.codifycli.com/commands/init`
+For more information, visit: https://codifycli.com/docs/commands/init`
static baseFlags= {
...BaseCommand.baseFlags,
diff --git a/src/commands/login.ts b/src/commands/login.ts
index 1da4e31a..fa9ab217 100644
--- a/src/commands/login.ts
+++ b/src/commands/login.ts
@@ -11,7 +11,7 @@ export default class Login extends BaseCommand {
By default opens a browser window to login. If username and password are provided, it will attempt to login via CLI.
-For more information, visit: https://docs.codifycli.com/commands/login
+For more information, visit: https://codifycli.com/docs/commands/login
`
static baseFlags = {
diff --git a/src/commands/logout.ts b/src/commands/logout.ts
index 2fee01fa..f39b4dfa 100644
--- a/src/commands/logout.ts
+++ b/src/commands/logout.ts
@@ -8,7 +8,7 @@ export default class Login extends BaseCommand {
static description =
`Logout of Codify cloud account
-For more information, visit: https://docs.codifycli.com/commands/logout
+For more information, visit: https://codifycli.com/docs/commands/logout
`
static flags = {}
diff --git a/src/commands/plan.ts b/src/commands/plan.ts
index 1e3573b2..0b918401 100644
--- a/src/commands/plan.ts
+++ b/src/commands/plan.ts
@@ -15,7 +15,7 @@ the desired configuration to compute the execution plan.
For scripts: use ${chalk.bold.bgMagenta(' --output json ')} which will skip all prompts and print
only the final result as a json.
-For more information, visit: https://docs.codifycli.com/commands/plan`
+For more information, visit: https://codifycli.com/docs/commands/plan`
static examples = [
'<%= config.bin %> <%= command.id %>',
diff --git a/src/commands/refresh.ts b/src/commands/refresh.ts
index 5f5815fc..db3386b1 100644
--- a/src/commands/refresh.ts
+++ b/src/commands/refresh.ts
@@ -14,7 +14,7 @@ Leave empty to refresh all resources.
Codify will attempt to smartly insert new configurations while preserving existing spacing and formatting.
-For more information, visit: https://docs.codifycli.com/commands/refresh`
+For more information, visit: https://codifycli.com/docs/commands/refresh`
static override examples = [
'<%= config.bin %> <%= command.id %> homebrew nvm asdf',
diff --git a/src/commands/test.ts b/src/commands/test.ts
index ab5074c0..cbb5fb4a 100644
--- a/src/commands/test.ts
+++ b/src/commands/test.ts
@@ -19,7 +19,7 @@ any changes.
For scripts: use ${chalk.bold.bgMagenta(' --output json ')} which will skip approval and
apply changes directly.
-For more information, visit: https://docs.codifycli.com/commands/apply
+For more information, visit: https://codifycli.com/docs/commands/apply
`
static flags = {
@@ -48,7 +48,7 @@ For more information, visit: https://docs.codifycli.com/commands/apply
]
async init(): Promise {
- ctx.log('Running Codify test...')
+ console.log('Running Codify test...')
return super.init();
}
diff --git a/src/commands/validate.ts b/src/commands/validate.ts
index f4861fcf..836b869d 100644
--- a/src/commands/validate.ts
+++ b/src/commands/validate.ts
@@ -8,7 +8,7 @@ export default class Validate extends BaseCommand {
static description =
`Validate a codify.jsonc/codify.json/codify.yaml file.
-For more information, visit: https://docs.codifycli.com/commands/validate
+For more information, visit: https://codifycli.com/docs/commands/validate
`
static flags = {}
diff --git a/src/config.ts b/src/config.ts
index c6ba38cf..2bbbb09a 100644
--- a/src/config.ts
+++ b/src/config.ts
@@ -1,4 +1,4 @@
-export const VERSION = (await import("../package.json", { assert: { type: "json" } })).default.version;
+export const VERSION = (await import("../package.json", { with: { type: "json" } })).default.version;
export const config = {
loginServerPort: 51_039,
diff --git a/src/connect/http-routes/handlers/test-handler.ts b/src/connect/http-routes/handlers/test-handler.ts
index 18d07ba9..341bf8c3 100644
--- a/src/connect/http-routes/handlers/test-handler.ts
+++ b/src/connect/http-routes/handlers/test-handler.ts
@@ -30,11 +30,11 @@ export function testHandler() {
session.additionalData.filePath = filePath;
- return spawn(ShellUtils.getDefaultShell(), ['-c', `${ConnectOrchestrator.nodeBinary} ${ConnectOrchestrator.rootCommand} test`], {
+ return spawn(ShellUtils.getDefaultShell(), ['-c', `${ConnectOrchestrator.nodeBinary} ${ConnectOrchestrator.rootCommand} test -p ${filePath}`], {
name: 'xterm-color',
cols: 80,
rows: 30,
- cwd: filePath,
+ cwd: process.env.HOME,
env: process.env
});
}
diff --git a/src/connect/socket-server.ts b/src/connect/socket-server.ts
index 86a377e5..aedd7c37 100644
--- a/src/connect/socket-server.ts
+++ b/src/connect/socket-server.ts
@@ -1,5 +1,8 @@
import { IPty } from '@homebridge/node-pty-prebuilt-multiarch';
+import * as fs from 'node:fs/promises';
import { Server as HttpServer, IncomingMessage } from 'node:http';
+import os from 'node:os';
+import path from 'node:path';
import { Duplex } from 'node:stream';
import { v4 as uuid } from 'uuid';
import WebSocket, { WebSocketServer } from 'ws';
@@ -122,10 +125,17 @@ export class SocketServer {
this.mainConnections.set(clientId, ws);
ws.send(JSON.stringify({ key: 'opened', data: { clientId, startTimestamp: this.startTimestamp.toISOString() } }));
- ws.on('message', (message) => {
+ ws.on('message', async (message) => {
const data = JSON.parse(message.toString('utf8'));
+
if (data.key === 'terminate') {
process.exit(0);
+ return;
+ }
+
+ if (data.key === 'update-config') {
+ await this.handleConfigUpdate(ws, data);
+ return;
}
});
@@ -134,6 +144,74 @@ export class SocketServer {
})
}
+ private async handleConfigUpdate(ws: WebSocket, data: { sessionId: string; config: string }) {
+ try {
+ const { sessionId, config: configContent } = data;
+
+ if (!sessionId || !configContent) {
+ ws.send(JSON.stringify({
+ key: 'update-config-response',
+ success: false,
+ sessionId,
+ error: 'Missing sessionId or config'
+ }));
+ return;
+ }
+
+ const session = this.sessions.get(sessionId);
+ if (!session) {
+ ws.send(JSON.stringify({
+ key: 'update-config-response',
+ success: false,
+ sessionId,
+ error: 'Session not found'
+ }));
+ return;
+ }
+
+ const filePath = session.additionalData.filePath as string | undefined;
+ if (!filePath) {
+ ws.send(JSON.stringify({
+ key: 'update-config-response',
+ success: false,
+ sessionId,
+ error: 'File path not found in session'
+ }));
+ return;
+ }
+
+ // Security: Ensure file path is in temp directory
+ const tmpDir = os.tmpdir();
+ const resolvedPath = path.resolve(filePath);
+ if (!resolvedPath.startsWith(tmpDir)) {
+ console.error('Security: Attempted to write outside temp directory', filePath);
+ ws.send(JSON.stringify({
+ key: 'update-config-response',
+ success: false,
+ sessionId,
+ error: 'Invalid file path'
+ }));
+ return;
+ }
+
+ await fs.writeFile(filePath, configContent, 'utf8');
+
+ ws.send(JSON.stringify({
+ key: 'update-config-response',
+ success: true,
+ sessionId
+ }));
+ } catch (error) {
+ console.error('Error updating config:', error);
+ ws.send(JSON.stringify({
+ key: 'update-config-response',
+ success: false,
+ sessionId: data.sessionId,
+ error: error instanceof Error ? error.message : 'Unknown error'
+ }));
+ }
+ }
+
private validateOrigin = (origin: string): boolean =>
config.corsAllowedOrigins.includes(origin)
diff --git a/src/entities/project.ts b/src/entities/project.ts
index aee93f8b..fc371c91 100644
--- a/src/entities/project.ts
+++ b/src/entities/project.ts
@@ -248,7 +248,7 @@ ${JSON.stringify(projectConfigs, null, 2)}`);
for (const r of this.resourceConfigs) {
// User specified dependencies are hard dependencies. They must be present.
- r.addDependenciesFromDependsOn((id) => resourceMap.has(id));
+ r.addDependenciesFromDependsOn((idOrType) => this.getMatchingResourceIds(resourceMap, idOrType));
r.addDependenciesBasedOnParameters((id) => resourceMap.has(id));
// Plugin dependencies are soft dependencies. They only activate if the dependent resource is present.
@@ -299,4 +299,28 @@ ${JSON.stringify(projectConfigs, null, 2)}`);
}
}
}
+
+ /**
+ * This function supports both full (type.name) and partial IDs (type) when matching. It's meant
+ * for the dependsOn field to simplify dependency resolution for. users.
+ * @param resourceMap
+ * @param idOrType
+ * @private
+ */
+ private getMatchingResourceIds(
+ resourceMap: Map,
+ idOrType: string
+ ): string[] {
+ const hasName = idOrType.includes('.');
+
+ if (hasName) {
+ // Full ID (type.name): return exact match or empty array
+ return resourceMap.has(idOrType) ? [idOrType] : [];
+ } else {
+ // Partial ID (type only): return all resources with this type
+ return [...resourceMap.values()]
+ .filter((resource) => resource.type === idOrType)
+ .map((resource) => resource.id);
+ }
+ }
}
diff --git a/src/entities/resource-config.ts b/src/entities/resource-config.ts
index b9474999..3d1d2f32 100644
--- a/src/entities/resource-config.ts
+++ b/src/entities/resource-config.ts
@@ -100,13 +100,15 @@ export class ResourceConfig implements ConfigBlock {
this.raw[name] = value;
}
- addDependenciesFromDependsOn(resourceExists: (id: string) => boolean) {
- for (const id of this.dependsOn) {
- if (!resourceExists(id)) {
- throw new Error(`Reference ${id} is not a valid resource`);
+ addDependenciesFromDependsOn(getMatchingResourceIds: (idOrType: string) => string[]) {
+ for (const idOrType of this.dependsOn) {
+ const matchingIds = getMatchingResourceIds(idOrType);
+
+ if (matchingIds.length === 0) {
+ throw new Error(`Reference ${idOrType} is not a valid resource`);
}
- this.dependencyIds.push(id);
+ this.dependencyIds.push(...matchingIds);
}
}
diff --git a/src/orchestrators/init.ts b/src/orchestrators/init.ts
index 2925a84c..73328c8e 100644
--- a/src/orchestrators/init.ts
+++ b/src/orchestrators/init.ts
@@ -74,7 +74,7 @@ export const InitializeOrchestrator = {
The imported configs were written to: ${locationToSave}
Use ${chalk.bgMagenta.bold(' codify plan ')} to compute changes and ${chalk.bgMagenta.bold(' codify apply ')} to apply them.
-For more information visit: https://docs.codifycli.com.
+For more information visit: https://codifycli.com/docs.
Enjoy!
`)
diff --git a/src/orchestrators/test.ts b/src/orchestrators/test.ts
index 019076db..114dbeb6 100644
--- a/src/orchestrators/test.ts
+++ b/src/orchestrators/test.ts
@@ -112,9 +112,6 @@ export const TestOrchestrator = {
ctx.subprocessStarted(SubProcessName.TEST_CHECKING_VM_INSTALLED);
planResult = await PlanOrchestrator.run({
codifyConfigs: [{
- type: 'project',
- plugins: { default: '/Users/kevinwang/Projects/codify-homebrew-plugin/src/index.ts' }
- }, {
type: 'homebrew',
formulae: ['sshpass']
}, {
diff --git a/test/utils/default-component.test.tsx b/test/utils/default-component.test.tsx
index c2f2df1f..db5928a0 100644
--- a/test/utils/default-component.test.tsx
+++ b/test/utils/default-component.test.tsx
@@ -51,7 +51,7 @@ describe('DefaultComponent', () => {
The imported configs were written to: ${locationToSave}
Use ${chalk.bgHex('#F0EAD6').bold(' codify plan ')} to futures compute changes and ${chalk.bgHex('#F0EAD6').bold(' codify apply ')} to apply them.
-Visit the documentation for more info: https://docs.codifycli.com.
+Visit the documentation for more info: https://codifycli.com/docs.
`)
})