rename to deepwork

This commit is contained in:
Hunter Lovell
2026-01-14 18:27:25 -08:00
parent aa71938bd1
commit e6360cd6b4
15 changed files with 63 additions and 63 deletions
+1 -1
View File
@@ -27,7 +27,7 @@ What actually happened.
## Environment
- **OS**: [e.g., macOS 14.0, Windows 11, Ubuntu 22.04]
- **openwork version**: [e.g., 0.2.0]
- **deepwork version**: [e.g., 0.2.0]
- **Node.js version**: [e.g., 20.10.0]
- **Installation method**: [npm / from source]
+1 -1
View File
@@ -1,5 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Documentation
url: https://github.com/langchain-ai/openwork#readme
url: https://github.com/langchain-ai/deepwork#readme
about: Check the README for setup and usage information
+6 -6
View File
@@ -74,25 +74,25 @@ jobs:
with:
name: v${{ steps.version.outputs.version }}
body: |
## openwork v${{ steps.version.outputs.version }}
## deepwork v${{ steps.version.outputs.version }}
### Installation
```bash
# Run directly
npx openwork
npx deepwork
# Or install globally
npm install -g openwork
openwork
npm install -g deepwork
deepwork
```
Requires Node.js 18+. Electron is installed automatically as a dependency.
### Links
- [Documentation](https://github.com/langchain-ai/openwork#readme)
- [npm package](https://www.npmjs.com/package/openwork)
- [Documentation](https://github.com/langchain-ai/deepwork#readme)
- [npm package](https://www.npmjs.com/package/deepwork)
draft: false
prerelease: ${{ contains(steps.version.outputs.version, '-') }}
env:
+6 -6
View File
@@ -1,6 +1,6 @@
# Contributing to openwork
# Contributing to deepwork
Thank you for your interest in contributing to openwork! This document provides guidelines for development and contribution.
Thank you for your interest in contributing to deepwork! This document provides guidelines for development and contribution.
## Development Setup
@@ -14,8 +14,8 @@ Thank you for your interest in contributing to openwork! This document provides
1. Fork and clone the repository:
```bash
git clone https://github.com/YOUR_USERNAME/openwork.git
cd openwork
git clone https://github.com/YOUR_USERNAME/deepwork.git
cd deepwork
```
2. Install dependencies:
@@ -31,7 +31,7 @@ Thank you for your interest in contributing to openwork! This document provides
## Project Structure
```
openwork/
deepwork/
├── src/
│ ├── main/ # Electron main process
│ │ ├── index.ts # App entry point
@@ -82,7 +82,7 @@ openwork/
## Design System
openwork uses a tactical/SCADA-inspired design system:
deepwork uses a tactical/SCADA-inspired design system:
### Colors
+12 -12
View File
@@ -1,12 +1,12 @@
# openwork
# deepwork
[![CI](https://github.com/langchain-ai/openwork/actions/workflows/ci.yml/badge.svg)](https://github.com/langchain-ai/openwork/actions/workflows/ci.yml)
[![npm version](https://img.shields.io/npm/v/openwork.svg)](https://www.npmjs.com/package/openwork)
[![CI](https://github.com/langchain-ai/deepwork/actions/workflows/ci.yml/badge.svg)](https://github.com/langchain-ai/deepwork/actions/workflows/ci.yml)
[![npm version](https://img.shields.io/npm/v/deepwork.svg)](https://www.npmjs.com/package/deepwork)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
A tactical agent interface for [deepagentsjs](https://github.com/langchain-ai/deepagentsjs) - an opinionated harness for building deep agents with filesystem capabilities, planning, and subagent delegation.
![openwork screenshot](docs/screenshot.png)
![deepwork screenshot](docs/screenshot.png)
## Features
@@ -24,11 +24,11 @@ A tactical agent interface for [deepagentsjs](https://github.com/langchain-ai/de
```bash
# Run directly
npx openwork
npx deepwork
# Or install globally
npm install -g openwork
openwork
npm install -g deepwork
deepwork
```
Requires Node.js 18+. Electron is installed automatically as a dependency.
@@ -36,8 +36,8 @@ Requires Node.js 18+. Electron is installed automatically as a dependency.
### From Source
```bash
git clone https://github.com/langchain-ai/openwork.git
cd openwork
git clone https://github.com/langchain-ai/deepwork.git
cd deepwork
npm install
npm run dev
```
@@ -46,7 +46,7 @@ npm run dev
### API Keys
openwork supports multiple LLM providers. Set your API keys via:
deepwork supports multiple LLM providers. Set your API keys via:
1. **Environment Variables** (recommended)
```bash
@@ -67,7 +67,7 @@ openwork supports multiple LLM providers. Set your API keys via:
## Architecture
openwork is built with:
deepwork is built with:
- **Electron** - Cross-platform desktop framework
- **React** - UI components with tactical/SCADA-inspired design
@@ -127,7 +127,7 @@ To publish a new release:
## Design System
openwork uses a tactical/SCADA-inspired design system optimized for:
deepwork uses a tactical/SCADA-inspired design system optimized for:
- **Information density** - Dense layouts for monitoring agent activity
- **Status at a glance** - Color-coded status indicators (nominal, warning, critical)
+4 -4
View File
@@ -34,8 +34,8 @@ Include the following information in your report:
This security policy applies to:
- The openwork desktop application
- The npm package `openwork`
- The deepwork desktop application
- The npm package `deepwork`
- This GitHub repository
### Out of Scope
@@ -46,9 +46,9 @@ This security policy applies to:
## Security Best Practices for Users
When using openwork:
When using deepwork:
1. **API Keys**: Store API keys securely using environment variables rather than hardcoding them.
2. **Sensitive Data**: Be cautious when giving agents access to directories containing sensitive information.
3. **Human-in-the-Loop**: Use the approval system for sensitive operations.
4. **Updates**: Keep openwork updated to receive security patches.
4. **Updates**: Keep deepwork updated to receive security patches.
+8 -8
View File
@@ -1,33 +1,33 @@
#!/usr/bin/env node
/* eslint-disable @typescript-eslint/no-require-imports */
/**
* openwork CLI - Launches the Electron app
* deepwork CLI - Launches the Electron app
*/
const { spawn } = require('child_process')
const path = require('path')
// Set process title for Activity Monitor
process.title = 'openwork'
process.title = 'deepwork'
const args = process.argv.slice(2)
// Handle --version flag
if (args.includes('--version') || args.includes('-v')) {
const { version } = require('../package.json')
console.log(`openwork v${version}`)
console.log(`deepwork v${version}`)
process.exit(0)
}
// Handle --help flag
if (args.includes('--help') || args.includes('-h')) {
console.log(`
openwork - A tactical agent interface for deepagentsjs
deepwork - A tactical agent interface for deepagentsjs
Usage:
openwork Launch the application
openwork --version Show version
openwork --help Show this help
deepwork Launch the application
deepwork --version Show version
deepwork --help Show this help
`)
process.exit(0)
}
@@ -58,6 +58,6 @@ child.on('close', (code) => {
})
child.on('error', (err) => {
console.error('Failed to start openwork:', err.message)
console.error('Failed to start deepwork:', err.message)
process.exit(1)
})
+3 -3
View File
@@ -1,11 +1,11 @@
{
"name": "openwork",
"name": "deepwork",
"version": "0.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "openwork",
"name": "deepwork",
"version": "0.1.0",
"license": "MIT",
"dependencies": {
@@ -44,7 +44,7 @@
"zustand": "^5.0.3"
},
"bin": {
"openwork": "bin/cli.js"
"deepwork": "bin/cli.js"
},
"devDependencies": {
"@electron-toolkit/eslint-config-prettier": "^3.0.0",
+5 -5
View File
@@ -1,5 +1,5 @@
{
"name": "openwork",
"name": "deepwork",
"version": "0.1.0",
"description": "A tactical agent interface for deepagentsjs",
"main": "./out/main/index.js",
@@ -11,17 +11,17 @@
"README.md"
],
"bin": {
"openwork": "./bin/cli.js"
"deepwork": "./bin/cli.js"
},
"author": "LangChain",
"license": "MIT",
"homepage": "https://github.com/langchain-ai/openwork",
"homepage": "https://github.com/langchain-ai/deepwork",
"repository": {
"type": "git",
"url": "git+https://github.com/langchain-ai/openwork.git"
"url": "git+https://github.com/langchain-ai/deepwork.git"
},
"bugs": {
"url": "https://github.com/langchain-ai/openwork/issues"
"url": "https://github.com/langchain-ai/deepwork/issues"
},
"keywords": [
"ai",
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* Base system prompt for the openwork agent.
* Base system prompt for the deepwork agent.
*
* Adapted from deepagents-cli default_agent_prompt.md
*/
+1 -1
View File
@@ -50,7 +50,7 @@ function createWindow(): void {
app.whenReady().then(async () => {
// Set app user model id for windows
if (process.platform === 'win32') {
app.setAppUserModelId(isDev ? process.execPath : 'com.langchain.openwork')
app.setAppUserModelId(isDev ? process.execPath : 'com.langchain.deepwork')
}
// Set dock icon on macOS
+4 -4
View File
@@ -4,12 +4,12 @@ import * as fs from 'fs/promises'
import * as path from 'path'
import type { ModelConfig, Provider } from '../types'
import { startWatching, stopWatching } from '../services/workspace-watcher'
import { getOpenworkDir, getApiKey, setApiKey, deleteApiKey, hasApiKey } from '../storage'
import { getDeepworkDir, getApiKey, setApiKey, deleteApiKey, hasApiKey } from '../storage'
// Store for non-sensitive settings only (no encryption needed)
const store = new Store({
name: 'settings',
cwd: getOpenworkDir()
cwd: getDeepworkDir()
})
// Provider configurations
@@ -175,7 +175,7 @@ export function registerModelHandlers(ipcMain: IpcMain): void {
store.set('defaultModel', modelId)
})
// Set API key for a provider (stored in ~/.openwork/.env)
// Set API key for a provider (stored in ~/.deepwork/.env)
ipcMain.handle(
'models:setApiKey',
async (_event, { provider, apiKey }: { provider: string; apiKey: string }) => {
@@ -183,7 +183,7 @@ export function registerModelHandlers(ipcMain: IpcMain): void {
}
)
// Get API key for a provider (from ~/.openwork/.env or process.env)
// Get API key for a provider (from ~/.deepwork/.env or process.env)
ipcMain.handle('models:getApiKey', async (_event, provider: string) => {
return getApiKey(provider) ?? null
})
+9 -9
View File
@@ -2,8 +2,8 @@ import { homedir } from 'os'
import { join } from 'path'
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs'
const OPENWORK_DIR = join(homedir(), '.openwork')
const ENV_FILE = join(OPENWORK_DIR, '.env')
const DEEPWORK_DIR = join(homedir(), '.deepwork')
const ENV_FILE = join(DEEPWORK_DIR, '.env')
// Environment variable names for each provider
const ENV_VAR_NAMES: Record<string, string> = {
@@ -11,19 +11,19 @@ const ENV_VAR_NAMES: Record<string, string> = {
openai: 'OPENAI_API_KEY'
}
export function getOpenworkDir(): string {
if (!existsSync(OPENWORK_DIR)) {
mkdirSync(OPENWORK_DIR, { recursive: true })
export function getDeepworkDir(): string {
if (!existsSync(DEEPWORK_DIR)) {
mkdirSync(DEEPWORK_DIR, { recursive: true })
}
return OPENWORK_DIR
return DEEPWORK_DIR
}
export function getDbPath(): string {
return join(getOpenworkDir(), 'openwork.sqlite')
return join(getDeepworkDir(), 'deepwork.sqlite')
}
export function getCheckpointDbPath(): string {
return join(getOpenworkDir(), 'langgraph.sqlite')
return join(getDeepworkDir(), 'langgraph.sqlite')
}
export function getEnvFilePath(): string {
@@ -53,7 +53,7 @@ function parseEnvFile(): Record<string, string> {
// Write object back to .env file
function writeEnvFile(env: Record<string, string>): void {
getOpenworkDir() // ensure dir exists
getDeepworkDir() // ensure dir exists
const lines = Object.entries(env)
.filter(([_, v]) => v)
.map(([k, v]) => `${k}=${v}`)
+1 -1
View File
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>openwork</title>
<title>deepwork</title>
<meta
http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:"
+1 -1
View File
@@ -131,7 +131,7 @@ function App(): React.JSX.Element {
transformOrigin: 'top left'
}}
>
<span className="app-badge-name">OPENWORK</span>
<span className="app-badge-name">DEEPWORK</span>
<span className="app-badge-version">{__APP_VERSION__}</span>
</div>